兰姆达微积分(二)

如果我们不使用括号来分隔函数和参数,我们如何消除涉及三个或更多条款的表达式,例如“pqr”? 回想一下我们的惯例,我们将通过从左到右工作来了解这种正式的非法表达,始终将括号围绕相邻的术语。 因此,'PQR'应理解为(PQ)R. 'pqrs'是((pq)r)s。 表达'(PQ)R'歧义; 由我们的公约,它与PQR相同。 表达'P(QR)'也明确消亡; 它与PQR不同,因为它是将p应用于参数QR(这本身就是函数q到参数r)的应用。

(λx[m])λ术语在主体术语M中结合变量X.

λ-微积分的官方词汇包括符号'λ',left'('和右')'括号,以及一组变量(假设与三个符号'λ','('和')'以为我们有句法混乱)。

替代符号。 不必在语法中包含两种分组符号(括号和方括号)。 单独的括号或方括号显然就足够了。 为了可读性,在此进入中使用两种支架。 鉴于两种分组符号,我们可以进一步节省并省略从抽象术语中省略括号,因此'(λx[m])'将被写为'xx [m]'。

一些作者编写“λx.m”或'λx⋅m',用完整的停止或居中点,将绑定变量与抽象术语的主体分开。 与方括号一样,这些设备旨在帮助阅读λ-术语; 它们通常不是官方语法的一部分。 (一个人看到了在早期逻辑作品中使用的那个设备,例如Principia Mathematica,其中符号的功能。在诸如'∀x.φ'之类的表达式中,让我们读取整个公式φ,如∀x的范围内。)

一些作者编写抽象术语,没有任何设备从身体分离绑定变量的任何设备:这些术语被清晰地写入,例如'λxx','λyx'。 这种做法并非没有它的优点:它与可以要求的简明扼要,并允许λ-微积分的更简单的官方语法。 但这种做法并非完美无瑕。 在'λxyz'中,是绑定的变量x还是xy? 通常,变量的名称是单个字母,理论上这显然是足够的。 但禁止为变量提供更长名称的做法似乎过度限制; 实际上,这种结构在计算机编程语言中自然出现。

为了统一,我们将在此条目中采用方括号表示法。 (顺便提及,这种符号用于(图灵,1937)。)

m [x:= a]通过代替λ-术语a而在m的所有自由出现的x术中获得的λ术语。

令人欣赏的符号阵列代表替代的簇数可以在λ-微积分和科学主题的文献中找到:

是[x /一个],是[一个/ x],最大值,mxa,[x /一个]是,...

哪些用于替代的符合法似乎是个人问题。 在此条目中,我们使用线性符号,避免上标和下标。 用':='代表替换的实践来自计算机科学,其中':='以某种编程语言读取,因为将值分配给变量。

与采用抽象术语的方括号一样,用于写入替换的方括号不是λ-微分的语法的正式部分。 m和a是术语,x是一个变量; m [x:= a]是另一个术语。

m≡ntheλ-术语M和N是相同的:理解为符号序列,M和N具有相同的长度,并且序列的相应符号是相同的。

句法身份关系≡不是λ-微积分官方语法的一部分; λ-术语之间的关系属于λ-微积分的结论。 显然是λ-术语之间平等的相当严格的概念。 因此,情况不是这种情况(如果x和y是不同的变量),即使这两个术语也以相同的方式清楚地“表现”的意义上,也不是同样的标识操作x∈x。 后来我们将开发正式的λ-术语的理论,目的是捕获λx[x]和λy[y]的这种直观平等。

3.λ-微积分的简史

λ-微积分从函数的研究中源于规则。 这些受试者的基本成分已经可以在Frege的开创性工作中找到(Frege,1893)。 正如我们上面所做的那样,弗雷格观察到的是,在函数的研究中,它足以专注于一元函数(即,采用完全参数的函数)。 (将多个ARINITY操作视为产生等效机构的抽象序列的过程称为CURRYing操作。也许它将更准确地称为运行Fregeing,但在称谓的诉诸中经常出现司法数学思想。)在20世纪20年代,MathematicianMosesSchönfinkel进一步与他的所谓组合者的研究进一步接受了这个主题。 如常见在主题的初期,Schönfinkel对某一在正式逻辑中看到的转换感兴趣,他的组合者旨在成为正式逻辑基础的贡献。 通过模比,在与Sheffer Stroke中的经典命题逻辑中看到的减少,Schöfinkel建立了所有功能(在所有转换的意义上)的令人惊讶的结果可以在组合者K和S中给出; 后来我们将看到这些组合者的定义。

