Logika i teoria mnogości/Wykład 2: Rachunek zdań: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Kubakozik (dyskusja | edycje)
Kubakozik (dyskusja | edycje)
Linia 292: Linia 292:
{{definicja|4.2||
{{definicja|4.2||


Wartościowaniem nazywamy funkcję która przypisuje zmiennym
Wartościowaniem nazywamy funkcję, która przypisuje zmiennym
zdaniowym elementy zbioru <math>\mathbb{B}</math>. Wartościowanie zmiennych
zdaniowym elementy zbioru <math>\mathbb{B}</math>. Wartościowanie zmiennych
można rozszerzyć na wartościowanie formuł interpretując spójniki
można rozszerzyć na wartościowanie formuł interpretując spójniki
Linia 303: Linia 303:
* formuła <math>q \Rightarrow p</math> jest wartościowana na '''0''' (będziemy to zapisywać jako <math>v(q \Rightarrow p)=0</math>),
* formuła <math>q \Rightarrow p</math> jest wartościowana na '''0''' (będziemy to zapisywać jako <math>v(q \Rightarrow p)=0</math>),


* formuła <math>r \Rightarrow (q \Rightarrow p)</math> jest wartościowana na '''1''' (czyli <math>v(r \Rightarrow (q \Rightarrow p))=1</math>)
* formuła <math>r \Rightarrow (q \Rightarrow p)</math> jest wartościowana na '''1''' (czyli <math>v(r \Rightarrow (q \Rightarrow p))=1</math>),


* formuła <math>\neg p \Rightarrow r</math> jest wartościowana na  '''0''' (czyli <math>v(\neg p \Rightarrow r)=0</math>)
* formuła <math>\neg p \Rightarrow r</math> jest wartościowana na  '''0''' (czyli <math>v(\neg p \Rightarrow r)=0</math>).


}}
}}
Linia 313: Linia 313:
Przy wartościowaniu <math>v</math> z przykładu 4.3 jakie wartości przyjmują następujące formuły
Przy wartościowaniu <math>v</math> z przykładu 4.3 jakie wartości przyjmują następujące formuły


# <math>p \Rightarrow (q \Rightarrow r)</math>
# <math>p \Rightarrow (q \Rightarrow r)</math>,
# <math>p \Rightarrow (p \Rightarrow q)</math>
# <math>p \Rightarrow (p \Rightarrow q)</math>,
# <math>\neg \neg q \Rightarrow p</math>
# <math>\neg \neg q \Rightarrow p</math>,
# <math>(\neg q\Rightarrow q) \Rightarrow (q \Rightarrow \neg q)</math>
# <math>(\neg q\Rightarrow q) \Rightarrow (q \Rightarrow \neg q)</math>.


<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none">
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none">
Linia 363: Linia 363:


Zauważmy, że istnieją formuły, które dla każdego wartościowania
Zauważmy, że istnieją formuły, które dla każdego wartościowania
zmiennych zdaniowych zawsze przyjmują wartość '''1''' (np. <math>p \Rightarrow p</math>).
zmiennych zdaniowych, zawsze przyjmują wartość '''1''' (np. <math>p \Rightarrow p</math>).
Takie formuły będziemy nazywać '''tautologiami'''.
Takie formuły będziemy nazywać '''tautologiami'''.


Linia 370: Linia 370:
Sprawdź czy poniższe formuły są tautologiami
Sprawdź czy poniższe formuły są tautologiami


# <math>(\phi \Rightarrow (\psi \Rightarrow \phi))</math>
# <math>(\phi \Rightarrow (\psi \Rightarrow \phi))</math>,
# <math>(\phi \Rightarrow (\nu \Rightarrow \psi) \Rightarrow \left((\phi \Rightarrow \nu \Rightarrow (\phi \Rightarrow \nu) \right)</math>
# <math>(\phi \Rightarrow (\nu \Rightarrow \psi) \Rightarrow \left((\phi \Rightarrow \nu \Rightarrow (\phi \Rightarrow \nu) \right)</math>,
# <math>(\neg \phi \Rightarrow \psi) \Rightarrow (\neg \phi \Rightarrow \neg \psi) \Rightarrow \phi</math>
# <math>(\neg \phi \Rightarrow \psi) \Rightarrow (\neg \phi \Rightarrow \neg \psi) \Rightarrow \phi</math>,
# <math>((\phi \Rightarrow q) \Rightarrow p) \Rightarrow p</math>
# <math>((\phi \Rightarrow q) \Rightarrow p) \Rightarrow p</math>.


<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Podpowiedź 1 </span><div class="mw-collapsible-content" style="display:none">  
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Podpowiedź 1 </span><div class="mw-collapsible-content" style="display:none">  


Spróbuj poszukać wartościowań dla których formuła przyjmuje wartość '''0'''
Spróbuj poszukać wartościowań, dla których formuła przyjmuje wartość '''0'''.
</div></div>
</div></div>
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Podpowiedź 2 </span><div class="mw-collapsible-content" style="display:none">  
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Podpowiedź 2 </span><div class="mw-collapsible-content" style="display:none">  
Linia 414: Linia 414:
}}
}}
Dowód powyższego twierdzenia jest przedstawiony na wykładzie <u>'''Logika dla informatyków'''</u>
Dowód powyższego twierdzenia jest przedstawiony na wykładzie <u>'''Logika dla informatyków'''</u>
Dzięki powyższemu twierdzeniu możemy w miarę łatwo stwierdzać czy dana formuła jest twierdzeniem klasycznego rachunku zdań sprawdzając czy jest tautologią, co wymaga rozważenia jedynie skończonej (chociaż często niemałej) liczby wartościowań. Co więcej, mamy też możliwość dowodzenia, że jakaś formuła nie jest twierdzeniem klasycznego rachunku zdań. Uzasadnienie, że nie da się jakiejś formuły udowonić z aksjomatów poprzez stosowanie reguły MP wydaje się zadaniem trudnym, znacznie łatwiej jest poszukać wartościowania, które
Dzięki powyższemu twierdzeniu możemy w miarę łatwo stwierdzać, czy dana formuła jest twierdzeniem klasycznego rachunku zdań, sprawdzając, czy jest tautologią, co wymaga rozważenia jedynie skończonej (chociaż często niemałej) liczby wartościowań. Co więcej, mamy też możliwość dowodzenia, że jakaś formuła nie jest twierdzeniem klasycznego rachunku zdań. Uzasadnienie, że nie da się jakiejś formuły udowonić z aksjomatów poprzez stosowanie reguły MP wydaje się zadaniem trudnym, znacznie łatwiej jest poszukać wartościowania, które
wartościuje formułę na ''0'' (znowu wystarczy sprawdzić jedynie skończenie wiele wartościowań).
wartościuje formułę na ''0'' (znowu wystarczy sprawdzić jedynie skończenie wiele wartościowań).


Linia 431: Linia 431:


