证明摩根定律


21

利用自然演绎系统的十个推论证明了德摩根定律

自然演绎法则

  • 否定介绍: {(P → Q), (P → ¬Q)} ⊢ ¬P

  • 消除否定: {(¬P → Q), (¬P → ¬Q)} ⊢ P

  • 并介绍: {P, Q} ⊢ P ʌ Q

  • 和消除: P ʌ Q ⊢ {P, Q}

  • 或简介: P ⊢ {(P ∨ Q),(Q ∨ P)}

  • 或消除: {(P ∨ Q), (P → R), (Q → R)} ⊢ R

  • Iff简介: {(P → Q), (Q → P)} ⊢ (P ≡ Q)

  • Iff消除: (P ≡ Q) ⊢ {(P → Q), (Q → P)}

  • 如果介绍: (P ⊢ Q) ⊢ (P → Q)

  • 如果消除: {(P → Q), P} ⊢ Q

证明结构

证明中的每个陈述必须是应用于某些先前推导的命题(无循环逻辑)或假设(如下所述)的十个规则之一的结果。每个规则在(逻辑结果运算符)左侧的某些命题上运行,并从右侧创建任意数量的命题。If Introduction的工作原理与其余运算符略有不同(下面将详细介绍)。它跨一个语句运行,这是另一个语句的逻辑结果。

例子1

您具有以下语句:

{(P → R), Q}

您可以使用And Introduction做:

(P → R) ʌ Q

例子2

您具有以下语句:

{(P → R), P}

您可以使用If Elimination进行以下操作:

R

例子3

您具有以下语句:

(P ʌ Q)

您可以使用And Elimination进行以下操作:

P

或做出:

Q

假设传播

您可以随时假设您希望发表任何声明。从这些假设得出的任何陈述都将“依赖”它们。语句还将依赖于其父语句所依赖的假设。消除假设的唯一方法是If Introduction。对于If简介,您从一个Q依赖于一个语句的Statement开始,P并以结尾(P → Q)。新的语句是依赖于每一个假设Q依赖,除了为前提P。您的最终声明不应基于任何假设。

细节和得分

您将仅使用自然演算演算的10个推论为DeMorgan的两个定律中的每一个构造一个证明。

这两个规则是:

¬(P ∨ Q) ≡ ¬P ʌ ¬Q

¬(P ʌ Q) ≡ ¬P ∨ ¬Q

您的分数是所使用的推论数量加上做出的假设数量。您的最终声明不应依赖任何假设(即应为一个定理)。

您可以自由选择适合自己的格式。

您可以免费将任何Lemmas从一个证明转移到另一个证明。

示例证明

我会证明 (P and not(P)) implies Q

(每个项目符号点为+1点)

  • 假设 not (Q)

  • 假设 (P and not(P))

  • (P and not(P))派生上使用And Elim{P, not(P)}

  • Pnot(Q)上使用和介绍(P and not(Q))

  • 在刚导出的语句上使用And Elim P

