更新时间:2024-07-03 18:27
在数理逻辑中,自然演绎是证明论中尝试提供象“自然”发生一样的逻辑推理形式模型的一种方式。这种方式对比于使用公理的公理系统。
自然演绎来源自对共通于弗雷格、罗素和希尔伯特系统的判句公理化(希尔伯特演绎系统)的不满。这种公理化最著名使用是在罗素和怀特海的《数学原理》的数学论述中。在1926年由扬·武卡谢维奇在波兰发起的一系列研讨会提倡一种对逻辑的更加自然处理,斯坦尼斯瓦夫·亚希科夫斯基做了定义更自然的演绎的最早尝试,首先在1929年使用了一种图表表示法,并在1934年和1935年的一序列论文中更改了他的提议。但是他的提议没有流行起来。现代形式的自然演绎是由德国数学家格哈德·根岑于1935年在一篇提交给哥廷根大学数学系的学位论文中独立提出的。术语自然演绎就是在那篇论文中出现的:
首先我希望构造尽可能紧密于实际推理的一种形式化主义。所以提议了“自然演绎演算”。
— Gentzen, 《Untersuchungen über das logische Schließen》(Mathematische Zeitschrift 39, pp.176-210, 1935)
根岑被建立数论的一致性证明的目标所推动,因而找到了他的自然演绎演算的直接使用。但他不满意自己证明的复杂性,并在1938年使用他的相继式演算给出了一个新的一致性证明。在1961年和1962年的一系列研讨会中,Dag Prawitz 给出了自然演绎演算的全面总结,并把根岑对相继式演算做的很多工作转运到了自然演绎框架中。他在1965年的专著《Natural deduction: a proof-theoretical study》成为关于自然演绎的权威著作,并包括了模态和二阶逻辑的应用。
在本文中提供的系统是根岑或 Prawitz 的公式化的一个小变体,但忠实于 Per Martin-Löf 对逻辑判断和连结词的描述(Martin-Lof, 1996)
在逻辑中最重要的判断是“A 为真”这种形式的。字母 A 表示代表一个命题的任何表达式;这个真理判断要求更基本的判断:“A 是命题”。很多其他判断也已经被研究了;比如“A 为假”(参见经典逻辑),“A 在时间 t 为真”(参见时间逻辑),“A 必然为真”或“A 可能为真”(参见模态逻辑),“程序 M 有类型 τ”(参见编程语言和类型论),“A 从可用的资源是可完成的”(参见线性逻辑),等等。作为开始,我们先只关注最简单的两个判断 “A 是命题”和“A 为真”,分别缩写为“Aprop”和“A true”。
。我们可以用推理规则的形式把它写为:
这个推理规则是“模式性”的: A 和 B 可以示例任何表达式。推理规则的一般形式为:
为了简单性,迄今为止提出的逻辑都是直觉的。经典逻辑向直觉逻辑扩展了补充的排中律公理或原理。
对于任何命题 p,命题 p ∨ ¬p 为真。
这个陈述没有明显的介入和除去;实际上,它涉及两个不同连结词。Gentzen 对排中律的最初处理规定了它是下列三个(等价)的公式之一,它们在希尔伯特和 Heyting 的系统中已经已类似形式存在了:
相对更加另人满意的以单独的介入和除去规则处理经典自然演绎首次由 Parigot 在 1992 年提出,采用了叫做 λμ 的lambda 演算的形式。他的方式的关键性洞察是把真理中心的判断 A true 替代为更加经典的概念: 在局部化形式中,不再使用 Γ A,他使用 Γ Δ,而 Δ 是类似于 Γ 的一个命题的搜集。Γ 被处理为一个合取,而 Δ 是一个析取。这种结构本质上是直接从经典的相继式演算转移过来的,但是革新为 λμ 给予了经典自然演义证明一种计算性的意义,通过在 LISP 和它的后代中可见到的 callcc 或 throw/catch 机制的方式。(参见: 一级控制)。