Equational Reasoning的名字来自哪里?

时间:2015-03-18 03:55:15

标签: haskell

我知道等式推理(https://wiki.haskell.org/Equational_reasoning_examples#Equational_reasoning)是代码片段可以在任何上下文中被其他代码替换,但我真的很好奇它的名称是什么?等式推理"来自?我用谷歌搜索了它,但找不到任何相关的答案。

1 个答案:

答案 0 :(得分:7)

它实际上并不是一个真正的名称,只是通过重复使用而变得标准化的描述。 “等式推理”只是推理“等式”;即它涉及方程式

所涉及的想法是这一系列的重写:

fmap even . fmap (+1)
fmap (even . (+1))
fmap (\x -> even (x +1))
fmap odd

涉及与此系列重写相同的

(x + 1)(x - 1)
x^2 + x - x - 1
x^2 - 1

在这两种情况下,您都使用了一般知道的fmap f . fmap g = fmap (f . g)(a + b)(c + d) = ac + ad + bc + bd等公式,并使用它们将您的术语转换为可证明等效的术语。 方程式是关键,以前被证明可以容纳(理想情况下是其他人;))。