有类型/无类型Lambda结石的分类


18

谁能简要解释(如果可能的话!)或将我引介给参考文献,以总结未类型化的lambda演算与更常见的类型化的lambda演算之间的区别?

我特别在寻找它们的表达能力,与逻辑/算术系统或计算方法的等效性以及与编程语言(如果适用)类似的陈述。

虽然我当然打算阅读,但是像参考表概述了结石及其等价/差异/在层次结构中的位置之类的东西将是巨大的参考,可帮助我对它们进行分类。

并不是说以下内容是正确的,只是试图勾勒出一些印象,我必须看看它们是否至少可以作为起点(或要纠正的东西!)

无类型Lambda演算-等式 一阶逻辑-不能做X

简单地输入lambda演算-等于...逻辑,与Lisp有关?

'多态'lambda calc-等等

构造演算-直觉逻辑?

组合逻辑-相当于??? 类型的lambda演算,与APL / J类型的语言有关

如果这与lambda多维数据集及其三个轴相关联,那就更好了。

虽然我熟悉lambda微积分和使用函数式语言进行编程的基础知识,但我从未对所涉及的类型系统和不同类型的lambda(可能是pi?)计算进行过深入的探讨,也从未建立任何重要的联系。

当我尝试对此进行研究时,我忍不住发现自己陷入了困境,打开了许多浏览器选项卡,并在多个方向分支,我从没有深入了解其中的任何一个!

我不确定我要的内容是否合理,但是希望至少我已经画了足够多的图片以提出一些可以解释我所寻找内容的阅读材料?


1
lambda多维数据集的可视化,如果可能引用它可以帮助解释rbjones.com/rbjpub/logic/cl/tlc001.htm
jon_darkstar 2011年

3
一个个人故事:当我第一次学习打字和不打字的lambda演算时,我总是对为什么要关心打字的非图灵完备结石感到困惑。这常常使我失去兴趣。另一方面,在考虑复杂性和高效计算时,我从不会对此感到困扰。最终有人在这个答案中为我连接了两条线,现在我可以更好地理解为什么花这么多时间教我输入lambda演算了。
Artem Kaznatcheev

我看到lo.logic已添加标签。可能是一个愚蠢的问题,但这代表什么呢?
jon_darkstar 2011年

“当我尝试对此进行研究时,我不由自主地发现了自己的位置,打开了许多浏览器选项卡,并在许多方向分支,我从没有深入了解任何一个!” <-一直都是我!感谢您询问我在想什么...
agam

Answers:


26

您的桌子有点混乱;这是一个更好的。

  • 无类型的Lambda演算-如Andrej所述,没有逻辑解释
  • 简单型Lambda演算-直觉命题逻辑
  • 多态Lambda演算-纯二阶逻辑(即,没有一阶量词)
  • 相依类型-一阶逻辑的一般化
  • 构造演算-高阶逻辑的概括

类型依赖项比一阶量化更笼统,因为它可以将证明转化为可以量化的对象。存在与普通直觉FOL相对应的Lambda calculi,但没有得到广泛使用以具有特殊的名称-人们倾向于直接使用依赖类型。

您也可以将微积分的句法形式与逻辑系统相关联。

  • 组合器结石(例如,SKI组合器)-希尔伯特式系统
  • A范式-后续演算
  • 普通型Lambda演算-自然演绎

太棒了!谢谢。帮助我认识到这些不同结石的动机/不同之处,当我阅读更多有关结石的知识时,一定会帮助我保持基础的了解
jon_darkstar 2011年

我还将包括没有逻辑解释的lambda计算类型,例如PCF。另外,还有很多很酷的拉姆达计算与其他逻辑相对应,例如线性拉姆达演算。
山姆·托宾·霍斯塔特

@Sam:好点。“无逻辑解释”的确太强了,因为它实际上意味着“允许无限制的自引用”,这与变量重用相结合导致不一致。但是一些基于线性逻辑的集合理论支持幼稚的理解方案,没有任何不一致。
Neel Krishnaswami

当然,可以使用一些方法在不使前后矛盾的情况下向lambda微积分中添加一些内容。但是,有很多有趣的,类型化的Lambda演算,它们与未类型化的Lambda演算完全没有逻辑解释。
山姆·托宾·霍斯塔特

20

λλλnatλ0T

λλ

λλ

λλλUlambda : U -> (U -> U)gamma : (U -> U) -> UλUλCUU[Cop,Set]UUU

参考文献:


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.