<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none">
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none">
: Zaczniemy od pokazania, że jeśli formuły <math>\displaystyle \phi \Rightarrow \psi</math> oraz <math>\displaystyle \phi</math> są tautologiami, to formuła <math>\displaystyle \psi</math> jest tautologią. Dla dowodu nie wprost przypuśćmy, że nie jest. Wtedy istnieje wartościowanie, które oznaczymy przez <math>\displaystyle v</math>, dla którego <math>\displaystyle v(\psi)=0</math>. Ponieważ  <math>\displaystyle \phi</math> jest tautologią, to <math>\displaystyle v(\phi)=1</math>. Ponieważ jednak <math>\displaystyle v(\psi)=0</math> oraz <math>\displaystyle v(\phi)=1</math>, to z [[#tabela_4_1|tabeli interpretacji 4.1]] dostajemy <math>\displaystyle v(\phi \Rightarrow \psi)=0</math>.  Jest to sprzeczne z faktem, że <math>\displaystyle \phi \Rightarrow \psi</math> jest tautologią.
: Zaczniemy od pokazania, że jeśli formuły <math>\displaystyle \phi \Rightarrow \psi</math> oraz <math>\displaystyle \phi</math> są tautologiami, to formuła <math>\displaystyle \psi</math> jest tautologią. Dla dowodu niewprost przypuśćmy, że nie jest. Wtedy istnieje wartościowanie, które oznaczymy przez <math>\displaystyle v</math>, dla którego <math>\displaystyle v(\psi)=0</math>. Ponieważ  <math>\displaystyle \phi</math> jest tautologią, to <math>\displaystyle v(\phi)=1</math>. Ponieważ jednak <math>\displaystyle v(\psi)=0</math> oraz <math>\displaystyle v(\phi)=1</math>, to z [[#tabela_4_1|tabeli interpretacji 4.1]] dostajemy <math>\displaystyle v(\phi \Rightarrow \psi)=0</math>.  Jest to sprzeczne z faktem, że <math>\displaystyle \phi \Rightarrow \psi</math> jest tautologią.


:Udowodnimy teraz indukcyjnie, że każda formuła, która ma dowód w klasycznym rachunku zdań, jest tautologią klasycznego rachunku zdań. Indukcję poprowadzimy ze względu na długość dowodu (długością dowodu nazywamy ilość formuł w ciągu będącym dowodem).
:Udowodnimy teraz indukcyjnie, że każda formuła, która ma dowód w klasycznym rachunku zdań, jest tautologią klasycznego rachunku zdań. Indukcję poprowadzimy ze względu na długość dowodu (długością dowodu nazywamy ilość formuł w ciągu będącym dowodem).
Linia 486: Linia 486:


Zgodnie z intuicją koniunkcja <math>\phi \wedge\psi</math> jest wartościowana
Zgodnie z intuicją koniunkcja <math>\phi \wedge\psi</math> jest wartościowana
na '''1''' wtedy i tylko wtedy gdy zarówno <math>{\phi}</math> jak i <math>{\psi}</math> są
na '''1''' wtedy i tylko wtedy, gdy zarówno <math>{\phi}</math> jak i <math>{\psi}</math> są
wartościowane na '''1'''. Alternatywa <math>\phi \vee \psi</math> jest wartościowana
wartościowane na '''1'''. Alternatywa <math>\phi \vee \psi</math> jest wartościowana
na '''1''' jeśli przynajmniej jedna z formuł <math>\phi, \psi</math> jest
na '''1''', jeśli przynajmniej jedna z formuł <math>\phi, \psi</math> jest
wartościowana na '''1'''.
wartościowana na '''1'''.


Linia 494: Linia 494:


Formuły <math>{\phi}</math> oraz <math>{\psi}</math> są ''równoważne'' (oznaczamy ten fakt
Formuły <math>{\phi}</math> oraz <math>{\psi}</math> są ''równoważne'' (oznaczamy ten fakt
przez <math>\phi \equiv \psi</math> wtedy i tylko wtedy gdy dla każdego wartościowania formuła <math>{\phi}</math> przyjmuje tą samą wartość co formuła <math>{\psi}</math>.
przez <math>\phi \equiv \psi</math> wtedy i tylko wtedy, gdy dla każdego wartościowania formuła <math>{\phi}</math> przyjmuje tą samą wartość co formuła <math>{\psi}</math>.
}}
}}
{{cwiczenie|4.5||
{{cwiczenie|4.5||
Linia 505: Linia 505:
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none">   
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none">   


:1. Lewa strona jest fałszywa jedynie gdy <math>{\phi}</math> oraz <math>{\psi}</math> są wartościowane na '''0'''. Prawa strona jest fałszywa wtedy i tylko wtedy kiedy <math>\neg \phi</math> jest wartościowane na '''1''' oraz <math>{\psi}</math> jest wartościowane na '''0''' (to jedyna możliwość aby implikacja była fałszywa). Wobec tego prawa strona jest fałszywa wtedy i tylko wtedy kiedy <math>{\phi}</math> oraz <math>{\psi}</math> są wartościowane na '''0''', a więc jest równoważna lewej.
:1. Lewa strona jest fałszywa jedynie, gdy <math>{\phi}</math> oraz <math>{\psi}</math> są wartościowane na '''0'''. Prawa strona jest fałszywa wtedy i tylko wtedy, kiedy <math>\neg \phi</math> jest wartościowane na '''1''' oraz <math>{\psi}</math> jest wartościowane na '''0''' (to jedyna możliwość aby implikacja była fałszywa). Wobec tego prawa strona jest fałszywa wtedy i tylko wtedy, kiedy <math>{\phi}</math> oraz <math>{\psi}</math> są wartościowane na '''0''', a więc jest równoważna lewej.


:2. Lewa strona jest prawdziwa jedynie gdy <math>{\phi}</math> oraz <math>{\psi}</math> są wartościowane na '''1'''. Prawa strona jest prawdziwa wtedy i tylko wtedy kiedy <math>\neg (\phi \Rightarrow \neg \psi)</math> jest wartościowane na '''1''', więc wtedy gdy <math>(\phi \Rightarrow \neg \psi)</math> jest wartościowane na '''0'''. To z kolei zdarzyć się może jedynie gdy <math>{\phi}</math> jest wartościowane na '''1''' i <math>\neg \psi</math> na '''0''', a więc wtedy gdy zarówno <math>{\phi}</math> jak i <math>{\psi}</math> są wartościowane na '''1'''. Wobec tego obie formuły są równoważne.
:2. Lewa strona jest prawdziwa jedynie, gdy <math>{\phi}</math> oraz <math>{\psi}</math> są wartościowane na '''1'''. Prawa strona jest prawdziwa wtedy i tylko wtedy, kiedy <math>\neg (\phi \Rightarrow \neg \psi)</math> jest wartościowane na '''1''', więc wtedy gdy <math>(\phi \Rightarrow \neg \psi)</math> jest wartościowane na '''0'''. To z kolei zdarzyć się może jedynie, gdy <math>{\phi}</math> jest wartościowane na '''1''' i <math>\neg \psi</math> na '''0''', a więc wtedy, gdy zarówno <math>{\phi}</math> jak i <math>{\psi}</math> są wartościowane na '''1'''. Wobec tego obie formuły są równoważne.


Równie dobrym rozwiązaniem jest sprawdzenie wszystkich
Równie dobrym rozwiązaniem jest sprawdzenie wszystkich
Linia 514: Linia 514:


Z powyższego zadania wynika, że każdą formułę w której występują
Z powyższego zadania wynika, że każdą formułę w której występują
spójniki <math>\wedge</math> lub <math>\vee</math> można zastąpić równoważną formułą w
spójniki <math>\wedge</math> lub <math>\vee</math> można zastąpić równoważną formułą, w
której jedynymi spójnikami są <math>\Rightarrow</math> oraz <math>\neg</math>. Tak naprawdę
której jedynymi spójnikami są <math>\Rightarrow</math> oraz <math>\neg</math>. Tak naprawdę
więc nowe spójniki nie wprowadzają nic nowego poza użytecznymi
więc nowe spójniki nie wprowadzają nic nowego poza użytecznymi skrótami w zapisywaniu formuł.
skrótami w zapisywaniu formuł.
Aby się oswoić z własnościami spójników, prześledzimy szereg ich
Aby się oswoić z własnościami spójników prześledzimy szereg ich
praw.
praw.


Linia 525: Linia 524:
Udowodnij następujące równoważności
Udowodnij następujące równoważności


# <math>\neg \neg p \equiv p</math>
# <math>\neg \neg p \equiv p</math>,
# <math>p\Rightarrow q \equiv \neg p \vee q</math>
# <math>p\Rightarrow q \equiv \neg p \vee q</math>,
# <math>p \Rightarrow (q \Rightarrow r) \equiv (p \wedge q) \Rightarrow r</math>
# <math>p \Rightarrow (q \Rightarrow r) \equiv (p \wedge q) \Rightarrow r</math>,
# <math>\neg( p \wedge q) \equiv \neg p \vee \neg q</math>
# <math>\neg( p \wedge q) \equiv \neg p \vee \neg q</math>,
# <math>\neg( p \vee q) \equiv \neg p \wedge \neg q</math>
# <math>\neg( p \vee q) \equiv \neg p \wedge \neg q</math>,
# <math>p \wedge (q \vee r) \equiv (p \wedge q) \vee (p\wedge r)</math>
# <math>p \wedge (q \vee r) \equiv (p \wedge q) \vee (p\wedge r)</math>,
# <math>p \vee (q \wedge r) \equiv (p \vee q) \wedge (p\vee r)</math>
# <math>p \vee (q \wedge r) \equiv (p \vee q) \wedge (p\vee r)</math>,
# <math>(p \Rightarrow q) \Rightarrow (\neg p \Rightarrow \neg q)</math>
# <math>(p \Rightarrow q) \Rightarrow (\neg p \Rightarrow \neg q)</math>.
}}
}}
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none">  
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none">  
Linia 538: Linia 537:
Przedstawiamy przykładowe dowody kilku pierwszych równoważności.
Przedstawiamy przykładowe dowody kilku pierwszych równoważności.


:1. Jeśli <math>\textnormal{p}</math> jest wartościowane na '''1''', to zgodnie z tabelą dla negacji 4.1 <math>\neg p</math> jest wartościowane na '''0''' i <math>\neg \neg p</math> jest wartościowane na '''1'''. Jeśli <math>\textnormal{p}</math> jest wartościowane na '''0''' to <math>\neg p</math> jest wartościowane na '''1''' i <math>\neg \neg p</math> jest wartościowane na '''0'''. Formuły przyjmują te same wartości dla każdego wartościowania więc są równoważne.
:1. Jeśli <math>\textnormal{p}</math> jest wartościowane na '''1''', to zgodnie z tabelą dla negacji 4.1 <math>\neg p</math> jest wartościowane na '''0''' i <math>\neg \neg p</math> jest wartościowane na '''1'''. Jeśli <math>\textnormal{p}</math> jest wartościowane na '''0''' to, <math>\neg p</math> jest wartościowane na '''1''' i <math>\neg \neg p</math> jest wartościowane na '''0'''. Formuły przyjmują te same wartości dla każdego wartościowania, więc są równoważne.


:2. Jedyną możliwością aby lewa strona była fałszywa jest aby <math>\textnormal{p}</math> było wartościowane na '''1''', a <math>\textnormal{q}</math> na '''0'''. Prawa stona jest fałszywa jedynie gdy <math>\neg p</math> oraz <math>\textnormal{q}</math> są wartościowane na '''0'''. Czyli prawa strona jest fałszywa jedynie gdy <math>\textnormal{p}</math> jest wartościowane na '''1''' i <math>\textnormal{q}</math> na '''0'''. Formuły są więc równoważne.
:2. Jedyną możliwością, aby lewa strona była fałszywa jest, aby <math>\textnormal{p}</math> było wartościowane na '''1''', a <math>\textnormal{q}</math> na '''0'''. Prawa stona jest fałszywa jedynie, gdy <math>\neg p</math> oraz <math>\textnormal{q}</math> są wartościowane na '''0'''. Czyli prawa strona jest fałszywa, jedynie gdy <math>\textnormal{p}</math> jest wartościowane na '''1''' i <math>\textnormal{q}</math> na '''0'''. Formuły są więc równoważne.


:3. Analogicznie do poprzedniego punktu łatwo się przekonać, że jedynym wartościowaniem które falsyfikuje lewą stronę jest takie które wartościuje <math>\textnormal{p}</math> i <math>\textnormal{q}</math> na '''1''' oraz <math>\textnormal{r}</math> na '''0'''. Tą samą własność ma formuła po prawej stronie, więc formuły są równoważne.
:3. Analogicznie do poprzedniego punktu łatwo się przekonać, że jedynym wartościowaniem, które falsyfikuje lewą stronę, jest takie, które wartościuje <math>\textnormal{p}</math> i <math>\textnormal{q}</math> na '''1''' oraz <math>\textnormal{r}</math> na '''0'''. Tą samą własność ma formuła po prawej stronie, więc formuły są równoważne.


:4. Przykład rozwiązania przez rozważenie wszystkich możliwości
:4. Przykład rozwiązania przez rozważenie wszystkich możliwości
Linia 558: Linia 557:
|}
|}
</center>
</center>
:W pierwszych dwóch kolumnach są zapisane wartościowania zmiennych <math>\textnormal{p}</math> i <math>\textnormal{q}</math> a w pozostałych odpowiadające im wartościowania formuł zbudowanych z tych zmiennych. Ponieważ kolumna '''4''' i '''7''' są identyczne to formuły z zadania są równoważne.
:W pierwszych dwóch kolumnach są zapisane wartościowania zmiennych <math>\textnormal{p}</math> i <math>\textnormal{q}</math>, a w pozostałych odpowiadające im wartościowania formuł zbudowanych z tych zmiennych. Ponieważ kolumna '''4''' i '''7''' są identyczne to formuły z zadania są równoważne.


