fbpx
维基百科

柯里-霍华德同构

柯里-霍華德对应(英語:Curry-Howard correspondence)是在计算机程序和数学证明之间的紧密联系;这种对应也叫做柯里-霍華德同构公式为类型对应命题为类型对应。这是对形式逻辑系统和公式计算(computational calculus)之间符号的相似性的推广。它被认为是由美国数学家哈斯凯尔·柯里和逻辑学家威廉·阿尔文·霍瓦德(William Alvin Howard)独立发现的。

以函數式編程寫作的:在Coq軟件中自然數加法交換性的證明。nat_ind 代表數學歸納,eq_ind 代替等於,f_equal 代表在等式兩邊取同樣的函數。 前面的定理參照顯示 m = m + 0和S(m + y)= m + S y。

對應的起源、范围和結論 编辑

对应可以在两个层面上看到,首先是类比层次,它声称對一个函数计算出的值的类型的断言可类比于一个逻辑定理,计算这个值的程序可类比于这个定理的证明。在理论计算机科学中,这是连接λ演算类型论的毗邻领域的一个重要的底层原理。它被经常以下列形式陈述为“证明是程序”。一个可选择的形式化为“命题为类型”。其次,更加正式的,它指定了在两个数学领域之间的同构,就是以一种特定方式形式化的自然演绎简单类型λ演算之间是双射,首先是证明和项,其次是证明归约步骤和beta归约。

有多种方式考虑柯里-霍華德对应。在一个方向上,它工作于“把证明编译为程序”级别上。这裡的“证明”最初被限定为在构造性逻辑中—典型的是直觉逻辑系统中的证明。而“程序”是在常规的函数式编程的意义上的;从语法的观点上看,这种程序是用某种λ演算表达的。所以柯里-霍華德同构的具体实现是详细研究如何把来自直觉逻辑的证明写成λ项。(这是霍華德的贡献;柯里贡献了组合子,它是相对于是高级语言的λ演算是能写所有东西的机器语言)。最近,同样处理经典逻辑的柯里-霍華德对应的扩展可被公式化了,通过对经典有效规则比如双重否定除去皮尔士定律关联上明确的用续体比如call/cc处理的一类项。

还有一个相反的方向,对一个程序的正确性关联上“证明提取”的可能性。这在非常丰富的类型论环境中是可行的。实际上理论家对推进非常丰富类型的函数式编程语言的开发的动机,已经部分地混合了希望带给柯里-霍華德对应更加显著的地位的因素。

类型 编辑

依据λ演算,我们将使用λx.E来指示带有形式参数x和函数体E的函数。在应用于参数比如a的时候,这个函数生成E,并带有x的所有自由出现都被替换为a。有效的λ演算表达式有如下形式之一:

  • v(这裡的v是个变量)
  • λv.E(这裡的v是个变量,而E是个λ演算表达式)
  • (E F)(这裡的E和F是λ演算表达式)

通常我们将缩写((A B)C)为(A B C),缩写λa.λb.E为λab.E。一个表达式被称为是“闭合的”,如果它不包含自由变量

類型確定規則 编辑

类型可以依赖于类型变量,它被指示为小写的希腊字母α, β等等。在我们概念中类型变量是被隐含的全称量化的,就是说,如果一个值有包括类型变量的一个类型,则它必须由这个类型变量的所有可能实例组成。我们可以定义任意表达式的类型为如下:

  • 一个变量比如x可以有任意类型。
  • 如果变量x有类型α,而表达式E有类型β,则λx.E有指示为α→β的类型;就是说,它是取类型α的值,并映射到类型β的值。
  • 在表达式(E F)中,如果F有类型α,则E必须有类型α→β(就是说它必须是期望类型α的参数的函数)并且这个表达式有类型β。

例如,考虑函数K = λa.λb.a。假定a有类型α而b有类型β。则λb.a有类型 β→α,而λa.λb.a有类型α→(β→α)。我们接受→是右结合的约定,所以这个类型也可以写为α→β→α。这意味着K函数接受类型α的参数并返回一个函数,它接受类型β的参数并返回类型α的值。

类似的,考虑函数B = λa.λb.λc.(a (b c))。假定c有类型γ,则b必须有形如γ→β的某种类型,表达式(b c)有类型β。a必须有形如β→α的某种类型,表达式(a (b c))有类型α。那么λc.(a (b c))有类型γ→α;λb.λc.(a (b c))有类型(γ→β)→γ→α,而λa.λb.λc.(a (b c))有类型(β→α)→(γ→β)→γ→α。你可以把这解释为意味着B函数接受类型(β→α)的参数和类型(γ→β)的参数并返回一个函数,它接受类型γ的参数并返回类型α的结果。

类型居留问题 编辑

很明显λ-表达式可以有非常复杂的类型。你可能要问是否有带有给定类型的λ-表达式。找到带有特定类型的λ-表达式的问题叫做类型居留问题

答案是非常引人注目的:有带有特定类型的闭合λ-表达式,当且仅当这个类型对应于一个逻辑定理,在这裡的→符号再次解释为意味着逻辑蕴涵的时候。

例如,考虑恒等函数λx.x,它接受类型ξ的参数并返回类型ξ的结果,所以有类型ξ→ξ。ξ→ξ当然是逻辑定理:给定一个公式ξ,你可以结论出ξ。

K函数的类型α→β→α也是一个定理。如果已知α为真,则你可以结论出如果β为真就能推出α。这有时也叫做重复规则B的类型是 (β→α)→(γ→β)→γ→α。你可类似的把它解释为逻辑重言式;如果已知(β→α)为真,则如果已知(γ→β)为真,你就能推出γ蕴涵α。