由k和s和变量x组成的每个术语m的定理,存在术语f(仅从k和s构建),使得我们可以派生FX = M。

(证明这两种足以代表所有功能的证据超出了本条目的范围。有关进一步的讨论,请参阅组合逻辑的条目。)可以建设性地证明定理:有一个算法,给定M,产生所需的F.教堂λx[m]'(教堂,1932)。[3] 从这个角度来看,β-规则可以是合理的:如果'λx[m]'是满足fx = m的函数f,则λx[m] x应该转换为m.这只是一个特别的原则的特殊情况,这对于所有n(λx[m])n应转换为m [x:= n]。

虽然今天我们有更明确的抽象和重写系统,但在其早期λ - 微积分和组合逻辑(àlaSchönfinkel)的束缚下与数学基础的调查有限。 在咖喱,教堂,克莱恩和罗瑟(主题的一些先驱者)中,重点是在定义数学对象并在这些新系统内进行逻辑推理。 事实证明,这些目前所谓的诽谤λ-微积分和组合逻辑的早期尝试不一致。 咖喱被隔绝并抛光不一致; 结果现在被称为咖喱悖论。 请参阅Curry Paradox和附录B(Barendregt,1985)的条目。

λ-微积分在逻辑历史中获得特殊的地方,因为它是第一个不可判定问题的来源。 问题是:给定λ-术语m和n,确定m = n。 (尚未定义关于λ-术语的实际推理理论;定义稍后会出现。)这个问题显示出不可判定。

λ-微积分中的另一个早期问题是它根本一致。 在这种情况下,不一致意味着所有术语等于:可以将任何λ-术语M减少到任何其他λ-术语N.这不是λ-scalulus的早期结果。 最初有一个结果表明某些术语不互连(例如,K和S); 后来,一个更强大的结果,所谓的教堂 - rosser定理,有助于揭示β-转换的光线,可用于提供全类λ-术语的非互补性的快速证明。 请参阅下面以获取更详细的一致性讨论。

在20世纪60年代,λ-微积分在20世纪60年代,终于发现了“数学”语义的时候是有点晦涩的形式主义。 它还澄清了与编程语言的关系。 直到那时λ-微积分的唯一模型是“句法”,即亨基风格生成,由λ-术语的等同类组成(适当的等价概念)。 由于Montague和其他语言学家的发展,在自然语言的语义中的应用,帮助“传播了对该主题的话语。 从那时起,λ-微积分在数学逻辑,计算机科学,语言学(参见,例如Heim和Kratzer 1998)中享有可观的位置,以及科多特田。

4.减少

可获得λ-术语的各种概念,但主要是β-减少,我们已经先前见过。 早些时候我们使用了“⊳”的符号; 我们可以更精确。 在本节中,我们讨论β-减少和一些延伸。

定义(一步β-缩减⊳β,1)对于λ-术语A和B,我们说β-减少在一步到B,写入a⊳β,1B,以便存在a的(发生A)子线C的情况,变量x,并且λ-术语M和n使得c 1(λx[m])n和b是a,只是通过m [x:= n]替换a中的c的发生。

以下是β-减少的一些例子:

变量x不会β-缩小到任何内容。 (它没有正确的形状:它只是一个变量,而不是左侧是抽象项的应用程序。)

(λx[x])a⊳β,1a的。

如果x和y是不同的变量,那么(λx[y])a⊳β,1y。

λ术语(λx[(λy[xy])a])b]β-在一步到两个不同的λ-术语中减少:

(λx[(λy[xy])一个])b⊳β,1(λy[的])一个

(λx[(λy[xy])一个])b⊳β,1(λx[xa])b

此外,可以检查这两个术语β-减少一步到公共期限:BA。 因此,我们有:

(λy[的])a↗↘(λx[(λy[xy])一个])bba↘↗(λx[xa])b

与任何二进制关系一样,可以提出关于关系的许多问题,其中1在λ-术语之间保持,并且可以在⊳β,1中定义各种衍生的概念。

定义来自λ-术语a至λ-ingbb的β-缩小序列是λ-术语的有限序列S1,... SN,以B结尾,其相邻术语(SK,SK + 1)满足sk⊳β,1SK + 1的性质。。