:5. W równoważności z poprzedniego punktu, podstawiąjąc za <math>\textnormal{p}</math> formułę <math>\neg p</math> oraz za <math>\textnormal{q}</math> formułę <math>\neg q</math> otrzymamy równoważność
:5. W równoważności z poprzedniego punktu, podstawiąjąc za <math>\textnormal{p}</math> formułę <math>\neg p</math> oraz za <math>\textnormal{q}</math> formułę <math>\neg q</math> otrzymamy równoważność
Linia 588: Linia 587:
Sprawdź które z następujących formuł są tautologiami
Sprawdź które z następujących formuł są tautologiami


# <math>( (p \vee r)\wedge( q \vee \neg r) )\Rightarrow (p \vee q)</math>
# <math>( (p \vee r)\wedge( q \vee \neg r) )\Rightarrow (p \vee q)</math>,
# <math>(p \vee q) \Rightarrow ( (p \vee r)\wedge( q \vee \neg r)) </math>
# <math>(p \vee q) \Rightarrow ( (p \vee r)\wedge( q \vee \neg r)) </math>,
# <math>( (p \wedge r)\vee( q \wedge \neg r) )\Rightarrow(p \wedge q)</math>
# <math>( (p \wedge r)\vee( q \wedge \neg r) )\Rightarrow(p \wedge q)</math>,
# <math>(p \wedge q) \Rightarrow ( (p \wedge r)\vee( q \wedge \neg r))</math>
# <math>(p \wedge q) \Rightarrow ( (p \wedge r)\vee( q \wedge \neg r))</math>.
}}
}}
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none">  
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none">  


:1. Spróbujmy znaleźć wartościowanie które falsyfikuje tą formułę. Skoro implikacja ma być fałszywa to formuła <math>(p \vee q)</math> (czyli następnik) musi być fałszywa. Tak jest tylko wtedy kiedy zarówno <math>\textnormal{p}</math> jak i <math>\textnormal{q}</math> są fałszywe. Zobaczmy co się wtedy dzieje z poprzednikim implikacji, czyli formułą
:1. Spróbujmy znaleźć wartościowanie, które falsyfikuje tą formułę. Skoro implikacja ma być fałszywa, to formuła <math>(p \vee q)</math> (czyli następnik) musi być fałszywa. Tak jest tylko wtedy, kiedy zarówno <math>\textnormal{p}</math> jak i <math>\textnormal{q}</math> są fałszywe. Zobaczmy co się wtedy dzieje z poprzednikim implikacji, czyli formułą


