好吧,我认为现在是时候了,我们还有另一个证明高尔夫的问题。
这次我们将证明众所周知的逻辑真相
为此,我们将使用Łukasiewicz的第三个公理架构,这是一个由三个公理组成的极其优雅的集合,它们在命题逻辑上都是完整的。
下面是它的工作原理:
公理
Łukasiewicz系统具有三个公理。他们是:
无论我们为,和选择什么,公理都是普遍真理。在证明的任何时候,我们都可以介绍这些公理之一。当我们引入一个公理时,可以用“复杂表达式” 替换,和每种情况。复杂表达式是由Atoms生成的任何表达式(由字母 -),并且运算符表示()而不是()。
例如,如果我想介绍第一个公理(LS1),我可以介绍
要么
在第一种情况下,是,是,而在第二种情况下,两者都涉及更多的表达式。 是和 WAS。
您选择使用哪种替代将取决于您目前在证明中的需求。
方式
现在我们可以介绍语句,我们需要将它们关联在一起以创建新的语句。在Łukasiewicz的公理架构(LS)中完成此工作的方式是使用Modus Ponens。Modus Ponens允许我们采用以下两种形式的陈述
并实例化一个新语句
就像我们的Axioms一样,和可以代表任何任意语句。
这两个语句可以在证明中的任何位置,它们不必彼此相邻或任何特殊顺序。
任务
您的任务将是证明对立定律。这是声明
现在您可能会注意到,这是相当熟悉的,它是我们第三个公理的反例。
但是,这并非小事。
计分
应对这一挑战非常简单,每次实例化一个公理都被计为一个点,每次使用方式委派都被计为一个点。这实际上是证明中的行数。目标应该是使您的分数最小化(使其尽可能低)。
样例证明
好了,现在让我们用它来构造一个小的证明。我们将证明。
有时最好倒退,因为我们知道我们要去哪里,我们可以弄清楚如何到达那里。在这种情况下,由于我们想以结尾,并且这不是我们的公理之一,因此我们知道最后一步必须是方法。因此,证明的结尾看起来像
φ
φ → (A → A)
A → A M.P.
凡是一个表达式,我们还不知道的值。现在我们将重点放在。可以通过模式pons或LS3引入。LS3要求我们证明似乎和一样困难,因此我们将使用模式ponens。所以现在我们的证明看起来像
φ
ψ
ψ → (φ → (A → A))
φ → (A → A) M.P.
A → A M.P.
现在看起来很像我们的第二个公理LS2,所以我们将其填充为LS2
A → χ
A → (χ → A)
(A → (χ → A)) → ((A → χ) → (A → A)) L.S.2
(A → χ) → (A → A) M.P.
A → A M.P.
现在我们的第二条语句可以很明显地从LS1构造出来,因此我们将这样填写
A → χ
A → (χ → A) L.S.1
(A → (χ → A)) → ((A → χ) → (A → A)) L.S.2
(A → χ) → (A → A) M.P.
A → A M.P.
现在我们只需要找到一个,就可以证明。使用LS1可以很容易地做到这一点,因此我们将尝试
A → (ω → A) L.S.1
A → ((ω → A) → A) L.S.1
(A → ((ω → A) → A)) → ((A → (ω → A)) → (A → A)) L.S.2
(A → (ω → A)) → (A → A) M.P.
A → A M.P.
现在,既然我们已完成所有步骤,那么我们可以根据需要添加,从而可以证明该证明是有效的。我们可以选择,但我会选择,这样很显然,它并不需要是。
A → (B → A) L.S.1
A → ((B → A) → A) L.S.1
(A → ((B → A) → A)) → ((A → (B → A)) → (A → A)) L.S.2
(A → (B → A)) → (A → A) M.P.
A → A M.P.
这就是一个证明。
资源资源
验证程序
这是一个Prolog程序,您可以使用它来验证您的证明实际上是有效的。每个步骤应放在自己的行上。->
应该用于暗示,-
应该用于不暗示,原子可以由任何字符串的字母字符表示。
元数学
Metamath在命题演算中使用Łukasiewicz系统作为其证明,因此您可能需要在这里稍作介绍。他们也有这个挑战要求的定理的证明,可以在这里找到。有一种解释这里的如何读证明。
难以置信的证明机
@ Antony让我意识到了一个名为The Incredible Proof的工具,该工具使您可以使用一个不错的图形证明系统在许多系统中构造证明。如果向下滚动,您会发现它们支持Łukasiewicz系统。因此,如果您是一个更注重视觉的人,则可以在那里进行证明。您的分数将是已使用的块数减去1。
((P → Q) → R) → ((R → P) → (S → P))