更一般地,任何序列的S-序列的有限或无限开始于λ-术语A开始,据说是一种β还原序列,该β-还原序列开始于S的相邻术语(SK,SK + 1)满足sk⊳β,1SK + 1的性质。

继续β-减少实施例1,在所有与可变x开始时都没有β还减少序列。

继续β-减少实施例2,双序列

(λx[x])一个,一个

来自(λx[x])a到a的β还原序列。 如果A是变量,则不能延长该β还是β-还原序列,并且没有与(λx[x])a开始的其他β还减少序列; 因此,与(λx[x])a开始的该组β-还原序列是有限的并且不含无限序列。

组合器ω具有ω⊳β,1Ω的好奇属性。 使用ω(有限或无限)开始的每个β还减少序列的每个术语等于ω。

考虑术语KaΩ。 在此期限开始,有多种减少序列:

kaω⊳β,1a的

kaω⊳β,1kaω⊳β,1a的

kaω⊳β,1kaω⊳β,1kaω⊳β,1a的

kaω⊳β,1kaω⊳β,1kaω...

如果A是一个变量,则可以看到所有有限的减少序列在A处开始,并且恰好有一个无限的减少序列。

定义λ-术语M的β-redex是(λx[p])q的m的β-的β-Δ-yem)。 ('Redex'来自“可还原表达式”。β-Redex仅仅是应用β-减少的候选者。 这样做,一个合同β-redex。 如果没有β-redexes,则据说一个术语是β-正常形式。

(可以术语有多种β-正常形式吗?答案实际上是“是”,但基本上答案是'否':如果一个m和m'是某个术语的β-正常形式,则M是α可转换为m',因此β-正常形式是独一无二的绑定变量。)

到目前为止,我们只关注β减少的一步。 通过采用关系的传递闭合,1可以将多个β还原步骤结合到一个。

对于λ-术语A和B的定义,α-减少到B,写入a⊳βb,如果A 1B或来自A到B的有限β还原序列。

如果存在术语n使得n在β-正常形式中,则定义术语m具有β-正常形式。

定义的重复性是单向关系:通常不是真的,如果a⊳βb,那么b⊳βa。 然而,根据一个人的目的,如果将A减少到B或B减少到A,则可能希望将A和B视为等同物。这样做的是考虑对关系的反射,对称和传递闭合⊳β,1。

λ-术语A和B的定义,我们说A =βB如果任一个a∈B或存在序列S1,... Sn,以B结束,并且其相邻术语(SK,SK + 1)是sk⊳β,1SK + 1或SK +1⊳β,1sk。

4.1其他减少概念

迄今为止我们已经开发出β减少理论。 这绝不是λ-微积分中可用的唯一概念。 除了β-还原之外,λ-术语之间的标准关系是η降低的:

定义(一步η降)对于λ-术语A和B,我们说,在一个步骤中,在一个步骤中减少到B,写入a⊳βη,1b,以防a,变量x的(变量x的(变量x)λ-术语m和n

c≡(λx[m])n和b是a,只是通过m [x:= n]替换a中的c的发生

要么

C 1(λx[mx])和B是a,只是通过M替换A中的C的发生。

第一个条款在βη的定义中,1确保了该关系扩展了一步β还原的关系。 正如我们为一步β减少的关系所做的那样,我们可以重播η减少的发展。 因此,一个具有η-redex的概念,并且从⊳η,1可以在λ-术语之间定义关系⊳η,作为⊳η,1的反射和传递闭合,其捕获η降低的零点或更长步长。 然后一个限定=η作为⊳η的对称和传递闭合。

如果a⊳η,1b,则B的长度严格小于a的长度。因此,可以没有无限η-缩短。 如上所述,这不是β还原的情况,如上所述在β还原序列例3和4中。

人们可以结合减少的概念。 一种有用的组合是混合β-和η降低。

定义(一步βη还原)λx[mx]⊳βη,100万和(λx[是] n))⊳βη,1m的[x:= n]。 在一个步骤中在一个步骤中降低到一个步骤中,以便在一个步骤中在一个步骤或η-减少到B中的β-术语b。

同样,人们可以重播减少的基本概念,因为我们对β-还原的β-还原的新概念进行了抑制的。

4.2减少策略

召回如果它没有β-redexes,则遵循术语以β-正常形式,即形状的底部(λx[m])n。 如果可以将其降低到β-正常形式的术语,则术语具有β-正常形式。 它应该直观地清楚的是,如果一个术语具有β-正常形式,那么我们可以通过彻底收缩术语的所有β-redexes,然后彻底收缩所有产生的术语的所有β-redex,等等。 要说一个术语具有β正常形式,可以说这盲目的搜索最终将终止。

盲目搜索β-正常形式并不令人满意。 除了美学上不愉快,它可以是非常低效的:可能没有任何需要彻底收缩所有β-redexes。 所需的是策略 - 优选地,可计算的一个用于寻找β正常形式。 问题是有效地决定,如果有多个术语的β-redexes,应该减少。

定义Aβ-缩减策略是域名是所有λ-术语的集合,并且其值在β-Normal形式的术语m上的值是M的重叠子,并且其在β-Normal形式中的所有术语M中的值是M.

换句话说,每当术语具有多个β-redexes时,β还减少策略选择哪一个应该收缩。 (如果一个术语处于β-正常形式,那么就没有任何东西,这就是我们在β-还原策略的定义中需要改变β-normal形式的任何术语的原因。)可以将策略■作为λ-术语的关系表示λ-术语。m⊳sn规定,通过遵守策略S,在一步中从M获得N.当被视为关系时,策略构成了⊳β,1的次倍曲线。

β-缩减策略可能或可能没有遵守该战略的财产将确保我们(最终)达到β-正常形式,如果存在。

定义,如果m具有β-正常形式N,则β-术语M是归一化的β-还原策略S是归一化的,然后序列M,S(m),s(s(m)),...终止于n。

一些β-缩减策略是正常化的,但其他β还没有。

最右边的策略,我们总是选择减少最右边的β-redex(如果有任何β-redexes)是不是正常化。 例如,考虑术语Kiω。 该术语具有两个β-redexes:本身,ω(召回,术语ων)(λx[xx]))(λx[xx]))。 通过使用左手β-redexes,我们可以分两步减少β-将kiω降低到i。 如果我们坚持使用最右边的β-redexω,我们将ki(ω)降低到ki(ω),那么ki(ω),......。