<center><math>
<center><math>
Linia 602: Linia 601:
</math></center>
</math></center>


:Jeśli teraz ustalimy <math>\textnormal{r}</math> na fałsz to <math>(p \vee q)</math> będzie fałszywe a jeśli ustalimy <math>r</math> na prawdę to <math>( q \vee \neg r)</math> będzie fałszywe. W obu tych przypadkach cały poprzednik jest fałszywy. Wynika stąd, że nie da się dobrać takiego wartościowania że poprzednik jest prawdziwy, a następnik fałszywy więc rozważana formuła jest tautologą.
:Jeśli teraz ustalimy <math>\textnormal{r}</math> na fałsz, to <math>(p \vee q)</math> będzie fałszywe, a jeśli ustalimy <math>r</math> na prawdę to <math>( q \vee \neg r)</math> będzie fałszywe. W obu tych przypadkach cały poprzednik jest fałszywy. Wynika stąd, że nie da się dobrać takiego wartościowania, że poprzednik jest prawdziwy, a następnik fałszywy więc, rozważana formuła jest tautologą.


:2 Formuła nie jest tautologią. Wystarczy wartościować <math>\textnormal{p}</math> i <math>\textnormal{r}</math> na prawdę i <math>\textnormal{q}</math> na fałsz.
:2 Formuła nie jest tautologią. Wystarczy wartościować <math>\textnormal{p}</math> i <math>\textnormal{r}</math> na prawdę i <math>\textnormal{q}</math> na fałsz.
Linia 630: Linia 629:
|}
|}
</center>
</center>
:W kolumnie odpowiadającej badanej formule są same '''1''', więc jest ona tautologią.
:W kolumnie odpowiadającej badanej formule, są same '''1''', więc jest ona tautologią.
</div></div>
</div></div>




Binarne spójniki logiczne interpretowaliśmy jako funkcje z <math>\mathbb{B}\times \mathbb{B} \rightarrow \mathbb{B}</math>. Nie trudno przekonać się że takich funkcji jest dokładnie '''16'''. Dla każdej takiej funkcji możemy dodać spójnik, który będzie interpretowany dokładnie jako ta funkcja. W poniższej tabeli zamieszczamy wszystkie takie funkcje wraz ze
Binarne spójniki logiczne interpretowaliśmy jako funkcje z <math>\mathbb{B}\times \mathbb{B} \rightarrow \mathbb{B}</math>. Nie trudno przekonać się, że takich funkcji jest dokładnie '''16'''. Dla każdej takiej funkcji możemy dodać spójnik, który będzie interpretowany dokładnie jako ta funkcja. W poniższej tabeli zamieszczamy wszystkie takie funkcje wraz ze
zwyczajowymi oznaczeniami odpowiadających im spójników.  
zwyczajowymi oznaczeniami odpowiadających im spójników.  


Linia 677: Linia 676:
|}
|}
</center>
</center>
Spójnik binarny <math>\circ</math> będziemy nazywać ''przemiennym'' jeśli zachodzi
Spójnik binarny <math>\circ</math> będziemy nazywać ''przemiennym'', jeśli zachodzi
następująca równoważność
następująca równoważność


Linia 685: Linia 684:




{{cwiczenie|4.8||
<span id="cwiczenie_4_8">{{cwiczenie|4.8||


Sprawdź następujące równoważności
Sprawdź następujące równoważności
Linia 696: Linia 695:
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none">
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none">
: Powyższe równoważności wynikają natychmiast z porównania odpowiednich wierszy w tabeli definicji spójników.
: Powyższe równoważności wynikają natychmiast z porównania odpowiednich wierszy w tabeli definicji spójników.
</div></div>
</div></div></span>


{{cwiczenie|4.9||
{{cwiczenie|4.9||
Linia 759: Linia 758:


Jeśli spójnik <math>\circ</math> jest łączny to dowolne dwie formuły, które są zbudowane
Jeśli spójnik <math>\circ</math> jest łączny to dowolne dwie formuły, które są zbudowane
jedynie ze spójników <math>\circ</math> są równoważne jeśli występuje w nich tyle samo spójników. Dlatego dla łącznych spójników binarnych pomija się często nawiasy.
jedynie ze spójników <math>\circ</math> są równoważne, jeśli występuje w nich tyle samo spójników. Dlatego dla łącznych spójników binarnych pomija się często nawiasy.


{{cwiczenie|4.10||
{{cwiczenie|4.10||
Linia 772: Linia 771:
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none">  
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none">  


:1. Formuła <math>(p \vee q) \vee r</math> jest fałszywa jedynie wtedy gdy <math>\textnormal{p}</math>,<math>\textnormal{q}</math> i <math>\textnormal{r}</math> są wartościowane na fałsz. Tak samo jest dla formuły <math>p \vee( q \vee r )</math> więc są one równoważne.
:1. Formuła <math>(p \vee q) \vee r</math> jest fałszywa jedynie wtedy, gdy <math>\textnormal{p}</math>,<math>\textnormal{q}</math> i <math>\textnormal{r}</math> są wartościowane na fałsz. Tak samo jest dla formuły <math>p \vee( q \vee r )</math>, więc są one równoważne.


:2. Formuła <math>(p \wedge q) \wedge r</math> jest prawdziwa jedynie wtedy gdy <math>\textnormal{p}</math>,<math>\textnormal{q}</math> i <math>\textnormal{r}</math> są wartościowane na prawdę. Tak samo jest dla formuły <math>p \wedge( q \wedge r )</math> więc są one równoważne.
:2. Formuła <math>(p \wedge q) \wedge r</math> jest prawdziwa jedynie wtedy, gdy <math>\textnormal{p}</math>,<math>\textnormal{q}</math> i <math>\textnormal{r}</math> są wartościowane na prawdę. Tak samo jest dla formuły <math>p \wedge( q \wedge r )</math>, więc są one równoważne.


:3. Zbadamy równoważność formuł <math>(p \Leftrightarrow q) \Leftrightarrow r</math> i <math> p \Leftrightarrow(q \Leftrightarrow r)</math> za pomocą tabeli
:3. Zbadamy równoważność formuł <math>(p \Leftrightarrow q) \Leftrightarrow r</math> i <math> p \Leftrightarrow(q \Leftrightarrow r)</math> za pomocą tabeli
Linia 798: Linia 797:
|}
|}
</center>
</center>
:Kolumna '''4''' i '''6''' są identyczne więc odpowiadające im formuły są równoważne. Spójnik <math>\Leftrightarrow</math> jest więc łączny.
:Kolumna '''4''' i '''6''' są identyczne, więc odpowiadające im formuły są równoważne. Spójnik <math>\Leftrightarrow</math> jest więc łączny.
 
:4.W  [[#cwiczenie_4_8|ćwiczeniu 4.8]] pokazaliśmy, że <math>\displaystyle x XOR y \equiv \neg (x \Leftrightarrow y)</math>. Łatwo zauważyć, że
 
<center><math>\displaystyle \neg a \Leftrightarrow b \equiv \neg (a\Leftrightarrow b) \equiv a \Leftrightarrow \neg b.
</math></center>


:4. ...
:Wynika to z faktu, że każda z powyższych formuł jest prawdziwa wtedy i tylko wtedy, gdy dokładnie jedna z zmiennych jest wartościowana na 1. Wobec tego mamy
 
<center><math>\displaystyle \aligned p XOR (q XOR r)\equiv \\
    \neg (p \Leftrightarrow \neg (q\Leftrightarrow r))\equiv \\
    \neg \neg (p \Leftrightarrow (q\Leftrightarrow r)) \equiv \\
    \neg \neg ((p \Leftrightarrow q)\Leftrightarrow r) \equiv \\
    \neg (\neg (p \Leftrightarrow q)\Leftrightarrow r) \equiv \\
      (p XOR q) XOR r.
\endaligned</math></center>
 
:Pokazaliśmy więc, że spójnik <math>\displaystyle XOR</math> jest łączny.
</div></div>
</div></div>
}}
}}
Linia 832: Linia 846:
</center>
</center>


{{cwiczenie|4.11||
{{uwaga|4.1||


Udowodnij, że różnych spójników <math>k</math>-argumentowych jest dokładnie
Różnych spójników <math>k</math>-argumentowych jest dokładnie
<math>2^{2^k}</math>.
<math>2^{2^k}</math>.
; Solution.
}}
}}



Wersja z 12:33, 16 wrz 2006

Wprowadzenie

Logika zdaniowa jest językiem, który pozwala opisywać zależności pomiędzy zdaniami. Przykładem może być zdanie:


Jeśli Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{n}} jest liczbą pierwszą to Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{n}} jest liczbą nieparzystą lub Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{n}} jest równe 2.

W powyższym zdaniu spójniki jeśli [..] to, lub mówią o związkach które zachodzą pomiędzy zdaniami:

  1. Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{n}} jest liczbą pierwszą,
  2. Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{n}} jest liczbą nieparzystą,
  3. Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{n}} jest równe 2.

Oznaczmy powyższe zdania przez p,q,r (w takiej właśnie kolejności). Używając symboli, które zwyczajowo odpowiadają potocznemu rozumieniu spójników jeśli [..] to, lub oraz powyższych oznaczeń, otrzymamy formułę


p(qr).


Jeśli powyższą formułę uznamy za prawdziwą, to może nam ona posłużyć do otrzymania nowych wniosków. Na przykład, jeśli o jakiejś liczbie Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{n}} będziemy wiedzieć, że jest liczbą pierwszą oraz że nie jest nieparzysta, to klasyczny rachunek zdań pozwoli nam formalnie wywnioskować fakt, że liczba Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{n}} jest równa 2. Podsumowując, jeśli uznamy za prawdziwe następujące zdania:

  1. p(qr),
  2. p,
  3. ¬q (przez ¬ oznaczamy negację)