在另一方面,考虑α→β,它不是定理。明显的没有这种类型的λ-项;它必定是接受类型α的参数并返回某个完全无关的和未约束类型的结果的函数。这是不可能的,因为你不能从这种函数里得到什么东西,除非把它放到其他什么地方之中。

尽管有类型β→(α→α)的函数(比如,λb.λa.a,它接受一个参数b,忽略参数,并返回恒等函数),却没有类型(α→α)→β的函数,如果存在的话,它会是转换恒等函数到任意值的函数。

直觉逻辑 编辑

尽管所有居留类型对应于逻辑定理为真,逆命题却不为真。即使我们限制我们的尝试到只包含→运算的逻辑公式,所谓的逻辑的蕴涵片段,不是所有经典有效的逻辑公式是居留类型。例如,类型((α→β)→α)→α是非居留的,尽管叫做皮尔士定律的对应逻辑公式是重言式。

直觉逻辑是比经典逻辑弱的系统。经典逻辑把自身关注于在抽象的、柏拉图主义意义上为真的公式,而直觉逻辑只在可以为它构造一个证明的时候认为公式为真。公式α ∨ ¬α示例了这种区别;它是经典逻辑的一个定理而不是直觉逻辑的定理。尽管它是经典的真的,在直觉逻辑中这个公式断言了我们要么证明α要么证明¬α。因为我们不是总能做到这些事情之一,它不是直觉逻辑的一个定理。

在居留类型和有效逻辑公式之间的对应完全是双向的,如果我们限制我们的注意力到直觉逻辑的蕴涵片段(这也叫做希尔伯特代数)。

希尔伯特演繹系統和組合子邏輯的對應 编辑

形式上刻画直觉逻辑的一个简单方式是希尔伯特演繹系統。它有两个公理模式。所有形式为

α→β→α

的公式都是公理,所有形式为

(α→β→γ)→(α→β)→α→γ

的公式都是公理。

唯一的演绎规则是肯定前件,它声称如果我们已经证明了两个定理,一个有形式α→β而另一个有形式α,我们可以结论出β也是定理。以这种方式推导出来的公式的集合正好是直觉逻辑的集合。特别的是,皮爾士定律不能以这种方式演绎。(对皮爾士定律不能以这种方式演绎的证明请参见海廷代数条目)。

如果我们增加皮爾士定律为第三个公理模式,这个系统就有能力证明在经典逻辑的蕴涵片段中的所有定理。

考虑λ-表达式的下列两个函数:

K: λxy.x
S: λxyz.(x z (y z))

可以证明任何函数都可以通过适当的KS相互应用来建立。(有关证明请参见组合子逻辑)。例如,上面定义的函数B等价于(S(K S)K)。如果一个函数比如B,可以表达为SK的复合,则这个表达式可以直接转换成类型B的一个证明,它被解释为逻辑公式,是直觉逻辑的一个定理。本质上,K的外观对应于第一个公理模式的使用,S的外观对应于第二个公理模式的使用,而函数应用对应于肯定前件演绎规则的使用。

第一个公理模式是α→β→α,并且它精确的是K函数的类型;类似的第二个公理模式(α→β→γ)→(α→β)→α→γ,是S函数的类型。肯定前件声称如果我们有两个表达式,一个类型是α→β(就是说,接受类型α的值并返回类型β的值)而另一个类型是α(就是说,类型α的值),则我们应当能够找到类型β的值;明显的,我们可以通过应用这个函数到这个值之上来得到;结果会有类型β。

希爾伯特式直覺蘊含邏輯 簡單類型的組合子邏輯
   
   
   
   

证明α→α 编辑

作为一个简单的例子,我们将构造定理α→α的证明。这是恒等函数I = λx.x的类型。函数((S K)K)等价于恒等函数。作为对证明的描述,它声称了我们需要首先应用SK。我们做如下:

α→β→α
(α→β→γ)→(α→β)→α→γ

如果我们在S中设γ = α,我们得到:

(α→β→α)→(α→β)→α→α

因为这个公式的前件(α→β→α)是一个已知定理,并且实际上正好是K,我们可以应用肯定前件并推导出后件:

(α→β)→α→α

这是函数(S K)的类型。现在我们需要应用这个函数到K。我们再次操纵公式使得前件看起来像K,这次我们替代β为(β→α):

(α→β→α)→α→α

我们再次应用肯定前件来推出后件:

α→α

我们完成了。

一般的说,这个过程是只要程序包含形如(P Q)的应用,我们应当首先证明对应于P和Q的类型的定理。因为P要被应用于Q,对于某种α和β,P的类型必定有形式α→β而Q的类型必定有形式α。我们可以通过肯定前件规则推出β。

证明 (β→α)→(γ→β)→γ→α 编辑

作为一个更加复杂的例子,我们看对应于函数B的定理的证明。B的类型是(β→α)→(γ→β)→γ→α。B等价于(S(K S)K)。这是对证明定理(β→α)→(γ→β)→γ→α的指引。

首先我们需要构造(K S)。我要使K公理的前件看起来像S公理,通过设置α等于(α→β→γ)→(α→β)→α→γ,和β等于δ:

α→β→α
((α→β→γ)→(α→β)→α→γ)→δ→(α→β→γ)→(α→β)→α→γ

因为前件正好是S,我们可以推出后件:

δ→(α→β→γ)→(α→β)→α→γ

这是对应于(K S)的定理。现在我们要应用S到这个表达式。取得S

