Dimostrare le leggi di DeMorgan


21

L'uso delle dieci inferenze del sistema di detrazione naturale dimostra le leggi di DeMorgan .

Le regole della deduzione naturale

  • Introduzione alla negazione: {(P → Q), (P → ¬Q)} ⊢ ¬P

  • Eliminazione della negazione: {(¬P → Q), (¬P → ¬Q)} ⊢ P

  • E introduzione: {P, Q} ⊢ P ʌ Q

  • Ed eliminazione: P ʌ Q ⊢ {P, Q}

  • O introduzione: P ⊢ {(P ∨ Q),(Q ∨ P)}

  • O eliminazione: {(P ∨ Q), (P → R), (Q → R)} ⊢ R

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

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

  • Se introduzione: (P ⊢ Q) ⊢ (P → Q)

  • Se eliminazione: {(P → Q), P} ⊢ Q

Struttura di prova

Ogni affermazione nella tua prova deve essere il risultato di una delle dieci regole applicate ad alcune proposizioni precedentemente derivate (nessuna logica circolare) o un'ipotesi (descritta di seguito). Ogni regola opera attraverso alcune proposizioni sul lato sinistro dell'operatore (conseguenza logica) e crea un numero qualsiasi di proposizioni sul lato destro. If Introduzione funziona in modo leggermente diverso rispetto al resto degli operatori (descritto in dettaglio di seguito). Funziona attraverso un'affermazione che è la logica conseguenza di un'altra.

Esempio 1

Hai le seguenti dichiarazioni:

{(P → R), Q}

È possibile utilizzare e Introduzione per creare:

(P → R) ʌ Q

Esempio 2

Hai le seguenti dichiarazioni:

{(P → R), P}

Puoi usare If Elimination per fare:

R

Esempio 3

Hai le seguenti dichiarazioni:

(P ʌ Q)

È possibile utilizzare And Elimination per effettuare:

P

o per fare:

Q

Propagazione dell'Assunzione

In qualsiasi momento puoi assumere qualsiasi affermazione desideri. Qualsiasi affermazione derivata da questi presupposti sarà "dipendente" da essi. Le dichiarazioni dipenderanno anche dalle ipotesi su cui fanno affidamento le dichiarazioni dei genitori. L'unico modo per eliminare i presupposti è se Introduzione. In caso di introduzione, inizi con Qun'istruzione che dipende da un'istruzione Pe termina con (P → Q). La nuova affermazione fa affidamento su ogni ipotesi Qsu cui si basa, tranne per l'assunzione P. La tua dichiarazione finale non dovrebbe basarsi su ipotesi.

Specifiche e punteggio

Costruirai una prova per ciascuna delle due leggi di DeMorgan usando solo le 10 inferenze del calcolo della deduzione naturale.

Le due regole sono:

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

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

Il tuo punteggio è il numero di inferenze utilizzate più il numero di ipotesi fatte. La tua dichiarazione finale non dovrebbe basarsi su alcun presupposto (cioè dovrebbe essere un teorema).

Sei libero di formattare la prova come ritieni opportuno.

Puoi trasferire qualsiasi Lemma da una prova all'altra senza costi di valutazione.

Esempio di prova

Lo dimostrerò (P and not(P)) implies Q

(Ogni punto elenco è +1 punto)

  • Assumere not (Q)

  • Assumere (P and not(P))

  • Usando And Elim su (P and not(P))deriva{P, not(P)}

  • Uso e introduzione su Pe not(Q)per derivare(P and not(Q))

  • Usa And Elim sull'affermazione appena derivata da fare P

La nuova Pproposta è diversa dall'altra che deriviamo in precedenza. Vale a dire, dipende dalle ipotesi not(Q)e (P and not(P)). Considerando che la dichiarazione originale faceva affidamento solo su (P and not(P)). Questo ci permette di fare:

  • Se Introduzione Psull'introduzione not(Q) implies P(ancora dipendente dal (P and not(P))presupposto)

  • Utilizzare e introduzione su not(P)e not(Q)(dal passaggio 3) per derivare(not(P) and not(Q))

  • Usa And Elim sull'istruzione appena derivata da rendere not(P) (ora dipende da not(Q))

  • Se Introduzione sulla nuova not(P)introduzionenot(Q) implies not(P)

  • Ora useremo l'eliminazione della negazione su not(Q) implies not(P)e not(Q) implies Pper derivareQ

Questo Qdipende solo dal presupposto, (P and not(P))quindi possiamo terminare la prova

  • Se Introduzione su Qderivare(P and not(P)) implies Q

Questa prova ha ottenuto un totale di 11.


7
Sebbene il consenso sul meta sia chiaro, non tutti lo avranno ancora visto, quindi questo è solo per evidenziare che il golf di prova è in tema .
trichoplax,

2
Penso che dovresti spiegare la struttura delle prove e (anche il simbolo non viene visualizzato per me sui dispositivi mobili).
xnor

3
Penso che le spiegazioni siano sicuramente di aiuto. Quello che troverei più utile sarebbe un esempio funzionante e segnato di alcune semplici prove che includono If-Introduzione e ipotesi, preferibilmente nidificate. Forse di contrapposizione?
xnor