to zgodnie z klasycznym rachunkiem zdań powinniśmy uznać za prawdziwe zdanie Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{r}} , czyli Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{n}} jest równe 2. Powyższy schemat wnioskowania można również opisać formułą


((p(qr))p(¬q))q.


W powyższej formule symbol odpowiada spójnikowi Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{i}} (oraz).

Dzięki rachunkowi zdań możemy precyzyjnie opisywać schematy wnioskowania i zdania złożone oraz oceniać ich prawdziwość.

Język logiki zdaniowej

Zaczniemy od definicji języka logiki zdaniowej. Składa się on z formuł zdefiniowanych następująco:

Definicja 2.1 [Formuła logiki zdaniowej]

  1. zmienna zdaniowa jest formułą (zmienne zdaniowe oznaczamy zwykle literami alfabetu rzymskiego np. p,q,r),
  2. jeśli ϕ oraz ψ są formułami to (ϕψ) jest formułą (spójnik nazywamy implikacją),
  3. jeśli ϕ jest formułą to ¬ϕ jest formułą (spójnik ¬ nazywamy negacją),
  4. nic innego nie jest formułą.

Powyższa definicja mówi, że formułami nazywamy te napisy, które dają się skonstruować ze zmiennych zdaniowych przy pomocy spójników oraz ¬.

Uwaga 2.2.
Zgodnie z powyższą definicją nie jest formułą napis pq, gdyż brakuje w nim nawiasów. Pomimo, iż poprawnie powinniśmy napisać (pq) możemy przyjąć że nie będzie konieczne pisanie nawiasów, jeśli nawiasy można jednoznacznie uzupełnić. Często przyjmuje się również prawostronne nawiasowanie dla implikacji, czyli formuła pqr jest domyślnie nawiasowana w następujący sposób (p(qr)).

Przykład 2.3 Poniższe napisy nie są formułami

  • pq,
  • ¬¬¬,
  • ten napis na pewno nie jest formułą,
  • (p¬q)).

Poniższe napisy są formułami

  • (p(rq)),
  • ¬¬¬q,
  • (p¬q).


Ćwiczenie 2.1

{{{3}}}
Uwaga 2.4.
Język logiki zdaniowej można równoważnie zdefiniować nie używając nawiasów za pomocą tzw. Odwrotnej Notacji Polskiej.

Aksjomatyka Klasycznego Rachunku Zdań

Podobnie jak nie wszystkie zdania języka naturalnego mają sens, nie wszystkie formuły opisują prawdziwe schematy wnioskowania lub zdania, które bylibyśmy skłonni uznać za prawdziwe. W tym rozdziale skupimy się na tym, które spośród wszystkich formuł zdaniowych wyróżnić jako prawdziwe.

Aksjomaty

Wielu matematyków zgadza się dzisiaj co do tego, że zdania pasujące do poniższych schematów powinny być uznane za prawdziwe:

Definicja 3.1 Aksjomaty klasycznego rachunku zdań

  1. (ϕ(ψϕ)) (formuła ta jest nazywana aksjomatem K),
  2. (ϕ(νψ)((ϕν)(ϕν)) (formuła ta jest nazywana aksjomatem S),
  3. (¬ϕψ)(¬ϕ¬ψ)ϕ (tzw. schemat dowodu niewprost)

Zdania pasujące do powyższych schematów to wszystkie zdania, które można otrzymać, podstawiając w miejsce ϕ,ν,ψ dowolne formuły.


Reguła dowodzenia

Przyglądnijmy się teraz jak posługujemy się implikacją we wnioskowaniu. W przykładzie z początku wykładu implikacja odpowiadała konstrukcji językowej:

jeśli ϕ to ψ.

W takim przypadku, jeśli akceptujemy powyższą implikacjię jako zdanie prawdziwe oraz jeśli zdanie ϕ jako prawdziwe, to powinniśmy także zaakceptować ψ. Przedstawiony sposób wnioskowania nosi nazwę reguły Modus Ponens (nazywana też regułą odrywania, często będziemy używać skrótu MP) i jest skrótowo notowany w poniższy sposób

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \frac{\phi \Rightarrow \psi, \phi} \psi}. }

Reguła modus ponens posłuży nam do uzupełniania zbioru aksjomatów o ich konsekwencje logiczne, które również uznamy za prawdziwe. Aby precyzyjnie zdefiniować zbiór wszystkich konsekwencji logicznych aksjomatów, definiujemy poniżej pojęcie dowodu.

Definicja 3.2

Ciąg formuł ϕ0,,ϕn jest dowodem formuły ψ wtedy i tylko wtedy, gdy:

  1. ϕn jest formułą ψ,
  2. dla każdego in formuła ϕi jest aksjomatem lub istnieją j,k<i takie, że formuła ϕi jest wynikiem zastosowania reguły modus ponens do formuł ϕj,ϕk.

W drugim punkcie powyższej definicji, jeśli formuła ϕi nie jest aksjomatem (a więc powstaje przez zastosowanie MP), to formuły ϕj,ϕk muszą pasować do przesłanek reguły MP, a więc ϕj musi być postaci ϕkϕi lub ϕk postaci ϕjϕi.

Definicja 3.3

