Доведіть закони ДеМоргана


21

Використовуючи десять висновків системи природного відрахування, доведіть закони 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)

  • Усунення Іффу: (P ≡ Q) ⊢ {(P → Q), (Q → P)}

  • Якщо вступ: (P ⊢ Q) ⊢ (P → Q)

  • Якщо усунення: {(P → Q), P} ⊢ Q

Структура доказу

Кожне твердження у вашому доказі повинно бути результатом одного з десяти правил, застосованих до деяких раніше отриманих пропозицій (без кругової логіки) або припущення (описаного нижче). Кожне правило діє через деякі пропозиції з лівої сторони (оператора логічних наслідків) і створює будь-яку кількість пропозицій з правого боку. If Introduction працює трохи інакше, ніж інші оператори (детально описано нижче). Він діє через одне твердження, що є логічним наслідком іншого.

Приклад 1

У вас є такі твердження:

{(P → R), Q}

Ви можете використовувати І Вступ для виготовлення:

(P → R) ʌ Q

Приклад 2

У вас є такі твердження:

{(P → R), P}

Ви можете використовувати If Elimination, щоб зробити:

R

Приклад 3

У вас є такі твердження:

(P ʌ Q)

Ви можете використовувати "І усунення", щоб зробити:

P

або зробити:

Q

Поширення припущення

Ви можете в будь-який момент прийняти будь-яку заяву, яку бажаєте. Будь-яке твердження, отримане з цих припущень, буде "залежати" від них. Заяви також залежать від припущень, на які покладаються вислови батьків. Єдиний спосіб усунути припущення - це If Introduction. Для Якщо введення, ви починаєте з Заяви, Qяка спирається на заяву, Pі закінчується (P → Q). Нове твердження залежить від кожного припущення, Qза винятком припущення P. Ваше остаточне твердження не повинно покладатися на жодні припущення.

Специфіка та оцінка

Ви побудуєте один доказ для кожного із законів DeMorgan, використовуючи лише 10 висновків обчислення природного вирахування.

Два правила:

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

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

Ваш бал - кількість використаних висновків плюс кількість зроблених припущень. Ваше остаточне твердження не повинно покладатися на будь-які припущення (тобто має бути теоремою).

Ви можете форматувати свої докази так, як вважаєте за потрібне.

Ви можете без перешкод переносити будь-які леми від одного до іншого доказу.

Приклад підтвердження

Я докажу це (P and not(P)) implies Q

(Кожна точка кулі - +1 бал)

  • Припустимо not (Q)

  • Припустимо (P and not(P))

  • Використання And Elim on (P and not(P))derive{P, not(P)}

  • Використання та вступ на Pта not(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))

  • Використовуйте 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
У вашому прикладі я вважаю, що перші два припущення повинні були бути виконані; ніде не стверджують , що (P ⊢ (Q ⊢ R)) ⊢ (Q ⊢ (P ⊢ R))(в даному випадку, ¬Q ⊢ ((P ʌ ¬P) ⊢ P)щоб (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 бал. Закони Де Моргана можна знайти у твердженнях (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" у виклику буде представлений як це дерево (зростаючи знизу вгору):

AIntro

Зверніть увагу на невідомі підрахунки A, B, а також припущення Γ - тож це не теорема. Щоб продемонструвати, як довести теорему, припустимо A та скористаємось введенням Or так:

OIntro

Тепер це все ще залежить від припущення A, але ми можемо отримати теорему, застосувавши If-вступ:

IIntro

Тож нам вдалося вивести теорему ⊢ A → ( AB ) у загальній складності за 3 кроки (1 припущення та 2 застосовані правила).

Завдяки цьому ми можемо продовжити доведення кількох нових правил, які допомагають нам довести Закони ДеМоргана.

Додаткові правила

Давайте спочатку виведемо Принцип вибуху та позначимо його з ПЕ в подальших доведеннях:

ПЕ

З цього ми отримуємо іншу його форму: A ⊢ ¬ AX - назвемо це CPE :

ПЕ

Нам знадобиться ще один, де заперечений термін (¬) є припущенням і позначатимемо його як CPE - :

NCPE

З двох щойно отриманих нами правил ( CPE і CPE - ) ми можемо отримати важливе правило подвійного заперечення :

ДН

Наступне, що потрібно зробити - це довести щось на кшталт Modus Tollens - отже, MT :

MT

Леми

Лема А

Лема А1

Нам буде потрібно наступне правило два рази:

LA1

Лема А

Ініціюючи щойно доведену лему двічі, ми можемо показати один напрямок еквівалентності, нам це знадобиться в остаточному доказі:

Л.А.

Лема В

Для того, щоб показати інший напрямок, нам потрібно буде зробити два рази кілька повторюваних речей (як для аргументів A, так і для B ( AB )) - це означає, що тут я міг би отримати додатковий доказ ..

Лема В1 '

LB1_

Лема В1

LB1

Лема В2 '

LB2_

Лема В2

LB2

Лема В

Нарешті висновок B1 і B2 :

ФУНТ

Фактичний доказ

Одного разу ми довели ці два твердження:

  • Лема A : ⊢ ( AB ) → ¬ (¬ A ʌ ¬ B )
  • Лема B : ⊢ ¬ ( AB ) → (¬ A ʌ ¬ B )

Можна довести першу еквівалентність (¬ ( AB ) ≡ ¬ A ʌ ¬ B )) наступним чином:

Р1

І тільки що доведене правило разом з Iff-Elimination ми можемо довести і другу еквівалентність:

Р2

Не впевнений у рахунку - якщо я зробив це правильно, дайте мені знати, чи є щось не так.

Пояснення

Джерело

Якщо хтось хоче текстового джерела (потрібен 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).)
Даніель Шеплер,

@DanielSchepler: Так, але кругових залежностей немає, і в правилі зазначено, що ви можете переносити будь-які леми від одного до іншого доказу без будь-яких витрат. , так що це буде добре. Редагувати : Насправді, якби це не було дозволено, я впевнений, що на це питання було б лише одна відповідна відповідь.
ბიმო

Я інтерпретував це як просто те, що ви можете мати деякі загальні докази набору конкретних формул, поділених між доказами двох заключних тверджень.
Даніель Шеплер

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.