2. Logika#

Narration

Aby dobrze się komunikować, trzeba ustalić język i zasady w nim obowiązujące: poprawnie sformułować twierdzenie, a następnie – korzystając z ustalonych zasad – udowodnić, że jest ono prawdziwe. Zajmiemy się logiką klasyczną (dwuwartościową).

2.1. Zdania logiczne#

Definicja 2.1

Zdanie logiczne to zdanie oznajmujące, któremu można przypisać określoną wartość logiczną. W logice klasycznej zdania dzielimy na:

  • prawdziwe (przypisujemy im wartość logiczną \(1\))

  • fałszywe (o wartości logicznej \(0\)).

Zdania nieposiadające jednoznacznej wartości logicznej (pytania, rozkazy, zdania z niepodstawioną zmienną, antynomie w rodzaju „To zdanie jest fałszywe”) nie są zdaniami logicznymi.

Przykład 2.1

  1. „Dwa plus dwa równa się cztery.” jest zdaniem logicznym.

    Na gruncie zwykłej arytmetyki przypiszemy mu wartość logiczną 1.

  2. „Ala ma kota.” jest zdaniem logicznym.

    Wartość logiczna tego zdania powinna odzwierciedlać naszą wiedzę na temat tego, czy Ala ma kota.

  3. „Czy to jest zrozumiałe?” nie jest zdaniem logicznym - nie jest zdaniem oznajmującym.

  4. „Ach, jak tu pięknie!”, „Otwórz okno!” również nie są zdaniami logicznymi.

  5. Jeśli nie przyjmiemy konkretnej wartości \(x\in\rr\), to zdanie „\(x > 0\)” nie jest zdaniem logicznym.

    Problem w tym, że nie możemy przypisać mu jednoznacznej wartości logicznej, gdyż zależy ona od wartości zmiennej \(x .\)

  6. „To zdanie jest fałszywe.”, „Ja teraz kłamię.” też nie są zdaniami logicznymi.

    To antynomie, czyli zdania prowadzące do sprzeczności logicznej.

    Istotnie, jeśli przyjąć, że „To zdanie jest fałszywe.” ma wartość logiczną 1, to wywnioskujemy z niego, że jest ono fałszywe, czyli ma wartość logiczną 0 – sprzeczność.

    Analogicznie nie możemy przypisać temu zdaniu wartości logicznej 0.

Narration

Zdania logiczne najczęściej oznacza się małymi literami łacińskimi, zaczynając od: \(p, q, r, s .\)

2.2. Funktory zdaniotwórcze#

Narration

Zdania złożone budujemy ze zdań prostych za pomocą spójników logicznych (funktorów zdaniotwórczych) .

Definicja 2.2

Dla zdań \(p, q\) definiujemy:

  • negację: \(\quad \Negation p\) („nieprawda, że \(p\)”)

  • koniunkcję: \(\quad p\wedge q\) (”\(p\) i \(q\)”)

  • alternatywę: \(\quad p\vee q\) (”\(p\) lub \(q\)”)

  • implikację: \(\quad p \imply q\) („jeśli \(p\), to \(q\)”)

  • równoważność: \(\quad p\Leftrightarrow q\) (”\(p\) wtedy i tylko wtedy, gdy \(q\)”)

których wartościowanie określamy zgodnie z tabelą:

\(p\)

\(q\)

\(\Negation p\)

\(p\wedge q\)

\(p\vee q\)

\(p \imply q\)

\(p\Leftrightarrow q\)

1

1

0

1

1

1

1

1

0

0

0

1

0

0

0

1

1

0

1

1

0

0

0

1

0

0

1

1

W koniunkcji zdania \(p\) i \(q\) nazywają się czynnikami.

W alternatywie zdania \(p\) i \(q\) nazywają się składnikami.

W implikacji \(p\Rightarrow q\) zdanie:

  • \(p\) nazywamy poprzednikiem

  • \(q\) – następnikiem.

Jeśli prawdziwa jest implikacja \(p\Rightarrow q\), to mówimy, że:

  • \(p\) jest warunkiem wystarczającym lub dostatecznym dla \(q\)

  • \(q\) jest warunkiem koniecznym dla \(p .\)

Dla danej implikacji \(p\Rightarrow q\) (którą nazywamy prostą) , implikację \(q\Rightarrow p\) nazywamy odwrotną .