(α→β→γ)→(α→β)→α→γ

我们设置α = δ,β = (α→β→γ)和γ = ((α→β)→α→γ),生成

(δ→(α→β→γ)→(α→β)→α→γ)→(δ→(α→β→γ))→δ→(α→β)→α→γ

我们可以接着推出后件:

(δ→α→β→γ)→δ→(α→β)→α→γ

这是类型(S(K S))的公式。这个定理的一个特殊情况有δ = (β→γ):

((β→γ)→α→β→γ)→(β→γ)→(α→β)→α→γ

我们需要应用最后这个公式到K。我们再次特殊化K,这次是替代α为(β→γ),替代β为α:

α→β→α
(β→γ)→α→(β→γ)

这同于前者公式的前件,所以我们推出后件:

(β→γ)→(α→β)→α→γ

交换变量α和γ的名字得到

(β→α)→(γ→β)→γ→α

这就是我们要证明的。

自然演繹和lambda演算的對應 编辑

在下表第一列中的推导规则定义了直觉蕴涵自然演绎(为蕴涵连结词准备一个介入和一个除去规则)的标准系统。在第二列中给出 -演算的标准类型指派(赋值)系统。

直觉蕴涵自然演绎 lambda演算类型指派规则
   
   
   

相继式演算 编辑

希尔伯特式证明是很难构造的。证明逻辑定理的更加直觉的方式是根岑相继式演算。相继式演算以同希尔伯特式证明对应于组合子表达式一样的方式对应于λ-表达式程序。

直觉逻辑的蕴涵片段的相继式演算规则是:

  (公理)
  (Right →)
  (Left →)

Γ表示上下文,它是假设的集合。 指示假定上下文Γ我们可以证明a。逻辑定理完全由其证明不需要假设的那些公式t组成的;就是说,t是一个定理,当且仅当我们可以证明 。详情请参见相继式演算

在相继式演算中的证明是树,它的根是我们要证明的定理,而它的叶子是公理模式实例;每个内部节点必须标记为要么Right →要么Left →,并且必须包含依据指定规则从子节点推出的一个公式。

相继式演算证明紧密的对应于λ-演算表达式。断言 可以被解释为意味着,给定带有在Γ中列出类型的值,我们可以制造带有类型a的一个值。公理对应于带有新的无约束的类型的新变量介入。

Right →规则对应于函数抽象:

  (Right →)

什么时候我们能结论出某个程序Γ包含类型α→β的函数?在Γ加上类型α的一个值的时候,包含了足够的机械来允许我们制造类型β的一个值。

Left →规则对应于函数应用:

  (Left →)

如果我们可以制造类型α的一个值,并且如果给出类型β的一个值,我们还可以制造类型γ的一个值,则类型α→β的一个函数将允许我们制造类型γ的一个值:首先我们可以制造α,接着应用α→β函数于它,并接着使用结果的β值来制造类型γ的一个值。

例子 编辑

例如,(β→α)→(γ→β)→γ→α的相继式演算如下:

 

(β→α)→(γ→β)→γ→α的证明告诉我们如何制造带有这个类型的一个λ-表达式。首先,介入分别带有类型α和β的变量a和b。Left →规则声称制造程序 (λb.a b),它构造类型α的一个值。我们再次使用Left →来构造(λb.a (λg.b g)),它仍有类型α。

参见 编辑

引用 编辑

開創性引用 编辑

  • Curry, Haskell, Functionality in Combinatory Logic, Proceedings of the National Academy of Sciences 20: 584–590, 1934 .
  • Curry, Haskell B.; Feys, Robert, Combinatory Logic Vol. I, William Craig, Amsterdam: North-Holland, 1958 , with 2 sections by William Craig, see paragraph 9E.
  • De Bruijn, Nicolaas (1968), Automath, a language for mathematics, Department of Mathematics, Eindhoven University of Technology, TH-report 68-WSK-05. Reprinted in revised form, with two pages commentary, in: Automation and Reasoning, vol 2, Classical papers on computational logic 1967-1970, Springer Verlag, 1983, pp. 159-200.
  • Howard, William A., The formulae-as-types notion of construction, Seldin, Jonathan P.; Hindley, J. Roger (编), to H.B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, Boston, MA: Academic Press: 479–490, 1980年9月 [1969], ISBN 978-0-12-349050-6  (original manuscript from 1969).

