建构主义逻辑是一个排除公理的排除中间定律和双重否定的系统。它在Wikipedia的此处和此处进行了描述。特别是,该系统不允许矛盾证明。
我想知道,是否有人熟悉这如何影响有关Turing Machines和形式语言的结果?我注意到,几乎所有关于语言不确定性的证明都依赖于矛盾证明。对角化论证和归约概念都以这种方式工作。会否存在一种不确定语言存在的“建设性”证据?如果是,那它将是什么样?
编辑:很清楚,我对建构主义逻辑中的矛盾证明的理解是错误的,答案已经澄清了这一点。
建构主义逻辑是一个排除公理的排除中间定律和双重否定的系统。它在Wikipedia的此处和此处进行了描述。特别是,该系统不允许矛盾证明。
我想知道,是否有人熟悉这如何影响有关Turing Machines和形式语言的结果?我注意到,几乎所有关于语言不确定性的证明都依赖于矛盾证明。对角化论证和归约概念都以这种方式工作。会否存在一种不确定语言存在的“建设性”证据?如果是,那它将是什么样?
编辑:很清楚,我对建构主义逻辑中的矛盾证明的理解是错误的,答案已经澄清了这一点。
Answers:
是。您不需要排除的中间派生矛盾。特别是,对角化仍然有效。
这是Conor McBride提出的典型对角化论点。这种特殊的对角化是关于不完备性,而不是不确定性,但是想法是相同的。需要注意的重要一点是,他得出的矛盾不是“ P而不是P”的形式,而是“ x = x + 1”的形式。
当然,现在您可能想知道构造逻辑是否承认“ x = x + 1”是矛盾的。是的 矛盾的主要属性是任何东西都来自矛盾,并且使用“ x = x + 1”,对于任何两个自然数,我的确可以建设性地证明“ x = y”。
关于建设性证明可能有所不同的一件事是定义“不确定”的方式。按照古典逻辑,每种语言都必须是可决定的或不可决定的。因此,“不确定”仅表示“不确定”。但是,在构造逻辑中,“ not”不是原始逻辑运算,因此我们无法以这种方式表示不确定性。相反,我们说一种语言是不可决定的,如果假设它可决定会导致矛盾。
实际上,即使“非”不是构成逻辑中的原始形式,我们也通常将“非P”定义为“ P可用于构建矛盾”的句法糖,因此,通过矛盾进行证明实际上是唯一的方法。建设性地证明“不是P”形式的陈述,例如“语言L不确定”。
在建设性地讨论经典陈述的可证明性时,我们如何制定它们通常很重要。经典等效公式不必在构造上等效。同样重要的是,您所用的构造证明确切意味着什么,有各种各样的构造主义学派。
例如,声明那些不可计算的总函数在那些以丘奇-图灵命题(即每个函数都是可计算的)为公理的建设性数学中是不正确的。
另一方面,如果小心,可以将其表述为可证明的:对于总可计算函数的任何可计算枚举,都将存在不在该枚举中的总可计算函数。
您可能会发现Andrej Bauer的这篇文章很有趣。
ps:我们还可以从类别理论的角度来看对角化。看到
我认为基数证明仍然成立,表明存在非可计算语言的语言(因此绝对不确定)。
立即证明是非常简单的,它只是观察到图灵机是用某种有限的字母编码的(可能也是二进制的),因此有不计其数的东西,并且所有语言在固定字母上的集合(可能又是二进制的) )是该字母表中字符串集合的所有子集的集合-即可数集合的幂集,并且必须是不可数的。因此,图灵机的数量少于语言的数量,因此某些东西不可计算。
在我看来,这足够具有建设性(尽管从物理上讲是不可能的,但是它为您提供了一种指向某些语言集的方法,并且知道一种语言是不可计算的)。
然后我们可能会问,是否有可能证明可数和不可数集合具有不同的基数,尤其是避免对角化。我认为这仍然是可能的。康托尔的原始论点似乎也具有建设性。
当然,这确实需要由对建构主义逻辑了解更多的人来检查。
我认为我同意其他人的观点,即对角化论点是有建设性的,尽管据我所知,在某些圈子中对此存在一些分歧。
我的意思是,假设我们正在查看所有可确定语言的集合。我可以使用对角线化来构造不确定的语言。值得注意的是,尽管历史上我认为这些都是相关的弧度,但我根本不认为“建构主义”和“ finitism”是同一回事。
首先,我认为每个人(甚至是建构主义者)都同意,一组可决定的语言是可数的。由于这套图灵机是可数的(我们可以使用有限的字符串对所有有效的TM进行编码),因此很容易遵循这一协议。
因此,从技术上讲,我们构建了一种“无法决定”的语言;建构主义者是否会认为“不应决定”不应与“不确定”相混淆是一个有趣的问题,但我没有能力回答。
为了澄清,我认为这说明了以下内容:我们可以建设性地证明存在图灵机未决定的语言。在特定的框架内,如何选择解释这一点是一个难题。