デモルガンの法則を証明する


21

自然控除システムの10の推論を使用して、DeMorganの法則を証明します

自然控除のルール

  • 否定の紹介: {(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

証明構造

証明の各ステートメントは、以前に導出された命題(循環ロジックなし)または仮定(以下で説明)に適用された10のルールのいずれかの結果である必要があります。各ルールは、(論理結果演算子)の左側のいくつかの命題に作用し、右側から任意の数の命題を作成します。Ifイントロダクションは、他の演算子とは若干異なる動作をします(以下で詳しく説明します)。それは、別のステートメントの論理的な結果であるステートメント全体で動作します。

例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では、ステートメントに依存するステートメントで始まりP、で終わり(P → Q)ます。新しい声明は仮定Q除いてすべての仮定に依存しPます。あなたの最終的な声明は仮定に依存するべきではありません。

詳細とスコアリング

Natural Deduction Calculusの10個の推論のみを使用して、DeMorganの2つの法則ごとに1つの証明を作成します。

2つのルールは次のとおりです。

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

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

スコアは、使用された推論の数に加えて行われた仮定の数です。最終的なステートメントは、仮定に依存するべきではありません(つまり定理であるべきです)。

必要に応じてプルーフを自由にフォーマットできます。

レムマスをあるプルーフから別のプルーフに引き継ぐことができます。

証明の例

私はそれを証明します (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から)を導き出すためにAnd Introductionを使用する(not(P) and not(Q))

  • 作成するために導出されたステートメントで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
メタに関するコンセンサスは明らかですが、誰もがまだそれを見たことはないので、これは証明ゴルフが話題になっていることを強調するためだけです。
センモウヒラムシ

2
プルーフの構造を説明する必要があると思います(また、シンボルはモバイルではレンダリングされません)。
XNOR

3
説明は間違いなく役立つと思います。私が最も有用だと思うのは、If-Introductionと仮定(できれば入れ子になったもの)を含むいくつかの簡単な証明の有効な採点例です。たぶん反対の正のですか?
XNOR

1
あなたの例では、最初の2つの仮定を反転する必要があると思います。(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のスコアを取得するには?
ダニエルシェプラー

回答:


6

スコア:81

各行は1ポイントの価値があるはずです。De Morganの法則は、ステートメント(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-introductionを使用します。

OIntro

これはまだ仮定Aに依存していますが、If-introductionを適用して定理を導き出すことができます。

IIntro

我々は導出することができたので、定理⊢ A →(AB 3つの工程(1&2つの仮定適用されるルール)の合計)。

これにより、DeMorganの法則を証明するのに役立ついくつかの新しいルールを証明することができます。

追加の規則

最初に爆発原理を導き出して、さらなる証明でPEでそれを示しましょう:

PE

このことから、私たちはそれを別の形導き出す:A ⊢¬ AX -私たちはそれを呼び出すよCPEを

PE

否定された用語(¬)が仮定である別のものが必要であり、それをCPEと呼びます-

NCPE

私たちは(由来する2つのルールからCPECPE - )、我々は重要なルールを導出することができます二重否定を

DN

次に行うことは、Modus Tollensのようなものを証明することです。したがってMTです。

MT

レンマス

補題A

補題A1

次のルールが2回必要になります。

LA1

補題A

証明された補題を2回インスタンス化することにより、等価性の1つの方向を示すことができ、最終証明で必要になります。

LA

補題B

別の方向を示すために、我々は、(両方の引数のために2回、いくつかの非常に反復的なものを行う必要がありますAB(中AB)) -この手段は、ここで私は可能性があり、おそらく、さらに証拠ゴルフ..

補題B1 '

LB1_

補題B1

LB1

補題B2 '

LB2_

補題B2

LB2

補題B

最後に、B1B2の結論:

ポンド

実証

これらの2つのステートメントを証明したら:

  • 補題A:⊢(AB)→¬(¬ A ʌ¬ B
  • 補題B:⊢¬(AB)→(¬ A ʌ¬ B

我々は最初の同値(¬(証明できるAB)≡¬ A ʌ¬ Bを次のように)):

P1

そして、証明されたばかりのルールとIff-Eliminationを使用して、2番目の同等性も証明できます。

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
私の知る限り、ここでの自然な演duction証明システムでは、一般的な命題変数を使用してステートメントを一度証明し、それをインスタンス化することはできません。そのため、変数Pとの観点から補題の1つの異なるインスタンスを作成するたびQに、最終合計でそのステップを個別にカウントする必要があります。(換言すれば、証明システムは、直接「すべての命題AとBのように、「二次」補題を証明することはできませんA/\B -> B/\A」と、両方を証明するためにそれを使用P/\(Q/\R) -> (Q/\R)/\Pし、(P/\Q)/\R -> R/\(P/\Q)。)
ダニエルSchepler

@DanielSchepler:はい。ただし、循環依存関係はありません。ルールでは、レムスをあるプルーフから別のプルーフに引き継ぐことができます。、それで大丈夫です。編集:実際、それが許可されなかった場合、この質問には適格な答えが1つしかないと確信しています。
ბიმო

私はそれを、2つの最終的なステートメントの証明の間で共有される具体的な式のセットのいくつかの共通の証明を持つことができるということを単に意味するものとして解釈していました。
ダニエルシェプラー

1

スコア:65

de Morganの法則は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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.