Przykład 2.2

Ze zdań prostych „Ala ma kota.” i „Jest pochmurno.” możemy utworzyć zdania złożone:

  • „\(\Negation\) Ala ma kota.”, które możemy odczytać jako „Nieprawda, że Ala ma kota”, czyli w skrócie „Ala nie ma kota.”

  • „Ala ma kota. \(\wedge\) Jest pochmurno.”, czyli w skrócie zdanie „Ala ma kota i jest pochmurno.”

  • „Ala ma kota. \(\vee\) Jest pochmurno.”, czyli w skrócie zdanie „Ala ma kota lub jest pochmurno.”

  • „Ala ma kota. \(\imply\) Jest pochmurno.”, czyli w skrócie zdanie „Jeśli Ala ma kota to jest pochmurno.”, które możemy też zapisać „To, że Ala ma kota implikuje, że jest pochmurno.”

  • „Ala ma kota. \(\Leftrightarrow\) Jest pochmurno.”, czyli w skrócie zdanie „Ala ma kota wtedy i tylko wtedy, gdy jest pochmurno.” lub „To, że Ala ma kota jest równoważne temu, że jest pochmurno.”

Uwaga 2.1

Budując zdania złożone z wieloma spójnikami, ograniczamy liczbę nawiasów, przyjmując priorytety (od najsilniej wiążącego):

\[ \Negation \quad \gg \quad \wedge,\ \vee \quad \gg \quad \imply,\ \Leftrightarrow. \]

Przykład 2.3

Dzięki priorytetom zdanie

\[(((\Negation p) \wedge q)\imply p)\Leftrightarrow(p\vee q)\]

zapiszemy krócej jako

\[(\Negation p \wedge q\imply p)\Leftrightarrow p\vee q.\]

Podstawiając \(p=0,\ q=1\) otrzymamy kolejno:

\[\begin{split}\begin{aligned} (1\wedge 1\imply 0) & \Leftrightarrow 0\vee 1 \\ (1\imply 0) & \Leftrightarrow 1 \\ 0 & \Leftrightarrow 1 \\ & \;\; 0 \end{aligned}\end{split}\]

czyli dla tego wartościowania zdanie jest fałszywe.

2.3. Tautologie i prawa rachunku zdań#

Definicja 2.3

Prawami rachunku zdań (lub tautologiami ) nazywamy formułę zdaniową, która jest prawdziwa dla każdego wartościowania występujących w niej zdań.

Równoważnymi nazwiemy zdania logiczne \(\Phi\) i \(\Psi\), jeśli tautologią jest zdanie \(\Phi \Leftrightarrow \Psi .\)

Przykład 2.4

Prawo Dunsa Szkota \(\quad p \imply(\Negation p \imply q) \quad\) jest tautologią:

\(p \)

\( q\)

\(\Negation p \)

\(\Negation p \imply q\)

\(p \imply (\Negation p \imply q)\)

0

0

1

0

1

0

1

1

1

1

1

0

0

1

1

1

1

0

1

1

W ostatniej kolumnie występują same jedynki, więc formuła jest tautologią.

Prawo to mówi, że z dwóch zdań wzajemnie sprzecznych, \(p\) oraz \(\Negation p\), można wywnioskować dowolne zdanie \(q .\)

Twierdzenie 2.1