Formułę nazywamy twierdzeniem klasycznego rachunku zdań jeśli istnieje jej dowód z aksjomatów klasycznego rachunku zdań 3.1

Przykład

Zastanówmy się na formułą postaci ϕϕ. Intuicja podpowiada, że taką formułę powinniśmy uznać za prawdziwą. Nie pasuje ona jednak do żadnego ze schematów aksjomatów 3.1. Formuła ta jest jednak twierdzeniem klasycznego rachunku zdań. Poniżej przedstawiamy jej dowód. Aby łatwiej dopasować formuły do schematów aksjomatów, użyliśmy nawiasów kwadratowych dla nawiasów, które pochodzą ze schematów.

  1. [ϕ[(qϕ)ϕ)][[ϕ(qϕ)][ϕϕ]] formuła ta jest aksjomatem zgodnym ze schematem S,
  2. ϕ[(qϕ)ϕ] aksjomat zgodny ze schematem K,
  3. (ϕ(qϕ))(ϕϕ) z modus ponens z formuł 1 i 2,
  4. ϕ[qϕ] aksjomat zgodny ze schematem K,
  5. (ϕϕ) z modus ponens z formuł 3 i 4.

Podsumowanie

Klasyczny rachunek zdań, czyli zbiór formuł które uznajemy za prawdziwe, zdefiniowaliśmy, wyróżniając pewne formuły jako aksjomaty 3.1 i dorzucając do nich wszystkie formuły, które dają się z nich wywnioskować przy pomocy reguły Modus Ponens. Warto zwrócić uwagę, że pomimo tego, iż w doborze aksjomatów i reguł wnioskowania kierowaliśmy się intuicyjnym pojęciem implikacji i konsekwencji, klasyczny rachunek zdań jest teorią syntaktyczną, zbiorem pewnych napisów o których znaczeniu nie musimy nic mówić.

Uwaga 3.4

Warto przyglądnąć się przyjętym aksjomatom i zastanowić się jakim zdaniom odpowiadają i czy rzeczywiście bylibyśmy skłonni uznać je za prawdziwe. Pomocne może być interpretowanie formuł postaci ϕ(νψ) jako „jeśli prawdziwe jest ϕ i prawdziwe jest ν to prawdziwe jest ψ”. W kolejnych rozdziałach przekonamy się, że taka interpretacja jest uzasadniona.

Matryca boolowska

W poprzednim rozdziale zdefiniowaliśmy klasyczny rachunek zdań jako teorię aksjomatyczną. Jeśli pozwolimy sobie na używanie skończonych zbiorów i funkcji, możemy równoważnie zdefiniować klasyczny rachunek zdań za pomocą tzw. matrycy boolowskiej.

Definicja 4.1

Dwuelementową matrycą boolowską nazywamy zbiór dwuelementowy 𝔹={0,1} w którym 1 jest wyróżnioną wartością prawdy, wraz z dwoma funkcjami odpowiadającymi za interpretacje spójników oraz ¬ zdefiniowanymi następująco

0 1
0 1 1
1 0 1
    
Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{p}} ¬p
0 1
1 0

(4.1)

Definicja 4.2

Wartościowaniem nazywamy funkcję, która przypisuje zmiennym zdaniowym elementy zbioru 𝔹. Wartościowanie zmiennych można rozszerzyć na wartościowanie formuł interpretując spójniki oraz ¬ jako funkcje zgodnie z tabelami 4.1.

Przykład 4.3

Niech v będzie wartościowaniem zmiennych takim, że v(p)=0,v(q)=1,v(r)=0. Wtedy

  • formuła qp jest wartościowana na 0 (będziemy to zapisywać jako v(qp)=0),
  • formuła r(qp) jest wartościowana na 1 (czyli v(r(qp))=1),
  • formuła ¬pr jest wartościowana na 0 (czyli v(¬pr)=0).

Ćwiczenie 4.1

{{{3}}}

Ćwiczenie 4.2

{{{3}}}

Twierdzenie o pełności

Zauważmy, że istnieją formuły, które dla każdego wartościowania zmiennych zdaniowych, zawsze przyjmują wartość 1 (np. pp). Takie formuły będziemy nazywać tautologiami.

Ćwiczenie 4.3

-

Nie przez przypadek pierwsze trzy formuły z poprzedniego zadania odpowiadają aksjomatom klasycznego rachunku zdań 3.1. Okazuje się że istnieje ścisły związek pomiędzy tautologiami a twierdzeniami klasycznego rachunku zdań. Mówi o tym ważny wynik Emila Posta

Emil Leon Post (1897-1954)
Zobacz biografię

Twierdzenie 4.4

Post 1921 Formuła jest twierdzeniem klasycznego rachunku zdań wtedy i tylko wtedy kiedy jest tautologią.

Dowód powyższego twierdzenia jest przedstawiony na wykładzie Logika dla informatyków Dzięki powyższemu twierdzeniu możemy w miarę łatwo stwierdzać, czy dana formuła jest twierdzeniem klasycznego rachunku zdań, sprawdzając, czy jest tautologią, co wymaga rozważenia jedynie skończonej (chociaż często niemałej) liczby wartościowań. Co więcej, mamy też możliwość dowodzenia, że jakaś formuła nie jest twierdzeniem klasycznego rachunku zdań. Uzasadnienie, że nie da się jakiejś formuły udowonić z aksjomatów poprzez stosowanie reguły MP wydaje się zadaniem trudnym, znacznie łatwiej jest poszukać wartościowania, które wartościuje formułę na 0 (znowu wystarczy sprawdzić jedynie skończenie wiele wartościowań).

Ćwiczenie 4.4

{{{3}}}

Inne spójniki

Do tej pory jedynymi rozważanymi spójnikami była implikacja i negacja. W analogiczny sposób do 4.1 możemy wprowadzać kolejne spójniki. Często używane spójniki to koniunkcja (spójnik i) oznaczana przez oraz alternatywa (spójnik lub) oznaczana przez , które będziemy interpretować w następujący sposób:

0 1
 0   0   0 
 1   0   1 
    
0 1
 0   0   1 
 1   1   1 

(4.2)


Zgodnie z intuicją koniunkcja ϕψ jest wartościowana na 1 wtedy i tylko wtedy, gdy zarówno ϕ jak i ψ są wartościowane na 1. Alternatywa ϕψ jest wartościowana na 1, jeśli przynajmniej jedna z formuł ϕ,ψ jest wartościowana na 1.

Definicja 4.5

