理论CS何时(或应该)关心直觉证明?


23

据我了解(很少,所以请纠正我的错误!),编程语言理论通常与“直觉”证明有关。在我自己的解释中,该方法要求我们认真考虑计算对逻辑和可证明性的后果。除非存在一种从假设中构造后果的算法,否则证明就不存在。我们可能会拒绝作为公理排中的原则,例如,因为它表现出的一些对象,要么是¬ X,nonconstructively。X¬X

以上哲学可能使我们更倾向于直觉上有效的证明,而不是没有证明的证明。但是,在理论CS的其他领域中,我对论文中实际使用直觉逻辑没有任何担忧。我们似乎很高兴使用经典逻辑来证明我们的结果。例如,您可能想像使用排除中间的原理来证明一种算法是正确的。换句话说,我们在结果中关注并认真考虑计算受限的宇宙,但不一定要在我们对这些结果的证明中。

1.理论CS的研究人员是否曾经担心编写直觉上有效的证明?我很容易想到理论计算机科学的一个子领域,该子领域试图了解TCS结果(尤其是算法结果)何时包含直觉逻辑(或更有趣的是,当它们不包含)。但是我还没有碰到任何东西。

2.他们应该有什么哲学上的争论吗?似乎可以声称,计算机科学的结果应该在可能的情况下凭直觉来证明,我们应该知道哪些结果需要例如 PEM。有没有人试图提出这样的论点?也许已经达成共识,这个问题不是很重要?

3.作为一个附带的问题,我很好奇要知道在哪些情况下这实际上很重要:在传统逻辑中,是否有重要的TCS结果已知,而在直觉逻辑中却没有?或怀疑不符合直觉逻辑。

对于这个问题的柔和性表示歉意!在听取专家意见后,可能需要重新措辞或重新解释。


3
这个问题的一个方面已经被研究到“死亡”。直觉证明与程序之间的联系的名称是Curry-Howard对应关系。简而言之,程序=直觉证明,类型=命题,双重否定==跳跃。
马丁·伯杰

众所周知,TCS的重要结果不是直觉逻辑,而是经典逻辑:每个程序要么终止,要么运行无穷的时间。:)
科迪

1
@MartinBerger-是的,但是换一种说法,我们实际上是否在乎我们编写的证明是直觉主义者,还是我们只对抽象地研究这些证明感兴趣?
美国UL

1
@科迪,又名马可夫原理。+ usul,我认为您的想法不是直觉逻辑,而是建设性数学。您不能仅凭直觉逻辑做很多事情,在我看来,您对直觉主义的强调来自于不将其与建构主义数学区分开来。
卡夫

@usul是的,我们会注意的,因为根据Curry-Howard的对应关系,直觉证明是使用“好的”编程语言编写的程序(例如,没有时髦的控制构造),而真正的经典证明则是使用更复杂的语言编写的程序。
马丁·伯杰

Answers:


6

正如我在评论中所说,直觉逻辑不是重点。更重要的一点是要有建设性的证明。我认为Martin-Löf的类型理论与程序设计语言理论比直觉逻辑更重要,并且有专家认为Martin-Löf的著作是恢复对构造数学的普遍兴趣的主要原因。

建设性的可计算性解释是一种可能的观点,但并不是唯一的观点。当我们想将构造证明与经典证明进行比较时,我们应该小心。尽管两者可能使用相同的符号,但是这些符号的含义不同。

最好记住,经典证明可以翻译为直觉证明。换句话说,从某种意义上说,古典逻辑是直觉逻辑的子系统。因此,您可以在某种程度上实现(例如使用可计算函数)经典证明。另一方面,我们可以将建构数学视为古典环境中的某些数学系统。

最后,形式主义,无论是古典的还是建设性的,都是我们表达言论的工具。恕我直言,采用经典定理并尝试在没有这种观点的情况下进行构造性证明是没有意义的。当我说经典我的意思是不同的东西从我说一个建设性。你可以说什么“应该”是“真正意义上的 ”,但我认为这是不感兴趣的,如果我们不是在讨论我们想在第一时间表达。我们是否意味着(至少)其中之一持有并且我们知道哪一个?还是我们只是说其中之一成立?ABAB

现在,这个角度来说,如果我们想要证明像一个声明,我们希望从有关这映射X一些Ÿ满足φ X Y ^ ),那么更好的方式来表达可以是建设性的方式。另一方面,如果我们只关心y的存在而不关心如何找到它们,那么经典方法可能更有意义。当您建设性地证明该语句时,您还将隐式构建一种从x中查找y的算法x y φ(x,y)xyφ(x,y)yyx。您可以使用更复杂的公式来明确地执行相同的操作,例如“算法具有对所有xφ x A x 的属性”,其中A是某些明确给出的算法。如果不清楚为什么人们会更喜欢用建设性的方式来表达这一点,那么可以将编程语言视为一个类比:您可以使用x86汇编语言为Kruskal的MST算法编写程序,在其中您必须关心很多附带问题,或者可以用Python编写程序。Axφ(x,A(x))A