對應的擴展 编辑

  • Griffin, Timothy G., The Formulae-as-Types Notion of Control, Conf. Record 17th Annual ACM Symp. on Principles of Programming Languages, POPL '90, San Francisco, CA, USA, 17-19 Jan 1990: 47–57, 1990 .
  • Parigot, Michel, Lambda-mu-calculus: An algorithmic interpretation of classical natural deduction, Logic Programming and Automated Reasoning: International Conference LPAR '92 Proceedings, St. Petersburg, Russia, Lecture Notes in Computer Science 624, Berlin, New York: Springer-Verlag: 190–201, 1992, ISBN 978-3-540-55727-2 .
  • Herbelin, Hugo, A Lambda-Calculus Structure Isomorphic to Gentzen-Style Sequent Calculus Structure, Pacholski, Leszek (编), Computer Science Logic, 8th International Workshop, CSL '94, Kazimierz, Poland, September 25-30, 1994, Selected Papers, Lecture Notes in Computer Science 933, Springer-Verlag: 61–75, 1995, ISBN 978-3-540-60017-6  Editors list列表中的|first2=缺少|last2= (帮助).
  • Gabbay, Dov; de Queiroz, Ruy, Extending the Curry-Howard interpretation to linear, relevant and other resource logics, Journal of Symbolic Logic 57: 1319–1365, 1992 . (Full version of the paper presented at Logic Colloquium '90, Helsinki. Abstract in JSL 56(3):1139-1140, 1991.)
  • de Queiroz, Ruy; Gabbay, Dov, Equality in Labelled Deductive Systems and the Functional Interpretation of Propositional Equality, Dekker, Paul; Stokhof, Martin (编), Proceedings of the Ninth Amsterdam Colloquium, ILLC/Department of Philosophy, University of Amsterdam: 547–565, 1994, ISBN 9074795072 .
  • de Queiroz, Ruy; Gabbay, Dov, The Functional Interpretation of the Existential Quantifier, Bulletin of the Interest Group in Pure and Applied Logics 3(2–3): 243–290, 1995 . (Full version of a paper presented at Logic Colloquium '91, Uppsala. Abstract in JSL 58(2):753-754, 1993.)
  • de Queiroz, Ruy; Gabbay, Dov, The Functional Interpretation of Modal Necessity, de Rijke, Maarten (编), Advances in Intensional Logic, Applied Logic Series 7, Springer-Verlag: 61–91, 1997, ISBN 978-0-7923-4711-8 .
  • de Oliveira, Anjolina; de Queiroz, Ruy, A Normalization Procedure for the Equational Fragment of Labelled Natural Deduction, Logic Journal of the Interest Group in Pure and Applied Logics 7(2), Oxford Univ Press: 173–215, 1999 . (Full version of a paper presented at 2nd WoLLIC'95, Recife. Abstract in Journal of the Interest Group in Pure and Applied Logics 4(2):330-332, 1996.)

綜合性論文 编辑

  • De Bruijn, Nicolaas Govert, On the roles of types in mathematics (PDF), Groote, Philippe de (编), The Curry-Howard isomorphism, Cahiers du Centre de logique (Université catholique de Louvain) 8, Academia-Bruyland: 27–54, [2008-08-28], ISBN 978-2-87209-363-2, (原始内容 (PDF)于2021-03-06) , the contribution of de Bruijn by himself.
  • Geuvers, Herman, The Calculus of Constructions and Higher Order Logic, Groote, Philippe de (编), The Curry-Howard isomorphism, Cahiers du Centre de logique (Université catholique de Louvain) 8, Academia-Bruyland: 139–191, ISBN 978-2-87209-363-2 , contains a synthetic introduction to the Curry-Howard correspondence.
  • Gallier, Jean H., On the Correspondence between Proofs and Lambda-Terms (PDF), Groote, Philippe de (编), The Curry-Howard isomorphism, Cahiers du Centre de logique (Université catholique de Louvain) 8, Academia-Bruyland: 55–138, ISBN 978-2-87209-363-2 , contains a synthetic introduction to the Curry-Howard correspondence.

書籍 编辑

  • De Groote, Philippe (编), The Curry-Howard Isomorphism, Cahiers du Centre de Logique (Université catholique de Louvain) 8, Academia-Bruylant, 1995, ISBN 978-2-87209-363-2 , reproduces the seminal papers of Curry-Feys and Howard, a paper by de Bruijn and a few other papers.
  • Sörensen, Morten Heine; Urzyczyn, Paweł, Lectures on the Curry-Howard isomorphism, Studies in Logic and the Foundations of Mathematics 149, Elsevier Science, 2006 [1998], ISBN 978-0-44452-077-7 , notes on proof theory and type theory, that includes a presentation of the Curry-Howard correspondence, with a focus on the formulae-as-types correspondence
  • Girard, Jean-Yves (1987-90). Proof and Types (页面存档备份,存于互联网档案馆. Translated by and with appendices by Lafont, Yves and Taylor, Paul. Cambridge University Press (Cambridge Tracts in Theoretical Computer Science, 7), ISBN 0-521-37181-3, notes on proof theory with a presentation of the Curry-Howard correspondence.

外部链接 编辑

柯里, 霍华德同构, 此條目已列出參考文獻, 但文內引註不足, 部分內容的來源仍然不明, 2019年3月6日, 请加上合适的文內引註来改善此条目, 柯里, 霍華德对应, 英語, curry, howard, correspondence, 是在计算机程序和数学证明之间的紧密联系, 这种对应也叫做柯里, 霍華德同构, 公式为类型对应或命题为类型对应, 这是对形式逻辑系统和公式计算, computational, calculus, 之间符号的相似性的推广, 它被认为是由美国数学家哈斯凯尔, 柯里和逻辑学家威廉, 阿尔. 此條目已列出參考文獻 但文內引註不足 部分內容的來源仍然不明 2019年3月6日 请加上合适的文內引註来改善此条目 柯里 霍華德对应 英語 Curry Howard correspondence 是在计算机程序和数学证明之间的紧密联系 这种对应也叫做柯里 霍華德同构 公式为类型对应或命题为类型对应 这是对形式逻辑系统和公式计算 computational calculus 之间符号的相似性的推广 它被认为是由美国数学家哈斯凯尔 柯里和逻辑学家威廉 阿尔文 霍瓦德 William Alvin Howard 独立发现的 以函數式編程寫作的 在Coq軟件中自然數加法交換性的證明 nat ind 代表數學歸納 eq ind 代替等於 f equal 代表在等式兩邊取同樣的函數 前面的定理參照顯示 m m 0和S m y m S y 目录 1 對應的起源 范围和結論 2 类型 2 1 類型確定規則 2 2 类型居留问题 2 3 直觉逻辑 3 希尔伯特演繹系統和組合子邏輯的對應 3 1 证明a a 3 2 证明 b a g b g a 4 自然演繹和lambda演算的對應 5 相继式演算 5 1 例子 6 参见 7 引用 7 1 開創性引用 7 2 對應的擴展 7 3 綜合性論文 7 4 書籍 8 外部链接對應的起源 范围和結論 编辑对应可以在两个层面上看到 首先是类比层次 它声称對一个函数计算出的值的类型的断言可类比于一个逻辑定理 计算这个值的程序可类比于这个定理的证明 在理论计算机科学中 这是连接l演算和类型论的毗邻领域的一个重要的底层原理 它被经常以下列形式陈述为 证明是程序 一个可选择的形式化为 命题为类型 其次 更加正式的 它指定了在两个数学领域之间的同构 就是以一种特定方式形式化的自然演绎和简单类型l演算之间是双射 首先是证明和项 其次是证明归约步骤和beta归约 有多种方式考虑柯里 霍華德对应 在一个方向上 它工作于 把证明编译为程序 级别上 这裡的 证明 最初被限定为在构造性逻辑中 典型的是直觉逻辑系统中的证明 而 程序 是在常规的函数式编程的意义上的 从语法的观点上看 这种程序是用某种l演算表达的 所以柯里 霍華德同构的具体实现是详细研究如何把来自直觉逻辑的证明写成l项 这是霍華德的贡献 柯里贡献了组合子 它是相对于是高级语言的l演算是能写所有东西的机器语言 最近 同样处理经典逻辑的柯里 霍華德对应的扩展可被公式化了 通过对经典有效规则比如双重否定除去和皮尔士定律关联上明确的用续体比如call cc处理的一类项 还有一个相反的方向 对一个程序的正确性关联上 证明提取 的可能性 这在非常丰富的类型论环境中是可行的 实际上理论家对推进非常丰富类型的函数式编程语言的开发的动机 已经部分地混合了希望带给柯里 霍華德对应更加显著的地位的因素 类型 编辑依据l演算 我们将使用lx E来指示带有形式参数x和函数体E的函数 在应用于参数比如a的时候 这个函数生成E 并带有x的所有自由出现都被替换为a 有效的l演算表达式有如下形式之一 v 这裡的v是个变量 lv E 这裡的v是个变量 而E是个l演算表达式 E F 这裡的E和F是l演算表达式 通常我们将缩写 A B C 为 A B C 缩写la lb E为lab E 一个表达式被称为是 闭合的 如果它不包含自由变量 類型確定規則 编辑 类型可以依赖于类型变量 它被指示为小写的希腊字母a b等等 在我们概念中类型变量是被隐含的全称量化的 就是说 如果一个值有包括类型变量的一个类型 则它必须由这个类型变量的所有可能实例组成 我们可以定义任意表达式的类型为如下 一个变量比如x可以有任意类型 如果变量x有类型a 而表达式E有类型b 则lx E有指示为a b的类型 就是说 它是取类型a的值 并映射到类型b的值 在表达式 E F 中 如果F有类型a 则E必须有类型a b 就是说它必须是期望类型a的参数的函数 并且这个表达式有类型b 例如 考虑函数K la lb a 假定a有类型a而b有类型b 则lb a有类型 b a 而la lb a有类型a b a 我们接受 是右结合的约定 所以这个类型也可以写为a b a 这意味着K函数接受类型a的参数并返回一个函数 它接受类型b的参数并返回类型a的值 类似的 考虑函数B la lb lc a b c 假定c有类型g 则b必须有形如g b的某种类型 表达式 b c 有类型b a必须有形如b a的某种类型 表达式 a b c 有类型a 那么lc a b c 有类型g a lb lc a b c 有类型 g b g a 而la lb lc a b c 有类型 b a g b g a 你可以把这解释为意味着B函数接受类型 b a 的参数和类型 g b 的参数并返回一个函数 它接受类型g的参数并返回类型a的结果 类型居留问题 编辑 很明显l 表达式可以有非常复杂的类型 你可能要问是否有带有给定类型的l 表达式 找到带有特定类型的l 表达式的问题叫做类型居留问题 答案是非常引人注目的 有带有特定类型的闭合l 表达式 当且仅当这个类型对应于一个逻辑定理 在这裡的 符号再次解释为意味着逻辑蕴涵的时候 例如 考虑恒等函数lx x 它接受类型3的参数并返回类型3的结果 所以有类型3 3 3 3当然是逻辑定理 给定一个公式3 你可以结论出3 K函数的类型a b a也是一个定理 如果已知a为真 则你可以结论出如果b为真就能推出a 这有时也叫做重复规则 B的类型是 b a g b g a 你可类似的把它解释为逻辑重言式 如果已知 b a 为真 则如果已知 g b 为真 你就能推出g蕴涵a 在另一方面 考虑a b 它不是定理 明显的没有这种类型的l 项 它必定是接受类型a的参数并返回某个完全无关的和未约束类型的结果的函数 这是不可能的 因为你不能从这种函数里得到什么东西 除非把它放到其他什么地方之中 尽管有类型b a a 的函数 比如 lb la a 它接受一个参数b 忽略参数 并返回恒等函数 却没有类型 a a b的函数 如果存在的话 它会是转换恒等函数到任意值的函数 直觉逻辑 编辑 尽管所有居留类型对应于逻辑定理为真 逆命题却不为真 即使我们限制我们的尝试到只包含 运算的逻辑公式 所谓的逻辑的蕴涵片段 不是所有经典有效的逻辑公式是居留类型 例如 类型 a b a a是非居留的 尽管叫做皮尔士定律的对应逻辑公式是重言式 直觉逻辑是比经典逻辑弱的系统 经典逻辑把自身关注于在抽象的 柏拉图主义意义上为真的公式 而直觉逻辑只在可以为它构造一个证明的时候认为公式为真 公式a a示例了这种区别 它是经典逻辑的一个定理而不是直觉逻辑的定理 尽管它是经典的真的 在直觉逻辑中这个公式断言了我们要么证明a要么证明 a 因为我们不是总能做到这些事情之一 它不是直觉逻辑的一个定理 在居留类型和有效逻辑公式之间的对应完全是双向的 如果我们限制我们的注意力到直觉逻辑的蕴涵片段 这也叫做希尔伯特代数 希尔伯特演繹系統和組合子邏輯的對應 编辑形式上刻画直觉逻辑的一个简单方式是希尔伯特演繹系統 它有两个公理模式 所有形式为 a b a的公式都是公理 所有形式为 a b g a b a g的公式都是公理 唯一的演绎规则是肯定前件 它声称如果我们已经证明了两个定理 一个有形式a b而另一个有形式a 我们可以结论出b也是定理 以这种方式推导出来的公式的集合正好是直觉逻辑的集合 特别的是 皮爾士定律不能以这种方式演绎 对皮爾士定律不能以这种方式演绎的证明请参见海廷代数条目 如果我们增加皮爾士定律为第三个公理模式 这个系统就有能力证明在经典逻辑的蕴涵片段中的所有定理 考虑l 表达式的下列两个函数 K lxy x S lxyz x z y z 可以证明任何函数都可以通过适当的K和S相互应用来建立 有关证明请参见组合子逻辑 例如 上面定义的函数B等价于 S K S K 如果一个函数比如B 可以表达为S和K的复合 则这个表达式可以直接转换成类型B的一个证明 它被解释为逻辑公式 是直觉逻辑的一个定理 本质上 K的外观对应于第一个公理模式的使用 S的外观对应于第二个公理模式的使用 而函数应用对应于肯定前件演绎规则的使用 第一个公理模式是a b a 并且它精确的是K函数的类型 类似的第二个公理模式 a b g a b a g 是S函数的类型 肯定前件声称如果我们有两个表达式 一个类型是a b 就是说 接受类型a的值并返回类型b的值 而另一个类型是a 就是说 类型a的值 则我们应当能够找到类型b的值 明显的 我们可以通过应用这个函数到这个值之上来得到 结果会有类型b 希爾伯特式直覺蘊含邏輯 簡單類型的組合子邏輯G 1 a G 2 a A s s u m displaystyle frac Gamma 1 alpha Gamma 2 vdash alpha Assum nbsp G 1 x a G 2 x a displaystyle frac Gamma 1 x alpha Gamma 2 vdash x alpha nbsp G a b a A x 1 displaystyle frac Gamma vdash alpha rightarrow beta rightarrow alpha Ax 1 nbsp G K a b a displaystyle frac Gamma vdash K alpha rightarrow beta rightarrow alpha nbsp G a b g a b a g A x 2 displaystyle frac Gamma vdash alpha rightarrow beta rightarrow gamma rightarrow alpha rightarrow beta rightarrow alpha rightarrow gamma Ax 2 nbsp G S a b g a b a g displaystyle frac Gamma vdash S alpha rightarrow beta rightarrow gamma rightarrow alpha rightarrow beta rightarrow alpha rightarrow gamma nbsp G a b G a G b Modus Ponens displaystyle frac Gamma vdash alpha rightarrow beta qquad Gamma vdash alpha Gamma vdash beta textit Modus Ponens nbsp G E 1 a b G E 2 a G E 1 E 2 b displaystyle frac Gamma vdash E 1 alpha rightarrow beta qquad Gamma vdash E 2 alpha Gamma vdash E 1 E 2 beta nbsp 证明a a 编辑 作为一个简单的例子 我们将构造定理a a的证明 这是恒等函数I lx x的类型 函数 S K K 等价于恒等函数 作为对证明的描述 它声称了我们需要首先应用S到K 我们做如下 a b a a b g a b a g如果我们在S中设g a 我们得到 a b a a b a a因为这个公式的前件 a b a 是一个已知定理 并且实际上正好是K 我们可以应用肯定前件并推导出后件 a b a a这是函数 S K 的类型 现在我们需要应用这个函数到K 我们再次操纵公式使得前件看起来像K 这次我们替代b为 b a a b a a a我们再次应用肯定前件来推出后件 a a我们完成了 一般的说 这个过程是只要程序包含形如 P Q 的应用 我们应当首先证明对应于P和Q的类型的定理 因为P要被应用于Q 对于某种a和b P的类型必定有形式a b而Q的类型必定有形式a 我们可以通过肯定前件规则推出b 证明 b a g b g a 编辑 作为一个更加复杂的例子 我们看对应于函数B的定理的证明 B的类型是 b a g b g a B等价于 S K S K 这是对证明定理 b a g b g a的指引 首先我们需要构造 K S 我要使K公理的前件看起来像S公理 通过设置a等于 a b g a b a g 和b等于d a b a a b g a b a g d a b g a b a g因为前件正好是S 我们可以推出后件 d a b g a b a g这是对应于 K S 的定理 现在我们要应用S到这个表达式 取得S a b g a b a g我们设置a d b a b g 和g a b a g 生成 d a b g a b a g d a b g d a b a g我们可以接着推出后件 d a b g d a b a g这是类型 S K S 的公式 这个定理的一个特殊情况有d b g b g a b g b g a b a g我们需要应用最后这个公式到K 我们再次特殊化K 这次是替代a为 b g 替代b为a a b a b g a b g 这同于前者公式的前件 所以我们推出后件 b g a b a g交换变量a和g的名字得到 b a g b g a这就是我们要证明的 自然演繹和lambda演算的對應 编辑在下表第一列中的推导规则定义了直觉蕴涵自然演绎 为蕴涵连结词准备一个介入和一个除去规则 的标准系统 在第二列中给出l displaystyle lambda nbsp 演算的标准类型指派 赋值 系统 直觉蕴涵自然演绎 lambda演算类型指派规则G a a A x displaystyle over Gamma alpha vdash alpha quad rm Ax nbsp G x a x a A x displaystyle over Gamma x alpha vdash x alpha quad rm Ax nbsp G a b G a b I displaystyle Gamma alpha vdash beta over Gamma vdash alpha rightarrow beta quad rightarrow rm I nbsp G x a E b G l x E a b I displaystyle Gamma x alpha vdash E beta over Gamma vdash lambda x E alpha rightarrow beta quad rightarrow rm I nbsp G a b G a G b E displaystyle Gamma vdash alpha rightarrow beta qquad Gamma vdash alpha over Gamma vdash beta quad rightarrow rm E nbsp G E a b G F a G E F b E displaystyle Gamma vdash E alpha rightarrow beta qquad Gamma vdash F alpha over Gamma vdash E F beta quad rightarrow rm E nbsp 相继式演算 编辑希尔伯特式证明是很难构造的 证明逻辑定理的更加直觉的方式是根岑的相继式演算 相继式演算以同希尔伯特式证明对应于组合子表达式一样的方式对应于l 表达式程序 直觉逻辑的蕴涵片段的相继式演算规则是 G a a displaystyle over Gamma alpha vdash alpha nbsp 公理 G a b G a b displaystyle Gamma alpha vdash beta over Gamma vdash alpha rightarrow beta nbsp Right G a S b g G S a b g displaystyle Gamma vdash alpha qquad qquad Sigma beta vdash gamma over Gamma Sigma alpha rightarrow beta vdash gamma nbsp Left G表示上下文 它是假设的集合 G a displaystyle Gamma vdash a nbsp 指示假定上下文G我们可以证明a 逻辑定理完全由其证明不需要假设的那些公式t组成的 就是说 t是一个定理 当且仅当我们可以证明 t displaystyle vdash t nbsp 详情请参见相继式演算 在相继式演算中的证明是树 它的根是我们要证明的定理 而它的叶子是公理模式实例 每个内部节点必须标记为要么Right 要么Left 并且必须包含依据指定规则从子节点推出的一个公式 相继式演算证明紧密的对应于l 演算表达式 断言G a displaystyle Gamma vdash a nbsp 可以被解释为意味着 给定带有在G中列出类型的值 我们可以制造带有类型a的一个值 公理对应于带有新的无约束的类型的新变量介入 Right 规则对应于函数抽象 G a b G a b displaystyle Gamma alpha vdash beta over Gamma vdash alpha rightarrow beta nbsp Right 什么时候我们能结论出某个程序G包含类型a b的函数 在G加上类型a的一个值的时候 包含了足够的机械来允许我们制造类型b的一个值 Left 规则对应于函数应用 G a S b g G S a b g displaystyle Gamma vdash alpha qquad Sigma beta vdash gamma over Gamma Sigma alpha rightarrow beta vdash gamma nbsp Left 如果我们可以制造类型a的一个值 并且如果给出类型b的一个值 我们还可以制造类型g的一个值 则类型a b的一个函数将允许我们制造类型g的一个值 首先我们可以制造a 接着应用a b函数于它 并接着使用结果的b值来制造类型g的一个值 例子 编辑 例如 b a g b g a的相继式演算如下 g g b b a a b b a a L e f t g b a g b a b a g b g a b a g b g a b a g b g a R i g h t R i g h t R i g h t L e f t displaystyle cfrac gamma vdash gamma qquad cfrac beta vdash beta qquad alpha vdash alpha beta beta rightarrow alpha vdash alpha Left rightarrow qquad cfrac gamma beta rightarrow alpha gamma rightarrow beta vdash alpha qquad cfrac beta rightarrow alpha gamma rightarrow beta vdash gamma rightarrow alpha qquad cfrac beta rightarrow alpha vdash gamma rightarrow beta rightarrow gamma rightarrow alpha vdash beta rightarrow alpha rightarrow gamma rightarrow beta rightarrow gamma rightarrow alpha Right rightarrow Right rightarrow Right rightarrow Left rightarrow nbsp b a g b g a的证明告诉我们如何制造带有这个类型的一个l 表达式 首先 介入分别带有类型a和b的变量a和b Left 规则声称制造程序 lb a b 它构造类型a的一个值 我们再次使用Left 来构造 lb a lg b g 它仍有类型a 参见 编辑直觉主义 BHK释义 直觉类型论 经典逻辑 中间逻辑 线性逻辑 构造性证明 Curry Howard对应 可计算性逻辑 博弈语义引用 编辑開創性引用 编辑 Curry Haskell Functionality in Combinatory Logic Proceedings of the National Academy of Sciences 20 584 590 1934 Curry Haskell B Feys Robert Combinatory Logic Vol I William Craig Amsterdam North Holland 1958 with 2 sections by William Craig see paragraph 9E De Bruijn Nicolaas 1968 Automath a language for mathematics Department of Mathematics Eindhoven University of Technology TH report 68 WSK 05 Reprinted in revised form with two pages commentary in Automation and Reasoning vol 2 Classical papers on computational logic 1967 1970 Springer Verlag 1983 pp 159 200 Howard William A The formulae as types notion of construction Seldin Jonathan P Hindley J Roger 编 to H B Curry Essays on Combinatory Logic Lambda Calculus and Formalism Boston MA Academic Press 479 490 1980年9月 1969 ISBN 978 0 12 349050 6 original manuscript from 1969 對應的擴展 编辑 Griffin Timothy G The Formulae as Types Notion of Control Conf Record 17th Annual ACM Symp on Principles of Programming Languages POPL 90 San Francisco CA USA 17 19 Jan 1990 47 57 1990 Parigot Michel Lambda mu calculus An algorithmic interpretation of classical natural deduction Logic Programming and Automated Reasoning International Conference LPAR 92 Proceedings St Petersburg Russia Lecture Notes in Computer Science 624 Berlin New York Springer Verlag 190 201 1992 ISBN 978 3 540 55727 2 Herbelin Hugo A Lambda Calculus Structure Isomorphic to Gentzen Style Sequent Calculus Structure Pacholski Leszek 编 Computer Science Logic 8th International Workshop CSL 94 Kazimierz Poland September 25 30 1994 Selected Papers Lecture Notes in Computer Science 933 Springer Verlag 61 75 1995 ISBN 978 3 540 60017 6 Editors list列表中的 first2 缺少 last2 帮助 Gabbay Dov de Queiroz Ruy Extending the Curry Howard interpretation to linear relevant and other resource logics Journal of Symbolic Logic 57 1319 1365 1992 Full version of the paper presented at Logic Colloquium 90 Helsinki Abstract in JSL 56 3 1139 1140 1991 de Queiroz Ruy Gabbay Dov Equality in Labelled Deductive Systems and the Functional Interpretation of Propositional Equality Dekker Paul Stokhof Martin 编 Proceedings of the Ninth Amsterdam Colloquium ILLC Department of Philosophy University of Amsterdam 547 565 1994 ISBN 9074795072 de Queiroz Ruy Gabbay Dov The Functional Interpretation of the Existential Quantifier Bulletin of the Interest Group in Pure and Applied Logics 3 2 3 243 290 1995 Full version of a paper presented at Logic Colloquium 91 Uppsala Abstract in JSL 58 2 753 754 1993 de Queiroz Ruy Gabbay Dov The Functional Interpretation of Modal Necessity de Rijke Maarten 编 Advances in Intensional Logic Applied Logic Series 7 Springer Verlag 61 91 1997 ISBN 978 0 7923 4711 8 de Oliveira Anjolina de Queiroz Ruy A Normalization Procedure for the Equational Fragment of Labelled Natural Deduction Logic Journal of the Interest Group in Pure and Applied Logics 7 2 Oxford Univ Press 173 215 1999 Full version of a paper presented at 2nd WoLLIC 95 Recife Abstract in Journal of the Interest Group in Pure and Applied Logics 4 2 330 332 1996 綜合性論文 编辑 De Bruijn Nicolaas Govert On the roles of types in mathematics PDF Groote Philippe de 编 The Curry Howard isomorphism Cahiers du Centre de logique Universite catholique de Louvain 8 Academia Bruyland 27 54 2008 08 28 ISBN 978 2 87209 363 2 原始内容存档 PDF 于2021 03 06 the contribution of de Bruijn by himself Geuvers Herman The Calculus of Constructions and Higher Order Logic Groote Philippe de 编 The Curry Howard isomorphism Cahiers du Centre de logique Universite catholique de Louvain 8 Academia Bruyland 139 191 ISBN 978 2 87209 363 2 contains a synthetic introduction to the Curry Howard correspondence Gallier Jean H On the Correspondence between Proofs and Lambda Terms PDF Groote Philippe de 编 The Curry Howard isomorphism Cahiers du Centre de logique Universite catholique de Louvain 8 Academia Bruyland 55 138 ISBN 978 2 87209 363 2 contains a synthetic introduction to the Curry Howard correspondence 書籍 编辑 De Groote Philippe 编 The Curry Howard Isomorphism Cahiers du Centre de Logique Universite catholique de Louvain 8 Academia Bruylant 1995 ISBN 978 2 87209 363 2 reproduces the seminal papers of Curry Feys and Howard a paper by de Bruijn and a few other papers Sorensen Morten Heine Urzyczyn Pawel Lectures on the Curry Howard isomorphism Studies in Logic and the Foundations of Mathematics 149 Elsevier Science 2006 1998 ISBN 978 0 44452 077 7 notes on proof theory and type theory that includes a presentation of the Curry Howard correspondence with a focus on the formulae as types correspondenceGirard Jean Yves 1987 90 Proof and Types 页面存档备份 存于互联网档案馆 Translated by and with appendices by Lafont Yves and Taylor Paul Cambridge University Press Cambridge Tracts in Theoretical Computer Science 7 ISBN 0 521 37181 3 notes on proof theory with a presentation of the Curry Howard correspondence Thompson Simon 1991 Type Theory and Functional Programming 页面存档备份 存于互联网档案馆 Addison Wesley ISBN 0 201 41667 0 外部链接 编辑Thompson Simon 1991 Type Theory and Functional Programming 页面存档备份 存于互联网档案馆 Addison Wesley ISBN 0 201 41667 0 取自 https zh wikipedia org w index php title 柯里 霍华德同构 amp oldid 69396067, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。