正如我在评论中所说,直觉逻辑不是重点。更重要的一点是要有建设性的证明。我认为Martin-Löf的类型理论与程序设计语言理论比直觉逻辑更重要,并且有专家认为Martin-Löf的著作是恢复对构造数学的普遍兴趣的主要原因。
建设性的可计算性解释是一种可能的观点,但并不是唯一的观点。当我们想将构造证明与经典证明进行比较时,我们应该小心。尽管两者可能使用相同的符号,但是这些符号的含义不同。
最好记住,经典证明可以翻译为直觉证明。换句话说,从某种意义上说,古典逻辑是直觉逻辑的子系统。因此,您可以在某种程度上实现(例如使用可计算函数)经典证明。另一方面,我们可以将建构数学视为古典环境中的某些数学系统。
最后,形式主义,无论是古典的还是建设性的,都是我们表达言论的工具。恕我直言,采用经典定理并尝试在没有这种观点的情况下进行构造性证明是没有意义的。当我说经典我的意思是不同的东西从我说一个∨ 乙建设性。你可以说什么“应该”是“真正意义上的∨ ”,但我认为这是不感兴趣的,如果我们不是在讨论我们想在第一时间表达。我们是否意味着(至少)其中之一持有并且我们知道哪一个?还是我们只是说其中之一成立?一个∨ 乙一个∨ 乙∨
现在,这个角度来说,如果我们想要证明像一个声明,我们希望从有关这映射X一些Ÿ满足φ (X ,Y ^ ),那么更好的方式来表达可以是建设性的方式。另一方面,如果我们只关心y的存在而不关心如何找到它们,那么经典方法可能更有意义。当您建设性地证明该语句时,您还将隐式构建一种从x中查找y的算法∀ X ∃ ÿ φ (X ,ÿ)Xÿφ (X ,ÿ)ÿÿX。您可以使用更复杂的公式来明确地执行相同的操作,例如“算法具有对所有x,φ (x ,A (x ))的属性”,其中A是某些明确给出的算法。如果不清楚为什么人们会更喜欢用建设性的方式来表达这一点,那么可以将编程语言视为一个类比:您可以使用x86汇编语言为Kruskal的MST算法编写程序,在其中您必须关心很多附带问题,或者可以用Python编写程序。一种Xφ (x ,A (x ))一种
现在,为什么我们在实践中不使用直觉逻辑?有几个原因。例如,我们大多数人都没有这种思维定势。同样,找到陈述的经典证明可能比找到陈述的建设性证明要容易得多。或者,我们可能会关心在构造性设置中隐藏且无法访问的低级细节(另请参见线性逻辑)。否则,我们可能对获得具有建设性的证据所带来的额外利益不感兴趣。而且,尽管有一些工具可以从证明中提取程序,但是这些工具通常需要非常详细的证明,并且对于一般理论家来说,还不够用户友好。简而言之,痛苦太多,受益就太少。
这里是一个可能的原因,我们没有看到理论的很多建设性的证明:我们在理论的定理常常报表和使用不是很强的理论(说他们是在证明的证明P 一)和元-定理所有这些也都可以建设性地证明(在P A的建设性对应物中)。实际上,许多理论A的结果都可以用比P A弱得多的理论来证明。Π02P一种P一种P一种
我记得道格拉斯·S·布里奇斯(Douglas S.Bridges)在其可计算性理论书的引言中指出,我们应该建设性地证明我们的结果。他举例说明了IIRC基本上如下:
假设您在一家大型软件公司工作,而您的经理要求您提供解决问题的程序。返回两个程序并告诉您的经理正确的两个解决方案之一,但我不知道哪个解决方案,可以接受吗?
最后,我们应该记住,尽管我们在经典逻辑和直觉逻辑中使用相同的符号,但是这些符号具有不同的含义,所使用的符号取决于我们要表达的内容。
对于最后一个问题,我认为罗伯逊-西摩定理将是一个定理的示例,我们知道该定理在古典上是正确的,但我们没有任何建设性的证明。也可以看看