在将简单逻辑公式转换为lambda表达式时,我有一个误解(证明了该公式) .
所以,我有以下公式:((((A-> B) - > A) - > A) - > B) - > B其中 - >表示蕴涵逻辑运算符 .
如何用任何与之对应的函数语言(最好是Haskell)编写一些lambda表达式?
我有一些“结果”,但我真的不确定这是否正确:
-
(((λF - > lambda A) - > A) - > lambda B) - > B.
-
((((lambda A - > lambda B) - > A) - > A) - > B) - > B.
如何将公式转换为lambda表达式?如果您知道某些材料涉及此问题,将会非常有帮助 .
谢谢
1 回答
这是一个像游戏一样使用Agda _785179的好时机 . 你也可以手动完成它,但是我做了什么:
基本上我们唯一的举动是申请
x
,所以让我们试试吧 .现在我们的目标是一个函数类型,所以让我们尝试一个lambda .
我们需要一个
A
,如果我们提供正确的参数,y
可以给我们 . 不确定那是什么,但y
是我们最好的选择:我们的目标是函数类型,所以让我们使用lambda .
现在我们需要
B
,唯一可以给我们B
的东西是x
,所以让我们再试一次 .现在我们的目标是返回
A
的函数类型,但是我们有z
这是A
所以我们不要忽略它并返回z
.你去吧!