1
Nel tuo esempio, credo che i primi due presupposti dovrebbero essere capovolti; da nessuna parte vuol affermare che (P ⊢ (Q ⊢ R)) ⊢ (Q ⊢ (P ⊢ R))(in questo caso, ¬Q ⊢ ((P ʌ ¬P) ⊢ P)a (P ʌ ¬P) ⊢ (¬Q ⊢ P)è stato utilizzato).
LegionMammal978,

1
Hai il permesso di provare più cose in un unico "contesto di assunzione", e quindi estrarre più dichiarazioni di implicazione, per risparmiare su quante "linee di assunzione" sono necessarie? ad esempio (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-introper ottenere un punteggio di 9?
Daniel Schepler,

Risposte:


6

Punteggio: 81

Ogni riga dovrebbe valere 1 punto. Le leggi di De Morgan si trovano nelle dichiarazioni (3) e (6). Le etichette tra parentesi indicano le istruzioni precedenti da cui dipende una riga se non sono immediatamente precedenti.

(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

Punteggio: 59

Spiegazione

Userò un albero come struttura per la prova poiché trovo questo stile abbastanza leggibile. Ogni riga è annotata dal conteggio delle regole utilizzate, ad esempio "Esempio 1" nella sfida verrebbe rappresentato come questo albero (crescendo dal basso verso l'alto):

AIntro

Nota che l'ignoto conta A, B e anche il presupposto Γ - quindi questo non è un teorema. Per dimostrare come dimostrare un teorema, ipotizziamo A e utilizziamo un'introduzione OR come segue:

OIntro

Ora questo dipende ancora dal presupposto A, ma possiamo derivare un teorema applicando una If-introduzione:

IIntro

Quindi siamo stati in grado di derivare il teorema ⊢ A → ( AB ) in un totale di 3 passaggi (1 presupposto e 2 regole applicate).

Con questo possiamo continuare a provare alcune nuove regole che ci aiutano a dimostrare le leggi di DeMorgan.

Regole aggiuntive

Diamo prima il principio dell'esplosione e lo denotiamo con PE in ulteriori prove:

PE

Da questo ne ricaviamo un'altra forma: A ⊢ ¬ AX - lo chiameremo CPE :

PE

Ne avremo bisogno di un altro in cui il termine negato (¬) sia un presupposto e ci riferiamo ad esso come CPE - :

NCPE

Dalle due regole che abbiamo appena derivato ( CPE e CPE - ), possiamo derivare un'importante regola Doppia negazione :

DN

La prossima cosa da fare è provare qualcosa come Modus Tollens - da qui MT :

MT

lemmi

Lemma A

Lemma A1

Avremo bisogno della seguente regola due volte:

LA1

Lemma A

Istanziando due volte il lemma appena dimostrato, possiamo mostrare una direzione di equivalenza, ne avremo bisogno nella prova finale:

LA

Lemma B

Per mostrare un'altra direzione, dovremo fare due volte alcune cose abbastanza ripetitive (per entrambi gli argomenti A e B in ( AB )) - questo significa che qui potrei eventualmente approfondire ulteriormente la prova ..

Lemma B1 '

LB1_

Lemma B1

LB1

Lemma B2 '

LB2_

Lemma B2

LB2

Lemma B

Finalmente la conclusione di B1 e B2 :

LIBBRE

Prova reale

Una volta abbiamo dimostrato queste due affermazioni:

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

Possiamo provare la prima equivalenza (¬ ( AB ) ≡ ¬ A ʌ ¬ B )) come segue:

P1

E con la regola appena dimostrata insieme a Iff-Elimination possiamo anche provare la seconda equivalenza:

P2

Non sono sicuro del punteggio - se l'ho fatto bene, fammi sapere se c'è qualcosa che non va.

Spiegazione

fonte

Se qualcuno vuole la fonte tex (ha bisogno di 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
Per quanto ne so, il sistema di prova della deduzione naturale qui non consente di provare una dichiarazione una volta con variabili di proposizione generiche e quindi di crearne un'istanza. Quindi, ogni volta che hai un'istanza diversa di uno dei tuoi lemmi in termini di variabili Pe Q, dovresti contare i suoi passi separatamente nel totale finale. (In altre parole, il sistema di prove non consente direttamente di provare i lemmi di "secondo ordine" come "per tutte le proposizioni A e B A/\B -> B/\A" e quindi di usarlo per provare entrambi P/\(Q/\R) -> (Q/\R)/\Pe (P/\Q)/\R -> R/\(P/\Q).)
Daniel Schepler

@DanielSchepler: Sì, ma non ci sono dipendenze circolari e nella regola afferma che puoi portare qualsiasi Lemma da una prova all'altra senza alcun costo per il punteggio. , quindi andrà bene. Modifica : in effetti, se ciò non fosse consentito, sono certo che questa domanda avrebbe una sola risposta idonea.
ბიმო

Lo stavo interpretando come semplice significato che potresti avere alcune prove comuni di una serie di formule concrete condivise tra le prove delle due dichiarazioni finali.
Daniel Schepler,

1

Punteggio: 65

Le leggi de Morgan sono la riga 30 e la riga 65.

(Non ho fatto alcuno sforzo particolare per giocare a golf, ad esempio per vedere se ci sono alcune prove ripetute che potrebbero essere astratte all'inizio.)

 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.