Dla dowolnych zdań logicznych \(p, q,r\) następujące zdania są tautologiami:

  1. \((p\wedge p) \Leftrightarrow p \quad\) oraz \(\quad p \Leftrightarrow (p\vee p ) \quad\) – prawa idempotentności

  2. \(\Negation(\Negation p) \Leftrightarrow p \quad\) – prawo podwójnej negacji

  3. \(p\vee (\Negation p)\quad\) – prawo wyłączonego środka

  4. \(\Negation(p\wedge(\Negation p)) \quad\) – prawo sprzeczności

  5. \(\Negation(p\wedge q) \Leftrightarrow (\Negation p) \vee (\Negation q) \quad\) oraz \(\quad \Negation(p\vee q)\Leftrightarrow (\Negation p) \wedge(\Negation q) \quad\) – prawa de Morgana

  6. \((p\Rightarrow q)\Leftrightarrow ((\Negation q)\Rightarrow (\Negation p)) \quad\) – prawo kontrapozycji

  7. \(\Negation(p\Rightarrow q)\Leftrightarrow (p\wedge (\Negation q)) \quad\) – prawo negacji implikacji

  8. \(p\wedge q \Leftrightarrow q \wedge p \quad\) oraz \(\quad p\vee q \Leftrightarrow q \vee p \quad\) – prawa przemienności

  9. \(p\wedge (q\wedge r) \Leftrightarrow (p\wedge q)\wedge r \quad\) oraz \(\quad p\vee (q\vee r) \Leftrightarrow (p\vee q)\vee r \quad\) – prawa łączności

  10. \(p\wedge (q\vee r) \Leftrightarrow (p\wedge q)\vee (p\wedge r) \quad\) – prawo rozdzielności koniunkcji względem alternatywy

  11. \(p\vee (q\wedge r) \Leftrightarrow (p\vee q)\wedge (p\vee r) \quad\) – prawo rozdzielności alternatywy względem koniunkcji

  12. \(((p\Rightarrow q)\wedge(q\Rightarrow r))\Rightarrow(p\Rightarrow r) \quad\) – prawo przechodniości implikacji

  13. \((p \Leftrightarrow q) \Leftrightarrow ((p \imply q) \wedge (q \imply p))\)

2.4. Postać normalna#

Definicja 2.4

Formułę zdaniową zapisaną w postaci

\[ p _1\vee p _2 \vee \cdots \vee p _k, \qquad \text{gdzie} \qquad p _i=p_{i1}\wedge p_{i2}\wedge \cdots \wedge p_{in_i},\]

a \(p_{ij}\) są zdaniami prostymi lub ich zaprzeczeniami, nazywamy postacią normalną alternatywno-koniunkcyjną (dysjunkcyjną).

Twierdzenie 2.2

Korzystając z praw rachunku zdań, każdą formułę zdaniową można sprowadzić do postaci normalnej alternatywno-koniunkcyjnej.

Ćwiczenie 2.1

Sprowadźmy formułę \( \Negation \big( (p \imply q) \land (r \Leftrightarrow \Negation s) \big) \) do postaci normalnej alternatywno-koniunkcyjnej.

2.5. Formy zdaniowe#

Narration

Niech \(X\) będzie zbiorem niepustym (o zbiorach będziemy jeszcze mówić – na razie zadowolimy się intuicyjnym rozumieniem pojęć zbioru, elementu zbioru, należenia do zbioru \(\in\)).

Definicja 2.5

Formą zdaniową lub funkcją zdaniową zmiennej \(x\in X\) nazywamy takie wyrażenie \(\varphi (x)\), które staje się zdaniem logicznym (prawdziwym lub fałszywym), gdy za \(x\) podstawiamy elementy ze zbioru \(X .\)

Zakresem zmienności formy zdaniowej \(\varphi(x)\) jest zbiór \(X .\)

Element \(x_0\in X\) spełnia formę zdaniową \(\varphi(x)\), jeśli \(\varphi(x_0)\) jest zdaniem prawdziwym.

Przykład 2.5

  1. Napis „\(x+2\)” nie jest formą zdaniową zmiennej \(x\in X\) (bez względu na to jaki to zbiór), gdyż po wstawieniu za \(x\) konkretnego elementu nie otrzymamy zdania logicznego.

  2. Zdanie logiczne „\(3 > 7\)” możemy uznać za formę zdaniową zmiennej \(x\in X\) (bez względu na to jaki to zbiór), choć explicite nie występuje w niej zmienna \(x .\) Oczywiście jest to zdanie logiczne fałszywe.

Definicja 2.6

Wykresem formy zdaniowej w zbiorze \(X\) nazywamy zbiór wszystkich elementów \(x\in X\) spełniających formę zdaniową \(\varphi (x)\) i oznaczmy przez

\[\PredicateGraph[X] \varphi = \Set{x\in X : \varphi(x)}\]

Przykład 2.6

Rozważmy formę zdaniową

\[ \varphi(x): \ x < 0 \imply x^2 \geq 4 \]

zmiennej \(x\in \rr .\) Możemy zastosować do niej prawa rachunku zdań:

