我想了解类型理论,但是我首先必须知道如何应用它。除了在编程中使用类型系统之外,类型理论还会有更多非显而易见的应用吗?可以说其他应用程序,比如性格分析之类的吗?
我想了解类型理论,但是我首先必须知道如何应用它。除了在编程中使用类型系统之外,类型理论还会有更多非显而易见的应用吗?可以说其他应用程序,比如性格分析之类的吗?
Answers:
您可能对Chris Martens 博士研究的结果Ceptre的工作感兴趣,该研究使用类型理论进行交互式故事讲述。下面引用的是论文摘要:
交互式讲故事将深厚的计算思想与人类丰富的故事和游戏历史结合在一起,为构建工具和语言提供了重要的环境。同时,正式的规范语言提供了表示和推理技术的调色板,通常保留用于分析编程语言和复杂的演绎系统。本文将交互式叙事领域中的问题与正式规范中的解决方案联系起来。
具体而言,我们从结构的角度检查叙事,并观察到替代叙事路径对同时发生的交互时间线起补充作用。线性逻辑提供了研究这种结构所必需的表示工具,并且通过将对应关系扩展到证明和证明构造,我们发现了一组计算可能性。我们为实现这些可能性进行了三项努力:(1)使用线性逻辑程序生成叙述;(2)一种用于编写交互式叙事,游戏和模拟的新编程语言;(3)陈述和证明设计级程序属性的技术。
我们发现,线性逻辑编程以对其逻辑语义的最小扩展而丰富,可以实现广泛的编程习惯用法和域编码。作为证据,我们给出了五个案例研究,包括社交模拟,基于战斗的冒险游戏和棋盘游戏。为了支持有关设计正确性的推理,我们提供了陈述和证明程序不变式的技术,以及用于自动检查那些不变式是否包含大量语言的可判定性证明。
这些发现表明,线性逻辑是一种富有成果的表示语言,可以用作建模和执行交互世界的基础,并且它们邀请将来对将证明理论方法用于创意系统进行研究。
类型理论在语言学中有有趣的用途。参见例如Chung-chieh Shan或ChristianRétoré的语言著作。
下面引用的是Rétoré 关于分类语法的书的描述:
本书是对Lambek著作所引发的逻辑传统中的分类语法的当代全面介绍。它指导学生和研究人员了解该领域的基本成果,提供许多经典定理的现代证明以及最新的原始进展。许多示例和练习从语言,计算和逻辑的角度说明了这些结果的动机和应用。Lambek演算及其变体以及相应的语法是这些讲义的核心。本章专门介绍这些分类语法的关键特征:它们非常优雅的语法语义界面。此外,我们将线性逻辑证明网适应于这些计算,因为它们提供了高效的解析算法,如Grail解析器所示。
以下引言是在Shan的《语言副作用》一书的介绍中:
本文将自然语言中明显的非组合性情况与编程语言中的情况联系起来。它的形状像一个沙漏:我从§1开始,介绍了一种语法-语义接口的方法,该方法可帮助我们建立组成语义理论。这种方法是在编程语言中的计算副作用与自然语言中的类比语言副作用之间进行类比。
这种联系可以使计算机科学家和语言学家受益,但是我在这里只关注技术转让的后一个方向。连续对于处理计算副作用很有用。在§2中,我介绍了一种用于语义延续的新元语言。
我介绍的元语言对于分析编程语言和自然语言很有用。为直观起见,我调查了§3中的第一次使用,然后指出了§4中这种处理的优点。
关于第5节中的自然语言,我将详细描述这种观点如何帮助Chris Barker和我学习约束力和交叉性,以及疑问和优越性。我还使用了续篇来研究量词和不定范围,特别是在普通话中,但是在§6中,这里没有空间来勾勒出这些进一步的发展。
由于存在Curry-Howard对应关系,因此类型可以解释为命题,而命题可以解释为类型。
结果,类型理论实际上适用于任何使用形式逻辑作为证明的领域。这可以是电路验证,实物分析,符号逻辑,几何形状等。
例如,一些自动的证明检查工具使用此原理工作:它们通过对某种类型系统中的特定术语进行类型检查来检查证明的有效性。LF校对检查器基于此方法,HOL Light也是如此。作为示例应用程序,携带证明的代码使用LF来检查不受信任代码的内存安全性证明。使用这种证明检查器的好处是实现可以非常简单,因此我们可以高度肯定实现是正确的。参见例如以下论文:
小证人的基础证明检查员。吴鼎好,安德鲁·W·阿佩尔,亚伦·树桩。PPDP 2003。
解释依赖类型应用的有趣文章是 The Power of Pi,它展示了如何使用Agda解决有趣的问题。
另一个很好的例子是使用依赖类型进行资源控制。一个很好的例子就是文件管理API 影响的伊德里斯。例如,用于从文件读取行的函数具有以下类型
readLine : { [FILE_IO (OpenFile Read)] } Eff String
它指定仅在打开文件的情况下此功能才适用。大括号中的列表指示可用的效果。在这种情况下,我们需要此功能具有打开文件以供读取的效果。
有关效果库的更多信息,请参见此处。
另一个应用程序是将依存类型用于并发,如Idris的创建者在下一篇文章中报道的。
正如jmite的回答所述,电路/硬件/电子验证中的高阶逻辑/类型理论已经存在了数十年,如今已成为例行公事,以致于在进行了明显的转移努力之后,甚至没有注意到/将其视为“应用”。到1990年代,尽管它仍然是活跃的研究领域。从低级门逻辑到高级别/阶结构/子系统,Coq及其类型逻辑尤其在电路/硬件/电子验证中也有大量应用。这是一些关键参考
高阶逻辑和硬件验证 / Melham(1993!)
高阶逻辑定理证明及其应用 /克莱顿,戈登
构建正确的电路:验证相关类型的硬件规格的功能方面 / Brady,Mckinna,Hammond
Coquet:Coq库,用于验证硬件 / Braibant