DeMorgan yasalarını kanıtla


21

Doğal Kesinti Sisteminin on çıkarımının kullanılması, DeMorgan yasalarını ispatlamaktadır .

Doğal Kesinti Kuralları

  • Olumsuz Giriş: {(P → Q), (P → ¬Q)} ⊢ ¬P

  • Olumsuzluğun Ortadan Kaldırılması: {(¬P → Q), (¬P → ¬Q)} ⊢ P

  • Ve Giriş: {P, Q} ⊢ P ʌ Q

  • Ve Eliminasyon: P ʌ Q ⊢ {P, Q}

  • Veya Giriş: P ⊢ {(P ∨ Q),(Q ∨ P)}

  • Veya Eliminasyon: {(P ∨ Q), (P → R), (Q → R)} ⊢ R

  • Iff Giriş: {(P → Q), (Q → P)} ⊢ (P ≡ Q)

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

  • Giriş ise: (P ⊢ Q) ⊢ (P → Q)

  • Eger Eliminasyon: {(P → Q), P} ⊢ Q

Geçirmez yapısı

Kanıtınızdaki her ifade, daha önce türetilmiş bazı önerilere (dairesel mantık yok) veya bir varsayıma (aşağıda açıklanmıştır) uygulanan on kuraldan birinin sonucu olmalıdır. Her kural (mantıksal sonuç operatörünün) sol tarafındaki bazı önermelerde çalışır ve sağ taraftan herhangi bir sayıda teklif oluşturur. If Giriş, operatörlerin geri kalanından biraz farklı çalışır (aşağıda ayrıntılı olarak açıklanmaktadır). Bir diğerinin mantıksal sonucu olan bir ifadeyle çalışır.

örnek 1

Aşağıdaki ifadelere sahipsiniz:

{(P → R), Q}

Ve Giriş'i aşağıdakileri yapmak için kullanabilirsiniz:

(P → R) ʌ Q

Örnek 2

Aşağıdaki ifadelere sahipsiniz:

{(P → R), P}

Eğer Eleme yapmak için kullanabilirsiniz:

R

Örnek 3

Aşağıdaki ifadelere sahipsiniz:

(P ʌ Q)

Yapmak için Eleme'yi kullanabilirsiniz:

P

veya yapmak için:

Q

Varsayım Yayılımı

Herhangi bir noktada dilediğiniz herhangi bir ifadeyi kabul edebilirsiniz. Bu varsayımlardan türetilmiş olan ifadeler, bunlara "bağlı" olacaktır. İfadeler ayrıca, ana beyanlarının dayandığı varsayımlara bağlı olacaktır. Varsayımları ortadan kaldırmanın tek yolu If If. Çünkü eğer giriş Q, bir cümleye dayanan bir İfade ile başlar Pve biter (P → Q). Her varsayım üzerine yeni açıklama güvenen Qgüvenir hariç varsayımı için P. Son ifadeniz varsayımlara dayanmamalı.

Özellikler ve puanlama

Doğal Kesinti Hesaplaması'nın yalnızca 10 çıkarımını kullanarak DeMorgan'ın iki yasasının her biri için bir kanıt oluşturacaksınız.

İki kural:

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

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

Puanınız, kullanılan çıkarımların sayısı ve yapılan varsayımların sayısıdır. Son ifadeniz herhangi bir varsayıma dayanmamalı (yani bir teorem olmalı).

Kanıtınızı uygun gördüğünüz şekilde biçimlendirmekte özgürsünüz.

Herhangi bir Lemmayı bir ispattan diğerine puan vermeden ücretsiz olarak taşıyabilirsiniz.

Örnek Kanıt

Bunu kanıtlayacağım (P and not(P)) implies Q

(Her madde işareti noktası +1 puandır)

  • üstlenmek not (Q)

  • üstlenmek (P and not(P))

  • Üzerinde Ve Elim kullanma (P and not(P))derived{P, not(P)}

  • Kullanımı ve Tanıtımı Pve not(Q)türetilmesi(P and not(Q))

  • Sadece türetmek için türetilmiş ifadesinde And Elim kullanın. P