\[\begin{split}\begin{aligned} x < 0 & \imply x^2 \geq 4 \\ (\Negation x < 0) & \vee x^2 \geq 4 \\ x \geq 0 & \vee |x| \geq 2 \\ x \geq 0 & \vee x \leq -2 \vee x \geq 2 \\ x \geq 0 & \vee x \leq -2. \end{aligned}\end{split}\]

Stąd \( \quad \PredicateGraph \varphi = \Set{x\in \rr : \varphi(x)} =(-\infty, -2]\cup [0, +\infty); \)

Narration

Niech \(X_1, X_2, \ldots, X_n\) będą zbiorami niepustymi.

Definicja 2.7

Formą zdaniową lub funkcją zdaniową zmiennych \(x_1\in X_1,\ \ldots,\ x_n\in X_n\) nazywamy takie wyrażenie \(\varphi (x_1, \ldots, x_n)\), które staje się zdaniem logicznym (prawdziwym lub fałszywym), gdy za \(x_1,\ldots,x_n\) podstawiamy odpowiednio elementy zbiorów \(X_1,\ldots, X_n .\)

Zakresem zmienności zmiennej \(x_i\) jest zbiór \(X_i .\)

Przykład 2.7

Forma zdaniowa

\[\varphi(x,y):\ x^2 + y^2 \leq 4 \Leftrightarrow x + y > 0\]

dwóch zmiennych \(x, y \in \rr\)

2.6. Kwantyfikatory#

Definicja 2.8

Kwantyfikator ogólny , oznaczany symbolem \(\forall\), oznacza „dla każdego …”:

Zdanie „\(\forall x \in X\; \varphi(x)\)” jest prawdziwe, jeśli wyrażenie \(\varphi(x)\) jest prawdziwe dla wszystkich \(x \in X\), czyli

\[ \{x \in X \colon \varphi(x)\} = X. \]

Definicja 2.9

Kwantyfikator egzystencjalny , oznaczany symbolem \(\exists\), oznacza „istnieje …”:

Zdanie „\(\exists x \in X\; \varphi(x)\)” jest prawdziwe, jeśli wyrażenie \(\varphi(x)\) jest prawdziwe dla przynajmniej jednego \(x \in X\), czyli

\[ \{x \in X \colon \varphi(x)\} \neq \emptyset. \]

Przykład 2.8

  1. Zdanie \(\quad \Forall {x \in \rr} x^2\geq 0 \quad\) jest prawdziwe – każda liczba rzeczywista podniesiona do kwadratu jest nieujemna.

  2. Zdanie \(\quad \Exists{x\in \rr} x^2 + 1 = 0 \quad\) jest fałszywe – wielomian \(x^2 + 1\) nie ma pierwiastków rzeczywistych.

Uwaga 2.2

Gdy zakres zmienności \(X\) formy zdaniowej zmiennej \(x\) jest określony, to:

\[\begin{split}\begin{aligned} \Forall{x} \varphi(x) & \quad \text{oznacza} \quad \forall x\in X \;\varphi(x) \\ \Exists{x} \varphi(x) & \quad \text{oznacza} \quad \exists x\in X \;\varphi(x). \end{aligned}\end{split}\]

Definicja 2.10

Prawem rachunku kwantyfikatorów nazywamy formułę zawierającą symbole kwantyfikatorów, która jest zdaniem prawdziwym dla dowolnej interpretacji symboli i form zdaniowych w niej występujących.

Twierdzenie 2.3

Dla dowolnego zbioru niepustego \(X\) i zmiennej \(x\in X\), następujące formuły są prawami rachunku kwantyfikatorów:

  1. \(\Forall{x} \varphi(x) \Rightarrow \exists x\; \varphi(x)\)

  2. \(\Negation (\Forall{x} \varphi(x)) \Leftrightarrow \exists x\; (\Negation \varphi(x))\)

    \(\Negation (\Exists{x} \varphi(x)) \Leftrightarrow \forall x\; (\Negation \varphi(x))\) – prawa de Morgana

  3. \(\Exists{x} (\varphi(x)\vee \psi (x)) \Leftrightarrow \Exists{x} \varphi(x) \vee \Exists{x} \psi(x)\)

    \(\Exists{x} (\varphi(x)\wedge \psi (x)) \Rightarrow \Exists{x} \varphi(x) \wedge \Exists{x} \psi(x)\) – prawa rozdzielności kwantyfikatora szczegółowego

  4. \(\Forall{x} (\varphi(x)\wedge \psi (x)) \Leftrightarrow \Forall{x} \varphi(x) \wedge \Forall{x} \psi(x)\)

    \(\Forall{x} \varphi(x) \vee \Forall{x} \psi(x) \Rightarrow \Forall{x} (\varphi(x)\vee \psi (x))\) – prawa rozdzielności kwantyfikatora ogólnego.