现在,为什么我们在实践中不使用直觉逻辑?有几个原因。例如,我们大多数人都没有这种思维定势。同样,找到陈述的经典证明可能比找到陈述的建设性证明要容易得多。或者,我们可能会关心在构造性设置中隐藏且无法访问的低级细节(另请参见线性逻辑)。否则,我们可能对获得具有建设性的证据所带来的额外利益不感兴趣。而且,尽管有一些工具可以从证明中提取程序,但是这些工具通常需要非常详细的证明,并且对于一般理论家来说,还不够用户友好。简而言之,痛苦太多,受益就太少。

这里是一个可能的原因,我们没有看到理论的很多建设性的证明:我们在理论的定理常常报表和使用不是很强的理论(说他们是在证明的证明P )和元-定理所有这些也都可以建设性地证明(在P A的建设性对应物中)。实际上,许多理论A的结果都可以用比P A弱得多的理论来证明。Π20PAPAPA

我记得道格拉斯·S·布里奇斯Douglas S.Bridges)在其可计算性理论书的引言中指出,我们应该建设性地证明我们的结果。他举例说明了IIRC基本上如下:

假设您在一家大型软件公司工作,而您的经理要求您提供解决问题的程序。返回两个程序并告诉您的经理正确的两个解决方案之一,但我不知道哪个解决方案,可以接受吗?

最后,我们应该记住,尽管我们在经典逻辑和直觉逻辑中使用相同的符号,但是这些符号具有不同的含义,所使用的符号取决于我们要表达的内容。

对于最后一个问题,我认为罗伯逊-西摩定理将是一个定理的示例,我们知道该定理在古典上是正确的,但我们没有任何建设性的证明。也可以看看


什么是“理论A”,为什么我要特别关注其中的证明?
Stella Biderman


7

值得思考的是,为什么直觉逻辑是计算的自然逻辑,因为人们常常会迷失在技术细节上,而无法掌握问题的实质。

简而言之,经典逻辑是完美信息的逻辑:系统中的所有语句均假定为已知或已知为明确的是非。

另一方面,直觉逻辑具有陈述未知和不可知真值的陈述的空间。这对于计算非常重要,因为由于在一般情况下无法确定终止,因此无法始终确定某些语句的真实值,甚至无法确定是否可以将真实值分配给某些语句。

¬¬PP

在我看来,这些“语义”原因是将直觉逻辑用于计算的重要动机,远比其他任何技术原因都可以处理。


3

像MD5和SHA这样的真实世界的加密哈希函数是无密钥的。因此,很难将理论密码学中的技术应用于其安全性。原因很简单:对于任何无键哈希函数,都有一个很小的程序/对手,在该哈希函数下输出冲突;即,具有此类冲突的程序-必须存在!-硬编码。

菲尔·罗加威(Phil Rogaway)的论文《形式化人类的无知:没有钥匙的防碰撞散列》解决了这个问题。他在书中指出,键哈希函数的一些非常标准的定理(例如Merkle-Damgård构造和“哈希-然后-符号”范例)可以通过适用于非键哈希函数的“直观主义者友好”定理陈述进行调整和重新证明。


0

这是一本完整的在线书籍中有关直觉逻辑的一个不错的章节,该书来自一本综合性的在线书籍《计算机科学逻辑》,第300页。[1] 9.5秒,p210,p220的摘要:

直觉逻辑源于数学的建构主义运动,它拒绝了非建构性的存在性证明或基于排除中间律的证明。最近,直觉数学和程序设计之间的联系是从命题和类型(在程序设计意义上)是等效的观察中得出的。在这种基于自然演绎的形式系统中,算法的开发包括以逻辑符号编写规范,然后将其视为一种类型,证明其为非空。由于基础逻辑是建设性的证明,因此如果可以执行,

TCS主义者安德烈·鲍尔(Andrej Bauer)在题为《数学与计算;计算机数学》 [2]的文章中提出了另一个基本观点,即基本上说“直觉数学对物理有好处”。演示主要是从物理学的角度出发,但是对于那些认为CS与物理紧密结合的人来说,意识形态通常会带给TCS。

计算解释。这是计算机科学中常见的直觉逻辑的解释。我们认为所有集合都由适当的数据结构表示,这对于计算机科学家来说是一种合理的观点。如果存在证明其真实性的程序(计算证据),则认为该陈述为真。

[1] 计算机科学逻辑,里夫斯和克拉克

[2] 鲍尔物理学的直觉数学

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.