Formuły ϕ oraz ψrównoważne (oznaczamy ten fakt przez ϕψ wtedy i tylko wtedy, gdy dla każdego wartościowania formuła ϕ przyjmuje tą samą wartość co formuła ψ.

Ćwiczenie 4.5

Udowodnij, że następujące formuły są równoważne

  1. ϕψ¬ϕψ
  2. ϕψ¬(ϕ¬ψ)
Rozwiązanie

Z powyższego zadania wynika, że każdą formułę w której występują spójniki lub można zastąpić równoważną formułą, w której jedynymi spójnikami są oraz ¬. Tak naprawdę więc nowe spójniki nie wprowadzają nic nowego poza użytecznymi skrótami w zapisywaniu formuł. Aby się oswoić z własnościami spójników, prześledzimy szereg ich praw.

Ćwiczenie 4.6

Udowodnij następujące równoważności

  1. ¬¬pp,
  2. pq¬pq,
  3. p(qr)(pq)r,
  4. ¬(pq)¬p¬q,
  5. ¬(pq)¬p¬q,
  6. p(qr)(pq)(pr),
  7. p(qr)(pq)(pr),
  8. (pq)(¬p¬q).
Rozwiązanie


Ćwiczenie 4.7

Sprawdź które z następujących formuł są tautologiami

  1. ((pr)(q¬r))(pq),
  2. (pq)((pr)(q¬r)),
  3. ((pr)(q¬r))(pq),
  4. (pq)((pr)(q¬r)).
Rozwiązanie


Binarne spójniki logiczne interpretowaliśmy jako funkcje z 𝔹×𝔹𝔹. Nie trudno przekonać się, że takich funkcji jest dokładnie 16. Dla każdej takiej funkcji możemy dodać spójnik, który będzie interpretowany dokładnie jako ta funkcja. W poniższej tabeli zamieszczamy wszystkie takie funkcje wraz ze zwyczajowymi oznaczeniami odpowiadających im spójników.

Definicja 4.6

W poniższej tabeli przedstawiamy wszystkie spójniki binarne.

Numer
funkcji
p=0
q=0
p=0
q=1
p=1
q=0
p=1
q=1
   
0 0 0 0 0   F
1 0 0 0 1  
2 0 0 1 0   ¬(pq)
3 0 0 1 1   Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{p}}
4 0 1 0 0   ¬(qp)
5 0 1 0 1   Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{q}}
6 0 1 1 0   XOR
7 0 1 1 1  
8 1 0 0 0   NOR
9 1 0 0 1  
10 1 0 1 0   ¬q
11 1 0 1 1   qp
12 1 1 0 0   ¬p
13 1 1 0 1   pq
14 1 1 1 0   NAND
15 1 1 1 1   T

Spójnik binarny będziemy nazywać przemiennym, jeśli zachodzi następująca równoważność

pqqp(4.3)


Ćwiczenie 4.8

Sprawdź następujące równoważności

  1. xNANDy¬(xy)
  2. xNORy¬(xy)
  3. xXORy¬(xy)
Rozwiązanie

Ćwiczenie 4.9

-
Spójnik binarny będziemy nazywać łącznym jeśli zachodzi

następująca równoważność

p(qr)(pq)r.(4.4)

Jeśli spójnik jest łączny to dowolne dwie formuły, które są zbudowane jedynie ze spójników są równoważne, jeśli występuje w nich tyle samo spójników. Dlatego dla łącznych spójników binarnych pomija się często nawiasy.

Ćwiczenie 4.10

-

Możemy również rozważać spójniki 3 i więcej argumentowe. Spójnik k-argumetowy powinien odpowiadać funkcji 𝔹k𝔹.

Przykład 4.7

W poniższej tabeli przedstawiamy przykład spójnika trójargumentowego

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{p}} Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{q}} Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{r}} (p,q,r)
 0   0   0   0 
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
Uwaga 4.1

Różnych spójników k-argumentowych jest dokładnie 22k.

Systemy funkcjonalnie pełne

Każda formuła odpowiada pewnej funkcji przekształcającej wartościowania zmiennych w niej występujących w element zbioru 𝔹. Na przykład formuła p(qr) wyznacza funkcję fp(qr) opisaną poniższą tabelą

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{p}} Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{q}} Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{r}} fp(qr)
 0   0   0  1
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 1

Mówimy, wtedy że formuła ϕ definuje funkcję fϕ.

Definicja 5.1

Skończony zbiór funkcji boolowskich Γ nazywamy funkcjonalnie pełnym, jeśli każdą funkcję boolowską da się zdefiniować przy pomocy formuły zbudowanej wyłącznie ze spójników odpowiadających funkcjom ze zbioru Γ.

Twierdzenie 5.2

Zbiór {,,¬} jest funkcjonalnie pełny.

Dowód

Dla dowolnej funkcji boolowskiej skonstruujemy formułę która ją definiuje. Niech Parser nie mógł rozpoznać (nieznana funkcja „\nNat”): {\displaystyle \displaystyle k\in \nNat} oraz f:𝔹k𝔹. W definiowanej formule będziemy używać zmiennych p1,,pk, a każdy element (w1,,wk)𝔹k będzie odpowiadał wartościowaniu vw takiemu, że v(pi)=wi.

Niech F będzie zbiorem tych argumentów, dla których funkcja f przyjmuje wartość 1. Dla dowolnego elementu xiF skonstruujemy formułę ϕi w taki sposób, aby była spełniona tylko dla wartościowania odpowiadającego elementowi xi. Niech xi=(w1,,wk), wtedy formułę ϕi definiujemy jako l1il2ilki gdzie

lji{pj,gdy wj=1;¬pj,gdy wj=0.

Łatwo sprawdzić, że formuła ϕi jest spełniona tylko dla wartościowania odpowiadającego elementowi xi.

Postępując w ten sposób dla każdego elementu zbioru F otrzymamy formuły ϕ1,ϕm. Biorąc

ϕ1ϕm

otrzymamy formułę która definiuje funkcję f, oznaczmy ją przez Φ. Jeśli dla wartościowania v formuła Φ jest spełniona to znaczy, że któraś z formuł ϕi jest spełniona. Oznacza to że wartościowanie v odpowiada pewnemu elementowi xi zbioru F, wobec tego funkcja f(xi)=1 co jest zgodne z tym, że spełniona jest Φ. W drugą stronę załóżmy że dla pewnego elementu a𝔹k mamy f(a)=1. Wobec tego aF. Wtedy a odpowiada pewnej formule ϕi, która jest spełniona dla wartościowania odpowiadającego a. Wobec tego również cała formuła Φ jest spełniona dla tego wartościowania (bo jeden z elementów alternatywy jest spełniony). Wynika stąd, że formuła Φ definiuje funkcję f. Na koniec zauważmy jeszcze że jedynymi spójnikami występującymi w formule Φ¬,,.

Twierdzenie 5.3

Zbiory {,¬}, {,¬} są funkcjonalnie pełne.

Dowód

Aby pokazać, że {,¬} jest funkcjonalnie pełny wystarczy pokazać, że przy pomocy spójników {,¬} da się zdefiniować . Wtedy funkcjonalną pełność otrzymamy z twierdzenia 5.2. W ćwiczeniu 4.2 pokazaliśmy, że

¬(xy)=¬x¬y.

Wobec tego

xy=¬(¬x¬y)

a więc zdefiniowaliśmy przy pomocy ¬,.

Analogicznie aby pokazać funkcjonalną pełność zbioru {,¬} zdefiniujemy przy pomocy spójników ,¬. Z ćwiczenia 4.2 mamy

¬(xy)=¬x¬y

a więc

xy=¬(¬x¬y).

Ćwiczenie 5.1

{{{3}}}

Twierdzenie 5.4

Zbiór {NOR} jest funkcjonalnie pełny.

Dowód

Pokażemy, że przy pomocy NOR można zdefiniować ¬ oraz . Wtedy z twierdzenia twierdzenia 5.3 otrzymamy tezę twierdzenia.

Łatwo sprawdzić, że

pNORp¬.

Wiemy, że

pNORq¬(pq).

Wobec tego mamy również

¬(pNORq)pq.

Możemy teraz wyrazić negację za pomocą NOR, otrzymamy wtedy

(pNORq)NOR(pNORq)pq.

Ćwiczenie 5.2

{{{3}}}

Ćwiczenie 5.3

{{{3}}}

Ćwiczenie 5.4

{{{3}}}

Ćwiczenie 5.5

{{{3}}}

Ćwiczenie 5.6

{{{3}}}

Ćwiczenie 5.7

-

Postacie normalne

Definicja 6.1

Literałem nazywamy formułę która jest zmienną zdaniową lub negacją zmiennej zdaniowej.

Zauważmy, że formuła konstruowana w dowodzie twierdzenia 5.2 jest w pewnej standartowej postaci - formuła jest alternatywą formuł które są koniunkcjami literałów. Przypomnijmy, że dla pq zbudujemy formułę

(pq)(¬pq)(¬p¬q).

Definicja 6.2

Formuła jest w dyzjunktywnej postaci normalnej (DNF) jeśli jest alternatywą formuł które są koniunkcjami literałów. Czyli wtedy gdy jest postaci

ϕ1ϕn

oraz każda z formuł ϕi jest koniunkcją literałów, czyli jest postaci

llilki

dla pewnych literałów lli,,lki

Twierdzenie 6.3

Dla każedej formuły istnieje równoważna formuła w DNF.

Dowód

Wynika bezpośrednio z konstrukcji w dowodzie twierdzenia 5.2.

Definicja 6.4

Formuła jest w koniunktywnej postaci normalnej (CNF) jeśli jest koniunkcją formuł które są alternatywami literałów.

Twierdzenie 6.5

Dla każdej formuły istnieje równoważna formuła w CNF.

Dowód

Niech Φ będzie dowolną formułą. Z twierdzenia ??Uzupelnic dnf| wynika że dla formuły ¬Φ istnieje dyzjunktywna postać normalna. Niech Ψ będzie taką formułą. Wtedy mamy

Φ¬Ψ.

Stosując wielokrotnie prawa de'Morgana dla formuły ¬Ψ otrzymamy formułę w koniunktywnej postaci normalnej. Indukcyjny dowód tego faktu pomijamy.

Ćwiczenie 6.1

{{{3}}}

Ćwiczenie 6.2

{{{3}}}

Spełnialność

Spośród wszystkich formuł wyróżnimy też zbiór formuł spełnialnych.

Definicja 6.6

Formuła jest spełnialna jeśli istenieje takie wartościowanie które wartościuje tą formułę na 1.

Formuły spełnialne są w ścisłym związku z tautologiami.

Twierdzenie 6.7

Formuła ϕ jest tautologią wtedy i tylko wtedy kiedy formuła ¬ϕ nie jest spełnialna.

Dowód

Przypuśćmy, że formuła ϕ jest tautologią. Wtedy dla każdego wartościowania Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{v}} mamy v(ϕ)=1. Stąd otrzymujemy że dla każdego wartościowania Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{v}} mamy v(¬ϕ)=0, a więc nie istnieje wartościwanie, które spełnia ¬ϕ, czyli formuła ta nie jest spełnialna.