Twierdzenie 2.4

Dla dowolnych zbiorów niepustych \(X, Y\) i zmiennych \(x\in X\), \(y\in Y\), mamy następujące prawa przemienności kwantyfikatorów:

  1. \(\Exists{x} \Exists{y} \varphi(x,y) \Leftrightarrow \Exists{y} \Exists{x} \varphi(x,y)\)

  2. \(\Forall{x} \Forall{y} \varphi(x,y) \Leftrightarrow \Forall{y} \Forall{x}\varphi(x,y)\)

  3. \(\Exists{x} \Forall{y} \varphi(x,y) \Rightarrow \Forall{y} \Exists{x} \varphi(x,y)\).

Przykład 2.9

W punkcie 3. z Tw. 2.4 implikacja przeciwna nie musi być prawdziwa:

  • zdanie \(\quad \Forall {y\in \rr} \Exists{ x\in \rr} x > y \quad\) jest prawdziwe – dla danego \(y\) wystarczy wziąć \(x=y+1\)

  • zdanie \(\quad \Exists {x\in \rr} \Forall {y\in \rr} x > y \quad\) jest fałszywe – nie istnieje liczba rzeczywista większa od wszystkich innych.

2.7. Dowodzenie twierdzeń#

Narration

Typowe twierdzenie ma postać implikacji \( P \imply Q \), gdzie \(P\) to założenie, a \(Q\) – teza.

2.7.1. Dowód wprost (\(P \imply Q\))#

Narration

Dowód wprost to najbardziej naturalna metoda dowodzenia. Zakładamy w nim prawdziwość założenia \(P\) i używając logicznych kroków, algebry lub definicji, dochodzimy bezpośrednio do wniosku \(Q\).

Przykład 2.10

Stwierdzenie 2.5

Jeśli \(n\) jest liczbą nieparzystą, to \(n^2\) jest liczbą nieparzystą.

2.7.2. Dowód przez transpozycję (\(\Negation Q \imply \Negation P\))#

Narration

Dowód przez transpozycję polega na udowodnieniu zdania \(P \imply Q\) poprzez udowodnienie zdania do niego równoważnego: \(\Negation Q \imply \Negation P\).

Zamiast pokazywać, że

Jeśli zachodzi \(P\), to zachodzi \(Q\),

pokazujemy, że

Jeśli nie zachodzi \(Q\), to nie zachodzi \(P\).

Przykład 2.11

Stwierdzenie 2.6

Jeśli \(n^2\) jest liczbą nieparzystą, to \(n\) jest liczbą nieparzystą.

2.7.3. Dowód nie wprost#

Narration

Dowód nie wprost (reductio ad absurdum) polega na założeniu, że twierdzenie \(\alpha\), które chcemy udowodnić, jest fałszywe, a następnie wywiedzeniu z tego założenia nieprawdy. Owa nieprawda najczęściej przyjmuje w dowodzie postać sprzeczności \(\Negation \beta \wedge \beta\), dla pewnego zdania \(\beta\).

Formalnie, korzystamy z tego, że jeśli zdanie

\[ \emphmath{\Negation \alpha \imply (\Negation \beta \wedge \beta)} \]

jest prawdziwe, to koniecznie \(\Negation \alpha\) jest fałszywe, a więc \(\alpha\) jest prawdziwe.

Przykład 2.12

Lemat 2.7

Liczba \(\sqrt{2}\) jest niewymierna.

2.7.4. Dowód niekonstruktywny#

Narration

Dla niektórych twierdzeń nie da się znaleźć bezpośredniego dowodu wprost ani kontrapozycji – wtedy często stosuje się inne techniki, np. dowód przez wyczerpanie przypadków (wykorzystując prawo wyłączonego środka).

Przykład 2.13

Twierdzenie 2.8

Istnieją liczby niewymierne \(a\) i \(b\) takie, że \(a^b\) jest liczbą wymierną.