最左边的策略,我们总是选择减少最左边的β-redex(如果有任何β-redexes)是归一化的。 证明这一事实超出了这个条目的范围; 有关详细信息,请参阅(Barendregt,1985,第13.2节)。

一旦我们确定了减少策略,就会询问人是否可以改善它是很自然的。 如果一个术语具有β-正常形式,则策略将发现正常形式; 但可能存在较短的β-还原序列,达到相同的正常形式(或术语是α可转换为该正常形式的术语)? 这是最优性的问题。 定义最佳策略并表明它们是最佳的,通常比简单地定义策略更困难。 有关更多讨论,请参阅(BarendRegt,1984章第10章)。

为了具体性,我们只讨论了β还原策略。 但在上面的定义中,减少β的概念是一种可能性。 对于任何减少的概念,我们具有R减少策略的相关理论,人们可以重播常规情况,最优性等的问题。

5.λ-理论

我们之前讨论了λ-微积分是一种非扩展功能理论。 如果在非扩展精神中,我们将λ-术语视为描述,我们应该如何治疗λ-术语的平等? 可以使用各种方法。 在本节中,让我们将平等关系=作为原始,未定义的关系在两个λ-术语之间保持,并尝试将平等应具有的属性执行。 任务是标识公理,并制定有关λ-术语的平等的合适的推断规则。

平等的一些明显的属性,与λ-微积分无关,如下:

x = xx = yy = xx = yy = zx = z

与标准的证明理论一样,读取这些推断规则的方式是,高于水平规则是规则(即等式)的场所,水平规则下方的等式是推理规则的结论。 在反复性规则的情况下,没有任何内容写在水平规则之上。 我们理解这样的案例,即对所有条款x来说,我们可以从没有任何房地推断出等式x = x。

5.1基本理论λ

上一节中列出的三个推理规则管理平等与λ-微积分无关。 以下列出了推理的规则,其涉及平等的未定义概念和λ-微积分,应用和抽象的两个术语建设操作。

是=南=控制下针=精氨酸=南=nλx[是] =λx[n]

这些推断规则说:=是λ-术语集的一致性关系:它'保留'应用程序和抽象术语建设操作

最终推理,β-转换规则是最重要的:

(λx[是])一个=是[x:=一个]

如前所述,规则β没有房屋:对于任何变量x和任何术语m和a,可以在理论λ中的正式推导中的任何点处推断出在任何点处的等式(λx[m])a = m [x:= a]。

(本章完)

相关推荐