新的P主张不同于我们先前提出的另一主张。即它依赖于假设not(Q)(P and not(P))。原始声明仅依赖(P and not(P))。这使我们能够:

  • 如果在P引入时引入not(Q) implies P(仍然依赖于(P and not(P))假设)

  • 使用和引进的not(P)not(Q)(步骤3)推导(not(P) and not(Q))

  • 在刚刚衍生的make语句上使用And Elim not(P) (现在依赖not(Q)

  • 如果介绍对新的not(P)介绍not(Q) implies not(P)

  • 现在,我们将对使用否定消除,not(Q) implies not(P)not(Q) implies P得出Q

Q仅取决于假设,(P and not(P))因此我们可以用

  • 如果引言Q继续推导(P and not(P)) implies Q

该证明总共得分11。


7
尽管关于meta的共识很明确,但并不是所有人都看到了它,因此,这只是强调证明高尔夫是个话题
trichoplax

2
我认为您应该解释证明的结构和(该符号也不会在手机上呈现给我)。
xnor

3
我认为这些解释绝对有帮助。我发现最有用的是一些简单的证明的有效示例,其中包括If-Introduction和假设(最好是嵌套的)。也许是相反的?
xnor

1
在您的示例中,我认为前两个假设必须翻转;它(P ⊢ (Q ⊢ R)) ⊢ (Q ⊢ (P ⊢ R))在任何地方都没有声明(在本例中使用¬Q ⊢ ((P ʌ ¬P) ⊢ P)to (P ʌ ¬P) ⊢ (¬Q ⊢ P))。
LegionMammal978

1
是否允许您在单个“假设上下文”中证明多件事,然后提取多个蕴涵语句,以节省需要多少“假设行”?例如(assume (P/\~P); P,~P by and-elim; (assume ~Q; P by assumption; ~P by assumption); ~Q->P by impl-intro; ~Q->~P by impl-intro; Q by neg-elim); P/\~P->Q by impl-intro获得9分?
Daniel Schepler '17

Answers:


6

得分:81

每行应得1分。声明(3)和(6)给出了德摩根定律。方括号中的标签表示一行是否取决于之前的语句。

(a) assume P {
    (aa) P ^ P
    (ab) P
    (ac) P v Q
} (a1) P -> P
  (a2) P -> P v Q
(1) assume ~P ^ ~Q {
    (1a) assume P v Q {
        (1aa) assume Q {
            (1aaa) assume ~P {
                (1aaaa) Q ^ Q [1aa]
                (1aaab) Q
                (1aaac) ~Q [1]
            } (1aaa1) ~P -> Q
              (1aaa2) ~P -> ~Q
            (1aab) P
        } (1aa1) Q -> P
        P [1a, a1, 1aa1]
        ~P [1]
    } (1a1) P v Q -> P
      (1a2) P v Q -> ~P
    (1b) ~(P v Q)
} (11) ~P ^ ~Q -> ~(P v Q)
(2) assume ~(P v Q) {
    (2a) ~(P v Q) ^ ~(P v Q)
    (2b) assume P {
        (2aa) ~(P v Q) [2a]
    } (2b1) P -> ~(P v Q)
    (2c) ~P [a2, 2b1]
    (2d) assume Q {
        (2da) ~(P v Q) [2a]
        (2db) P v Q
    } (2d1) Q -> ~(P v Q)
      (2d2) Q -> P v Q
    (2e) ~Q
    (2f) ~P ^ ~Q
} (21) ~(P v Q) -> ~P ^ ~Q
(3) ~(P v Q) == ~P ^ ~Q [11, 21]
(4) assume ~P v ~Q {
    (4a) assume ~P {
        (4aa) assume P ^ Q {
            (4aaa) P
            (4aab) ~P ^ ~P [4a]
            (4aac) ~P
        } (4aa1) P ^ Q -> P
          (4aa2) P ^ Q -> ~P
        (4ab) ~(P ^ Q)
    } (4a1) ~P -> ~(P ^ Q)
    (4b) assume ~Q {
        (4ba) assume P ^ Q {
            (4baa) Q
            (4bab) ~Q ^ ~Q [4b]
            (4bac) ~Q
        } (4ba1) P ^ Q -> Q
          (4ba2) P ^ Q -> ~Q
        (4bb) ~(P ^ Q)
    } (4b1) ~P -> ~(P ^ Q)
    (4c) ~(P ^ Q) [4, 4a1, 4b1]
} (41) ~P v ~Q -> ~(P ^ Q) 
(5) assume ~(P ^ Q) {
    (5a) assume ~(~P v ~Q) {
        (5aa) ~(~P v ~Q) ^ ~(P ^ Q) [5, 5a]
        (5ab) assume ~P {
            (5aba) ~P v ~Q
            (5abb) ~(~P v ~Q) [5aa]
        } (5ab1) ~P -> ~P v ~Q
          (5ab2) ~P -> ~(~P v ~Q)
        (5ac) P
        (5ad) assume ~Q {
            (5ada) ~P v ~Q
            (5adb) ~(~P v ~Q) [5aa]
        } (5ad1) ~Q -> ~P v ~Q
          (5ad2) ~Q -> ~(~P v ~Q)
        (5ae) Q
        (5af) P ^ Q [5ac, 5ae]
        (5ag) ~(P ^ Q) [5aa]
    } (5a1) ~(~P v ~Q) -> P ^ Q
      (5a2) ~(~P v ~Q) -> ~(P ^ Q)
    (5b) ~P v ~Q
} (51) ~(P ^ Q) -> ~P v ~Q
(6) ~(P ^ Q) == ~P v ~Q [41, 51]

4

得分:59

说明

我将使用树状结构作为证明,因为我发现这种样式可读性强。每行均以已用规则的计数来注释,例如,挑战中的“示例1”将表示为该树(从下到上生长):

简介

注意未知数A,B以及假设Γ-因此这不是定理。为了演示如何证明一个定理,让我们假设A并使用Or-介绍,如下所示:

OIntro

现在,这仍然取决于假设A,但是我们可以通过应用If引言来推导一个定理:

简介

所以我们能够得出定理⊢ →()在总共3个步骤(1个假设&2条施加的规则)。

由此,我们可以继续证明一些新规则,以帮助我们证明DeMorgan的定律。

附加规则

首先,让我们得出爆炸原理,并用PE进一步证明它:

聚乙烯

由此我们得出它的另一种形式:一个 ⊢¬ 一个X -我们称之为CPE

聚乙烯

我们需要另一个在否定条件(¬)是一个假设,而称其为CPE -

NCPE

从我们刚刚得到的(这两个规则CPECPE - ),我们可以得出一个重要的规则双重否定

DN

接下来要做的事情就是要证明像否定后件 -因此MT

公吨

引理

引理A

引理A1

我们将需要两次以下规则:

LA1

引理A

通过两次实例化刚刚证明的引理,我们可以证明等价的一个方向,在最终证明中我们将需要它:

洛杉矶

引理B

为了显示另一个方向,我们需要做两次颇有些重复的东西(对于两个参数一个在()) -这意味着在这里我可能高尔夫球证据进一步..

引理B1'

LB1_

引理B1

LB1

引理B2'

LB2_

引理B2

LB2

引理B

最后得出B1B2的结论:

磅

实际证明

一旦我们证明了以下两个陈述:

  • 引理甲:⊢()→¬(¬ ʌ¬
  • 引理乙:⊢¬()→(¬ ʌ¬

我们可以证明所述第一等价(¬()≡¬ ʌ¬ ))如下:

P1

借助刚刚证明的规则和Iff-Elimination,我们也可以证明第二个等价关系:

P2

不确定分数-如果我做对了,请告诉我是否有问题。

说明

资源

如果有人想要tex来源(需要mathpartir):

In the following a rule \textbf{XYZ'} will denote the rule XYZ's second last
step, for example \textbf{PE'} will be $ A \land \lnot A \vdash X $.

\section*{Principle of Explosion [PE]}

\begin{mathpar}
  \inferrule*[Left=$\to$-Intro,Right=10]
    {\inferrule*[Left=$\lnot$-Elim,Right=9]
      {\inferrule*[Left=$\to$-Intro,Right=4]
        {\inferrule*[Left=$\land$-Elim,Right=3]
          {\inferrule*[Left=Axiom,Right=2]
            { }
            { A \land \lnot A, \lnot X \vdash A \land \lnot A }
          }
          { A \land \lnot A, \lnot X \vdash A }
        }
        { A \land \lnot A \vdash \lnot X \to A } \\
       \inferrule*[Right=$\to$-Intro,Left=4]
          {\inferrule*[Right=$\land$-Elim,Left=3]
            {\inferrule*[Right=Axiom,Left=2]
              { }
              { A \land \lnot A, \lnot X \vdash A \land \lnot A }
            }
            { A \land \lnot A, \lnot X \vdash \lnot A }
          }
        { A \land \lnot A \vdash \lnot X \to \lnot A }
      }
      { A \land \lnot A \vdash X }
    }
    { \vdash (A \land \lnot A) \to X }
\end{mathpar}

\section*{Conditioned PE [CPE]}

\begin{mathpar}
  \inferrule*[Left=$\to$-Intro,Right=5]
  {\inferrule*[Left=$\to$-Elim,Right=4]
    {\inferrule*[Left=$\land$-Intro,Right=3]
      {\inferrule*[Left=Axiom,Right=1]
        { } { A \vdash A } \\
       \inferrule*[Right=Axiom,Left=1]
        { } { \lnot A \vdash \lnot A }
      }
      { A, \lnot A \vdash A \land \lnot A } \\
     \inferrule*[Right=PE,Left=0]
      { } { \vdash (A \land \lnot A) \to X }
    }
    { A, \lnot A \vdash X }
  }
  { A \vdash \lnot A \to X }
\end{mathpar}

to get \textbf{CPE$^-$}:

\begin{mathpar}
  \inferrule*[Left=$\to$-Intro,Right=1]
    {\inferrule*[Left=CPE',Right=0]
      { }
      { A, \lnot A \vdash X }
    }
    { \lnot A \vdash A \to X }
\end{mathpar}

\section*{Double Negation [DN]}

\begin{mathpar}
  \inferrule*[Left=$\equiv$-Intro,Right=5]
    {\inferrule*[Left=$\to$-Intro,Right=2]
      {\inferrule*[Left=$\lnot$-Elim,Right=1]
        {\inferrule*[Left=CPE$^-$,Right=0]
          { }
          { \lnot\lnot A \vdash \lnot A \to X } \\
          \inferrule*[Right=CPE$^-$,Left=0]
          { }
          { \lnot\lnot A \vdash \lnot A \to \lnot X }
        }
        { \lnot\lnot A \vdash A }
      }
      { \vdash \lnot\lnot A \to A } \\ \\ \\
      \inferrule*[Left=$\to$-Intro,Right=2]
        {\inferrule*[Left=$\lnot$-Intro,Right=1]
          {\inferrule*[Left=CPE,Right=0]
            { }
            {  A \vdash \lnot A \to X } \\
            \inferrule*[Right=CPE,Left=0]
            { }
            { A \vdash \lnot A \to \lnot X }
          }
          { A \vdash \lnot\lnot A }
        }
        { \vdash A \to \lnot\lnot A }
    }
    { \vdash \lnot\lnot A \equiv A  }
\end{mathpar}

\section*{Modus Tollens [MT]}

\begin{mathpar}
  \inferrule*[Left=$\to$-Intro,Right=6]
    {\inferrule*[Left=$\lnot$-Intro,Right=5]
      {\inferrule*[Left=Axiom,Right=1]
       { }
       { A \to \lnot B \vdash A \to \lnot B } \\
       \inferrule*[Right=$\to$-Intro,Left=3]
         {\inferrule*[Right=Axiom,Left=2]
           { }
           { A, B \vdash B }
         }
         { B \vdash A \to B }
       }
      { A \to \lnot B, B \vdash \lnot A }
    }
    { A \to \lnot B \vdash B \to \lnot A }
\end{mathpar}

\section*{Lemma A}

\textbf{Lemma A1}:

\begin{mathpar}
  \inferrule*[Left=$\to$-Intro,Right=9]
    {\inferrule*[Left=$\lor$-Elim,Right=8]
       { \inferrule*[Left=CPE,Right=3]
          {\inferrule*[Left=$\land$-Elim,Right=2]
            {\inferrule*[Left=Axiom,Right=1]
              { }
              { A \land B \vdash A \land B }
            }
            { A \land B \vdash B}
          }
          { A \land B \vdash \lnot B \to X } \\
         \inferrule*[Right=CPE,Left=3]
          {\inferrule*[Right=$\land$-Elim,Left=2]
            {\inferrule*[Right=Axiom,Left=1]
              { }
              { A \land B \vdash A \land B }
            }
            { A \land B \vdash A }
          }
          { A \land B \vdash \lnot A \to X } \\ \\ \\
         \inferrule*[Right=Axiom,Left=1]
          { }
          { \lnot A \lor \lnot B \vdash \lnot A \lor \lnot B }
       }
       { A \land B, \lnot A \lor \lnot B \vdash X }
    }
    { \lnot A \lor \lnot B \vdash (A \land B) \to X }
\end{mathpar}

\textbf{Lemma A}:

1
据我所知,这里的自然演绎证明系统不允许一次用通用命题变量证明一条语句,然后实例化它。因此,每次您对变量P和中的一个引理进行不同的实例化时Q,您都必须在最终总数中分别计算其步骤。(换句话说,证明系统不允许直接证明“针对所有命题A和B A/\B -> B/\A”的“ 二阶”引理,然后用它来证明P/\(Q/\R) -> (Q/\R)/\P(P/\Q)/\R -> R/\(P/\Q)。)
Daniel Schepler

@DanielSchepler:是的,但是没有循环依赖性,并且在规则中规定您可以将任何Lemmas从一个证明转移到另一个证明,而无需计分。,这样就可以了。编辑:实际上,如果不允许这样做,我可以确定这个问题只有一个合格的答案。
ბიმო

我将其解释为简单的意思是,您可以在两个最终陈述的证明之间共享一些具体公式的一些共同证明。
Daniel Schepler '17

1

得分:65

摩根法律是第30行和第65行。

(我没有特别努力打高尔夫球,例如,看看是否有一些重复的证据可以在一开始就被抽象出来。)

 1. assume ~(P\/Q)
 2.   assume P
 3.     P\/Q  by or-introl, 2
 4.   P -> P\/Q  by impl-intro, 2, 3
 5.   P -> ~(P\/Q)  by impl-intro, 2, 1
 6.   ~P  by neg-intro, 4, 5
 7.   assume Q
 8.     P\/Q  by or-intror, 7
 9.   Q -> P\/Q  by impl-intro, 7, 8
10.   Q -> ~(P\/Q) by impl-intro, 7, 1
11.   ~Q  by neg-intro, 9, 10
12.   ~P /\ ~Q  by and-intro, 6, 11
13. ~(P\/Q) -> ~P/\~Q  by impl-intro, 1, 12
14. assume ~P /\ ~Q
15.   ~P, ~Q  by and-elim, 14
16.   assume P \/ Q
17.     assume P
18.     P -> P  by impl-intro, 17, 17
19.     assume Q
20.       assume ~P
21.       ~P -> Q  by impl-intro, 20, 19
22.       ~P -> ~Q  by impl-intro, 20, 15
23.       P  by neg-elim, 21, 22
24.     Q -> P  by impl-intro, 19, 23
25.     P  by or-elim, 16, 18, 24
26.   P\/Q -> P  by impl-elim, 16, 25
27.   P\/Q -> ~P  by impl-elim, 16, 15
28.   ~(P\/Q)  by neg-intro, 26, 27
29. ~P/\~Q -> ~(P\/Q)  by impl-intro, 14, 28
30. ~(P\/Q) <-> ~P/\~Q  by iff-intro, 13, 29
31. assume ~(P/\Q)
32.   assume ~(~P\/~Q)
33.     assume ~P
34.       ~P\/~Q  by or-introl, 33
35.     ~P -> ~P\/~Q  by impl-intro, 33, 34
36.     ~P -> ~(~P\/~Q)  by impl-intro, 33, 32
37.     P  by neg-elim, 35, 36
38.     assume ~Q
39.       ~P\/~Q  by or-intror, 38
40.     ~Q -> ~P\/~Q  by impl-intro, 38, 39
41.     ~Q -> ~(~P\/~Q)  by impl-intro, 38, 32
42.     Q  by neg-elim, 40, 41
43.     P /\ Q  by and-intro, 37, 42
44.   ~(~P\/~Q) -> P /\ Q  by impl-intro, 32, 43
45.   ~(~P\/~Q) -> ~(P /\ Q)  by impl-intro, 32, 31
46.   ~P \/ ~Q  by neg-elim, 44, 45
47. ~(P/\Q) -> ~P\/~Q  by impl-intro, 31, 46
48. assume ~P\/~Q
49.   assume ~P
50.     assume P/\Q
51.       P, Q  by and-elim, 50
52.     P/\Q -> P  by impl-intro, 50, 51
53.     P/\Q -> ~P  by impl-intro, 50, 49
54.     ~(P/\Q)  by neg-intro, 52, 53
55.   ~P -> ~(P/\Q)  by impl-intro, 49, 54
56.   assume ~Q
57.     assume P/\Q
58.       P, Q  by and-elim, 57
59.     P/\Q -> Q  by impl-intro, 57, 58
60.     P/\Q -> ~Q  by impl-intro, 57, 56
61.     ~(P/\Q)  by neg-intro, 59, 60
62.   ~Q -> ~(P/\Q)  by impl-intro, 56, 61
63.   ~(P/\Q)  by or-elim, 48, 55, 62
64. ~P\/~Q -> ~(P/\Q)  by impl-intro, 48, 63
65. ~(P/\Q) <-> ~P\/~Q  by iff-intro, 47, 64
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.