Yeni Pteklif daha önce türettiğimizden farklı. Yani varsayımlara dayanıyor not(Q)ve (P and not(P)). Oysa asıl ifade sadece güveniyordu (P and not(P)). Bu bize yapmamızı sağlar:

  • Giriş, Ptanıtım not(Q) implies P(hala (P and not(P))varsayıma bağlı)

  • Türetmek not(P)ve not(Q)(3. adımdan itibaren) türetmek için kullanın.(not(P) and not(Q))

  • Sadece türetmek için türetilmiş ifadede And Elim kullanın not(P) (şimdi bağımlı not(Q))

  • Yeni not(P)tanıtıma Giriş isenot(Q) implies not(P)

  • Şimdi olumsuzlama giderimini kullanacağız not(Q) implies not(P)ve not(Q) implies Ptüretmek için kullanacağız.Q

Bu Qsadece varsayıma bağlı (P and not(P)), ispat ile bitirebiliriz.

  • Giriş Qtüretmek üzerine(P and not(P)) implies Q

Bu kanıt toplam 11 puan alır.


7
Meta üzerindeki fikir birliği açık olmasına rağmen, henüz herkes onu görmemiş olacak, bu yüzden bu sadece ispat golfünün konuyla ilgili olduğunu vurgulamak için .
trichoplax

2
Bence kanıtların yapısını açıklamalısınız ve (sembol benim için mobilde de yapmıyor).
xnor,

3
Açıklamaların kesinlikle yardımcı olduğunu düşünüyorum. En yararlı bulduğum şey, If-Giriş ve varsayımları içeren, tercihen yuvalanmış basit bir kanıtın çalışılmış ve puanlanmış bir örneği olurdu. Contrapositive belki?
xnor,

1
Örneğinizde, ilk iki varsayımın çevrilmesi gerektiğine inanıyorum; hiçbir yerde ifade etmez (P ⊢ (Q ⊢ R)) ⊢ (Q ⊢ (P ⊢ R))(bu durumda, ¬Q ⊢ ((P ʌ ¬P) ⊢ P)hiç (P ʌ ¬P) ⊢ (¬Q ⊢ P)kullanıldı).
LegionMammal978