Przypuśćmy, że formuła ¬ϕ nie jest spełnialna, czyli nie istnieje wartościowanie Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{v}} takie, że v(¬ϕ)=0. Wynika stąd, że dla każdego wartościowania mamy v(ϕ)=1, a więc ϕ jest tautologią.

Ćwiczenie 6.3

{{{3}}}

Formuły z powyższego zadania, poza tym że są w koniunktywnej postaci normalnej, to jeszcze występujące w nich klauzule mają dokładnie dwa literały. Problem spełnialności takich formuł jest nazywany w literaturze problemem 2SAT. Dla takich formuł istnieją szybkie algorytmy pozwalające ocenić ich spełnialność. Dopuszczanie klauzul o długości 3, bardzo komplikuje problem. Do dziś nie wiadomo czy dla takich formuł istnieją szybkie algorytmy oceniające spełnialność. Więcej na ten temat można się dowiedzieć z wykładu Teoria złożoności.

Logika intuicjonistyczna

Niektórzy logicy mają wątpliwości co do tego czy powinniśmy przyjmować schemat dowodu nie wprost jako aksjomat. Poddanie w wątpliwość tego aksjomatu doprowadziło do powstnia tzw. logiki intuicjonistycznej. Ważnym powodem zajmowania się logiką intuicjonistyczną są jej zadziwiające związki z teorią obliczeń (izomorfizm Curry-Howard).

Implikacyjny fragment logiki intuicjonistycznej, który będziemy oznaczać przez I to zbiór tych formuł które da się dowodnić przy pomocy reguły MP z aksjomatów S i K.

Definicja 7.1

Aksjomaty I

  1. (ϕ(ψϕ)) (formuła ta jest nazywana aksjomatem K)
  2. (ϕ(νψ)((ϕν)(ϕν)) (formuła ta jest nazywana aksjomatem S)

W pełnej wersji logiki intucjonistycznej pojawiają się również aksjomaty dla spójników , oraz ¬. Dla uproszczenia zajmiemy się jedynie formułami w których jedynym spójnikiem jest implikacja. Dodatkowym argumentem uzasadniającym takie podejście jest fakt, że każde twierdzenie logiki intuicjonistycznej w którym jedynymi spójnikami są da się udowodnić przy pomocy aksjomatów 7.1. Zobaczymy, że analogiczne twierdzenie nie jest prawdą dla logiki klasycznej. Logika intuicjonistyczna jest bardziej skomplikowana od logiki klasycznej. W szczególności nie istnieje skończona matryca za pomocą której moglibyśmy rozstrzygać czy dana formuła jest twierdzeniem logiki intuicjonistycznej.

Twierdzenie 7.2

Każde twierdzenie logiki intuicjonistycznej jest twierdzeniem klasycznego rachunku zdań.

Dowód

Każdy dowód twierdzenia logiki inuicjonistycznej jest równocześnie dowodem twierdzenia klasycznego rachunku zdań.

Implikacja w drugą stronę nie zachodzi. Istnieją formuły zbudowane jedynie przy pomocy , które nie należą do I pomimo że są twierdzeniami klasycznego rachunku zdań. Przykładem takiej formuły jest prawo Pierce'a:

((pq)p)p

W zadaniu 4.1 pokazaliśmy, że formuła ta jest w istocie tautologią więc w myśl twierdzenia Posta 4.4 również twierdeniem klasycznego rachunku zdań.
W poniższych zadaniach wykażemy poniższe twierdzenie

Twierdzenie 7.3

Prawo Pierce'a nie jest twierdzeniem intuicjonizmu.

Zauważmy, że oznacza to również że każdy dowód prawa Pierce'a w logice klasycznej korzysta z aksjomatu 3 3.1, a więc wymaga używania spójnika ¬.
Aby udowodnić twierdzenie 7.3 zdefiniujemy jeszcze jedną logikę którą nazwiemy I3. Podobnie do 4.1 zdefiniujemy matrycę tym razem 3-elementową.

Definicja 7.4

Matrycą 𝕄3 będziemy nazywać zbiór trójelementowy M3={0,1,2} w którym 2 jest wyróżnioną wartością prawdy, wraz z funkcją odpowiadają za interpretacje zdefiniowaną następująco

0 1 2
 0   2   2   2 
 1   0   2   2 
 2   0   1   2 

W przypadku rozważanej matrycy 𝕄3 wartościowanie będzie funkcją przypisującą zmiennym zdaniowym elementy zbioru M3. Podobnie jak dla logiki klasycznej wartościowanie zmiennych rozszzerzamy na wartościowanie formuł zgodnie z tabelą 7.4.

Przykład 7.5

Dla wartościowania v takiego, że v(p)=2,v(q)=1,v(r)=0 formuła

(pq)r

przyjmuje wartość 0.

Definicja 7.6

Tautologią logiki I3 będziemy nazywać każdą formułę implikacyjną, która przy każdym wartościowaniu zmiennych w M3 przyjmuje wartość 2.

Ćwiczenie 7.1

{{{3}}}

Ćwiczenie 7.2

{{{3}}}

Ćwiczenie 7.3

{{{3}}}

Ćwiczenie 7.4

{{{3}}}

Podsumujmy wyniki powyższych zadań. Wskazaliśmy logikę I3 taką, że każda twierdzenie intuicjonizmu jest tautologią I3. Skoro prawo Pierce'a nie jest tautologią I3 to nie jest też twierdzeniem I.

UWAGA! W dalszej części będziemy się posługiwać wyłącznie logiką klasyczną.