在简单类型的lambda演算上确定函数相等性的算法?


10

我们知道,简单类型的lambda项的beta等式是可以确定的。给定M,N:σ→τ,是否对于所有X:σ,MX≃_βNXβ


简单键入Lambda演算/ STLC维基百科。由于图灵尚未完成,因此还有其他等效的基本计算模型吗?研究停止检测算法也可能很有用,根据Wikipedia的判断,STLC可以决定...
vzn 2014年

3
@Marzio:实际上,我认为这里的问题在于问题的表达方式,这是非常不准确的。正确制定后,这是一个研究水平的问题。更好的表述是:我们知道简单键入的lambda项的beta相等是可以决定的。给定M,N:στ,是否可以确定是否所有X:σMXβNX?答案通常是否定的(因此不存在诸如Viclib寻求的算法)。尽管也许可以预料,但这并不是先验的先验,而是90年代几篇论文的结果。
Damiano Mazza 2014年

@DamianoMazza:好的,的确,我没有投票关闭它……我将删除我的评论,留下您的评论,然后等待OP的评论/编辑。
Marzio De Biasi 2014年

@DamianoMazza和Marzio,我不足够提出这样一个正式的问题。虽然我希望我做到了,但这不是我在学校中学到的东西。实际上,即使我搜索“ beta平等”(实际上是我在问这个问题之前就尝试过),也给我带来的结果很少,几乎就像这个词根本不存在一样。所以我什至不知道您在哪里学习和了解所有这些内容。你们能请我指出正确的地方开始自我学习这个话题吗?问题已更新。
MaiaVictor 2014年

1
@Viclib:beta等效性是一个技术概念,我避免在回答中提及它。大致而言,当两个术语产生相同的结果时,它们等效于β。因此,对所有说意味着和计算相同的函数。关于学习(有类型的或无类型的)lambda演算的指针,我认为Peter Selinger的笔记以及Curry-Howard的 Sørensen和Urzyczyn 讲义是很好的起点。X 中号ÑMXβNXXMN
Damiano Mazza 2014年

Answers:


13

正如我在评论中说的那样,答案通常是“否”。

要理解的重要一点(我对Viclib讲过这一点,他似乎正在学习这些东西)是拥有一种编程语言/一组计算机,其中所有程序/计算都绝不终止,这意味着函数相等(即,是否两个程序/机器计算相同的功能)是可以确定的。举一个简单的例子:拿一套多项式图灵机。根据定义,所有此类机器都终止于所有输入。现在,给定任意图灵机凡,有一个图灵机的是,在给定的输入字符串,会模拟在固定输入(例如,空字符串)上计算步骤,并接受是否最多终止M 0 x | x | M M | x | N M 0 N M 0 N MMM0x|x|MM|x|步骤,否则拒绝。如果是总是立即拒绝的图灵机,则和都(显然)都是多项式时钟,但是如果我们可以确定和是否计算相同的功能(或者在这种情况下,确定相同的语言),我们将能够确定(记住,这是一个任意的图灵机)是否在空字符串上终止。NM0NM0NM

在简单类型 -calculus(STLC)的情况下,类似的论点起作用,不同的是,衡量STLC的表达能力并不像上面的情况那么简单。当我写评论时,我想到了Hillebrand,Kanellakis和Mairson于90年代初发表的几篇论文,这些论文表明,通过使用比通常的Church整数类型更复杂的类型,可以在STLC中编码足够复杂以上参数的计算工作。实际上,我现在看到所需的材料已经存在于Mairson的Statman定理的简化证明中:λ

哈里·梅尔森(Harry G. Mairson),斯坦曼定理的简单证明。《理论计算机科学》,103(2):387-394,1992年。(可在此处在线获取)。

在该论文中,Mairson显示,对于任何图灵机,都有一个简单类型和一个项编码的转换函数。(如果考虑到STLC在Church整数上的表达能力极差,那么这不是先验的先验。确实,Mairson的编码不是即时的)。由此,构建一个术语并不难σ λ δ 中号σ →交通σ 中号MσλδM:σσM

tM:nat[σ]bool

(其中是中教会整数类型的实例化),如果在以下情况下最多以步终止,则减少为。输入空字符串,否则减少为。如上所述,如果我们能够确定表示的是常量函数,则空字符串上的终止。σ 中号nat[σ]σ1 _ Mn 0 _ t M 0 _ MtMn_1_Mn0_tM0_M



因此,STLC尚未完全完善,但功能强大到足以编码图灵机的转换功能!那么,图灵机可以定义为磁带以及在其上运行的STLC程序吗?
MaiaVictor 2014年

2
@Viclib:考虑一下:模拟任意图灵机的一个步骤不需要太多的计算能力。基本上,您只需要有限的数据类型(使用if-then-else),列表(使用基本操作:cons,tail等)和有序对。(实际上,Extended Church-Turing论文声称这种低复杂度对于每个合理的机器模型都是常见的)。STLC缺少的是能够独立于输入而自由运行TM转换的能力:它只能对输入进行迭代,使其次数等于输入大小的指数塔(请参阅Mairson的论文)。
Damiano Mazza 2014年

1
@cody:谢谢,我不知道那篇论文。我猜你是对的。
Damiano Mazza 2014年
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.