1
Tek bir "varsayım bağlamında" birden fazla şeyi ispatlamanıza ve ardından kaç "varsayım satırına" ihtiyaç duyulduğundan tasarruf etmek için birden fazla uygulama ifadesi çıkarmanıza izin veriliyor mu? örneğin (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-intro9 puan almak için?
Daniel Schepler

Yanıtlar:


6

Skor: 81

Her satır 1 puan değerinde olmalıdır. De Morgan'ın yasaları (3) ve (6) ifadelerinde bulunur. Parantez içindeki etiketler, bir satırın hemen öncekinden geçmemesine bağlı olan önceki ifadeleri ifade eder.

(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

Puan: 59

açıklama

Bu stili oldukça okunaklı bulduğum için ispat için bir ağaç benzeri yapı kullanacağım. Her satır kullanılan kuralların sayısına göre açıklanmıştır, örneğin, meydan okumadaki "Örnek 1" bu ağaç olarak gösterilecektir (aşağıdan yukarıya doğru büyür):

AIntro

Bilinmeyen A, B sayımlarını ve count varsayımını not alın - bu bir teorem değildir. Bir teoremin nasıl ispatlanacağını göstermek için, A'yı alalım ve bir Or-girişini şu şekilde kullanalım:

OIntro

Şimdi bu hala A varsayımına dayanıyor ancak bir If-girişi uygulayarak bir teorem türetebiliriz:

IIntro

Böylece, ⊢ A → ( AB ) teoremini toplam 3 adımda türetebildik (1 varsayım ve 2 uygulamalı kural).

Bununla DeMorgan Yasasını kanıtlamamıza yardımcı olacak birkaç yeni kuralı kanıtlamaya devam edebiliriz.

Ek Kurallar

İlk önce Patlama Prensibi'ni çıkaralım ve bunu kanıtlarla PE ile gösterelim :

PE

Bundan, başka bir formunu türetiriz : A ⊢ ¬ AX - ona CPE diyoruz :

PE

Biz Terslenmis terim (¬) bir varsayımdır başka bir ihtiyacı ve o sonuca referans alırız CPE - :

NCPE

Yeni oluşturduğumuz iki kuraldan ( CPE ve CPE - ) önemli bir kural çıkartabiliriz : Negatiflik :

DN

Sonraki şey yapmak için böyle bir şey kanıtlamak Modus Tollens - dolayısıyla MT :

MT

lemmaları

Lemma A

Lemma A1

Aşağıdaki kurala iki kez ihtiyacımız olacak:

LA1

Lemma A

Kanıtlanmış lemayı iki kez başlatarak eşdeğerliğin bir yönünü gösterebiliriz, final kanıtında buna ihtiyacımız olacaktır:

Los Angeles

Lemma B

Başka bir yön göstermek için, iki kez bazı tekrarlayan şeyler yapmamız gerekecek ( A ve B'nin her ikisinde de ( AB ) argümanları için ) - bu, burada kanıtı daha fazla golf oynayacağım anlamına gelir.

Lemma B1 '

LB1_

Lemma B1

LB1

Lemma B2 '

LB2_

Lemma B2

LB2

Lemma B

Sonunda B1 ve B2'nin vardığı sonuç :

1 POUND = 0.45 KG

Gerçek kanıtı

Bir keresinde bu iki ifadeyi kanıtladık:

  • Lemma A : ⊢ ( AB ) → ¬ (¬ A ʌ ¬ B )
  • Lemma B : ⊢ ¬ ( AB ) → (¬ A ʌ ¬ B )

İlk denkliği (¬ ( AB ) ≡ ¬ A ʌ ¬ B )) aşağıdaki gibi ispatlayabiliriz :

P1

Ve Iff-Eliminasyon ile birlikte kanıtlanmış kuralla, ikinci denkliği de kanıtlayabiliriz:

P2

Skordan emin değilim - doğru yaptıysam, yanlış bir şey olup olmadığını bilmeme izin ver.

açıklama

Kaynak

Biri tex kaynağını istiyorsa ( mathpartir gerekiyor ):

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
Söyleyebileceğim kadarıyla, buradaki doğal kesinti kanıtı sistemi, genel teklif değişkenleriyle bir kez ifade verilmesine ve daha sonra onu başlatmaya izin vermiyor. Yani, her zaman değişkenleri açısından sizin lemmalarõn birinin farklı bir örnekleme sahip Pve Q, son toplamda ayrı kendi adımlarını saymak gerekir. (Diğer bir deyişle, dayanıklı sistem doğrudan "Tüm önermeler A ve B, örneğin "ikinci dereceden" lemmas kanıtlayan izin vermez A/\B -> B/\Asonra" her iki kanıtlamak için kullanıyor P/\(Q/\R) -> (Q/\R)/\Pve (P/\Q)/\R -> R/\(P/\Q).)
Daniel Schepler

@DanielSchepler: Evet, ancak herhangi bir döngüsel bağımlılık yoktur ve kuralda belirtildiği gibi , herhangi bir Lemmayı bir ispatdan diğerine puan vermeden ödeyebilirsiniz. , bu iyi olacak. Düzenleme : Aslında buna izin verilmediyse, bu sorunun yalnızca bir tane uygun cevabı olacağından eminim.
ბიმო

Bunun iki nihai ifadenin kanıtları arasında paylaşılan bir takım somut formülün ortak kanıtlarına sahip olabileceğiniz anlamına geldiğini yorumluyordum .
Daniel Schepler

1

Puan: 65

De Morgan yasaları satır 30 ve satır 65'tir.

(Bunu başarabilmek için herhangi bir çaba sarf etmedim, örneğin, başlangıçta soyutlanabilecek bazı tekrarlanan kanıtlar olup olmadığını görmek için.)

 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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.