Logika dla informatyków/Pełność rachunku zdań
Pełność rachunku zdań
Zagadnienie pełności systemów formalnych jest jednym z centralnych problemów logiki. O ile poprawność systemu formalnego (zwana też adekwatnością) oznacza, że wszystkie twierdzenia systemu są prawdziwe względem przyjętej semantyki, to pełność jest własnością mówiącą o tym, że każda formuła prawdziwa daje sięudowodnić w systemie. Jest wiele różnych dowodów twierdzenia o pełności dla rachunku zdań. My podamy elegancki dowód pochodzący od L. Kalmára. Dlaudowodnienia nieco silniejszej wersji twierdzenia o pełności (Twierdzenie 6.7) wykorzystamy silne i bardzo pożyteczne Twierdzenie 6.5 zwane twierdzeniem o zwartości.
Lemat 6.1 (Kalmár)
Niech Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} będzie formułą zbudowaną przy użyciu oraz , o zmiennych zawartych w zbiorze i niech Parser nie mógł rozpoznać (błąd składni): {\displaystyle \varrho:\mbox{\small ZZ}\rightarrow\{0,1\} } będzie dowolnym wartościowaniem. Dla definiujemy formuły:
Niech Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi'} będzie formułą identyczną z Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} , jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \models\var\varphi[\varrho]} , w przeciwnym razie niech Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi'} oznacza formułę Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \neg\var\varphi} . Wówczas
Dowód
\begin{lemat} Dla dowolnego zbioru formuł i dla dowolnych formuł Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} i , jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta,\var\varphi\vdash_H \psi} oraz Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta,\neg\var\varphi\vdash_H \psi} , to . \end{lemat}
Dowód
Lemat Kalm\'ara odgrywa kluczową rolę w dowodzie poniższego twierdzenia o pełności.
Twierdzenie
Jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest tautologią zbudowaną przyużyciu Parser nie mógł rozpoznać (nieznana funkcja „\arr”): {\displaystyle \arr} oraz , to Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \vdash_H\var\varphi} .
{{dowod|eq-zda-3a|
Załóżmy, że Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest tautologią. Niech będą wszystkimi zmiennymi występującymi w Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} . Dla dowolnej liczby nazwiemy -{\em zbiorem} każdy zbiór formuł , gdzie jest albo lub . Zauważmy, że -zbiór jest pusty.
Udowodnimy następującą własność: dla każdego spełniającego , \mbox{jeśli jest -zbiorem, to Parser nie mógł rozpoznać (nieznana funkcja „\se”): {\displaystyle \se_H\var\varphi} }. \end{equation}
Zauważmy, że biorąc w (#eq-zda-3a) dostajemy tezę twierdzenia. Dowód (#eq-zda-3a) przeprowadzimy przez indukcję ze względu na w zbiorze uporządkowanym relacją . Dla własność (#eq-zda-3a) wynika z Lematu #le-zda-2 oraz z faktu, że Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest tautologią. Załóżmy, że (#eq-zda-3a) zachodzi dla pewnego i niech będzie dowolnym -zbiorem. Z założenia indukcyjnego dostajemy \[\Delta,q_{m}\vdash_H\var\varphi\] oraz \[\Delta,\neg q_{m}\vdash_H\var\varphi.\] Zatem na mocy Lematu #le-zda-2aa dostajemy \[\se_H\var\varphi.\] \Rightarrow kończy dowód (#eq-zda-3a) i tym samym dowód twierdzenia o pełności. }}
Korzystając z Lematu #le-zda-2a natychmiast dostajemy twierdzenie o pełności dla systemu ze wszystkimi spójnikami zdaniowymi.
Twierdzenie
Jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest tautologią, to Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \vdash_{H^+}\var\varphi} .
Dowód
Elementy teorii modeli
Powiemy, że zbiór formuł jest {\em spełnialny} gdy istnieje wartościowanie Parser nie mógł rozpoznać (błąd składni): {\displaystyle \varrho:\\mbox{\small ZZ}\arr \{0,1\}} spełniające wszystkie formuły ze zbioru .
Twierdzenie
Zbiór formuł jest spełnialny \wtw, gdy każdy skończony podzbiór zbioru jest spełnialny.
<span id="
Powiemy, że zbiór jest {\em skończenie spełnialny}, gdy każdy skończony podzbiór zbioru jest spełnialny.
Szkic dowodu twierdzenia o zwartości wygląda następująco. Bez zmniejszenia ogólności możemy przyjąć, że wszystkie rozważane formuły są zbudowane przyużyciu jedynie spójników Parser nie mógł rozpoznać (nieznana funkcja „\arr”): {\displaystyle \arr} oraz . Używając lematu Kuratowskiego-Zorna pokazujemy najpierw, że istnieje maksymalny skończenie spełnialny zbiór formuł zawierający . Oczywiście mamy
\bot\not\in\Gamma.
\end{equation}
Ponadto, dla dowolnej formuły Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} mamy \textrm{jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi\not\in\Gamma} , to Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \neg\var\varphi\in\Gamma} .} \end{equation} Istotnie, jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} oraz Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \neg\var\varphi} nie należą do , to istnieją skończone zbiory , takie że Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle X\cup\{\var\varphi\}} oraz Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle Y\cup\{\neg\var\varphi\}} nie są spełnialne. Wynika stąd, że zbiory wartościowań spełniających oraz są rozłączne. Tak więc nie jest spełnialny, a otrzymana sprzeczność dowodzi (#eq-zda-2a).
Dla dowolnych formuł Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi,\psi}
,
(\var\varphi\arr\psi)\in\Gamma \hspace{.5cm} \mbox{ \wtw, gdy }
\hspace{.5cm} \var\varphi\not\in\Gamma \mbox{ lub } \psi\in\Gamma.
\end{equation}
Jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle (\var\varphi\arr\psi)}
oraz Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi}
należą do oraz
, to na mocy (#eq-zda-2a).
Wówczas sprzeczny zbiór Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \{(\var\varphi\arr\psi),\var\varphi,\neg\psi\}}
jest
podzbiorem co dowodzi \rightarrowlikacji z lewej do prawej
w (#eq-zda-2). Na odwrót, jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle (\var\varphi\arr\psi)\not\in\Gamma}
, to na
mocy (#eq-zda-2a) mamy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \neg(\var\varphi\arr\psi)\in\Gamma}
. Tak więc
zbiory </math>\{\neg(\var\varphi\arr\psi), \psi\}\{\neg(\var\varphi\arr\psi),
\neg\var\varphi\}</math> są sprzeczne, co kończy dowód (#eq-zda-2).
Teraz możemy zdefiniować wartościowanie Parser nie mógł rozpoznać (błąd składni): {\displaystyle \varrho:\\mbox{\small ZZ}\arr \{0,1\}} tak, że dla dowolnej zmiennej Parser nie mógł rozpoznać (błąd składni): {\displaystyle p\in \\mbox{\small ZZ}} warunki i są równoważne. Z następującej własności wynika, że spełnia wszystkie formuły ze zbioru , a zatem jest zbiorem spełnialnym.
Dla dowolnej formuły Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} , \models\var\varphi[\varrho] \hspace{.5cm} \mbox{ \wtw, gdy } \hspace{.5cm} \var\varphi\in \Gamma. \end{equation} Dowód (#eq-zda-3) przeprowadzamy przez indukcję ze względu na budowę formuły Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} . Własności (#eq-zda-1)używamy w przypadku gdy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest , a własności (#eq-zda-2) w przypadku, gdy zewnętrznym spójnikiem Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest Parser nie mógł rozpoznać (nieznana funkcja „\arr”): {\displaystyle \arr} . " style="font-variant:small-caps">Dowód eq-zda-3
Przykład
Podamy przykład zastosowania twierdzenia o zwartości. Pokażemy, że jeśli nieskończonej mapy (o przeliczalnej liczbie krajów) nie da się pokolorować przy pomocy kolorów, to istnieje skończony fragment tej mapy, którego też nie da się pokolorować przy pomocy kolorów. Niech będzie zbiorem krajów tej mapy. Rozważmy zmienne zdaniowe , gdzie oraz . Wartościowania będą odpowiadać kolorowaniom mapy. Intencją jest to aby wartościowanie przypisywało zmiennej wartość \wtw, gdy kraj ma na mapie kolor . Poniższe formuły przedstawiają podstawowe warunki dotyczące kolorowania.
Każdy kraj ma jakiś kolor: dla każdego wyraża to formuła \[p_{i,0}\vee p_{i,1}\vee\ldots\vee p_{i,k-1}.\]
Każdy kraj ma co najwyżej jeden kolor: dla każdego , oraz każdych , jeśli to mamy formułę \[\neg(p_{i,j}\wedge p_{i,j'}).\]
Każde dwa sąsiadujące kraje mają różne kolory: dla takich, że oraz sąsiadują oraz dla każdego rozważmy formułę \[\neg(p_{i,j}\wedge p_{i',j}).\]
Niech będzie zbiorem wszystkich formuł przedstawionych wyżej. Łatwo jest zauważyć, że jest spełnialny \wtw, gdy mapę da się pokolorować kolorami. Zatem jeśli mapy nie da się pokolorować kolorami to nie jest spełnialny i z twierdzenia o zwartości wynika, że istnieje skończony podzbiór , który nie jest spełnialny. Wówczas fragmentu mapy zawierającego kraje wymienione w indeksach zmiennych występujących w formułach z nie da się pokolorować przy pomocy kolorów.
Jako wniosek z twierdzenia o zwartości otrzymujemy następujące wzmocnienie twierdzenia o pełności (por. Twierdzenie #tw-zda-3a).
Twierdzenie
Dla dowolnego zbioru formuł oraz dowolnej formuły Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} , jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest semantyczną konsekwencją zbioru , to Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle e_{H^+}\var\varphi} .
<span id="
Jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta\models\var\varphi} to zbiór Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta\cup\{\neg\var\varphi\}} nie jest spełnialny. Na mocy twierdzenia o zwartości istnieje skończony podzbiór taki, że Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta_0\cup\{\neg\var\varphi\}} nie jest spełnialny. Zatem Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta_0\models\var\varphi} . Tak więc jeśli to oczywiście formuła Parser nie mógł rozpoznać (nieznana funkcja „\arr”): {\displaystyle \psi_1\arr(\psi_2\arr\cdots\arr(\psi_n\arr\var\varphi)\cdots)} jest tautologią. Z twierdzenia o pełności wnioskujemy, że </math>\vdash_{H^+} \psi_1\arr(\psi_2\arr\cdots\arr(\psi_n\arr\var\varphi)\cdots)</math>. Stosując razy (MP) do powyższej formuły dostajemy \[\Delta_0\vdash_{H^+}\var\varphi.\] Tak więc Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle e_{H^+}\var\varphi} , co kończy dowód twierdzenia. " style="font-variant:small-caps">Dowód
Powiemy, że zbiór formuł jest {\em sprzeczny}, gdy . Zbiór, który nie jest sprzeczny nazwiemy {\em niesprzecznym}. \Leftrightarrow nieco inne sformułowanie ,,silnego twierdzenia o pełności:
Twierdzenie
Dowód
A \leftrightarrow twierdzenie o pełności dla rachunku sekwentów i naturalnej dedukcji.
Wniosek
Jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta\models\var\varphi} to Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle e_G\var\varphi} oraz Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle e_{N}\var\varphi} .
Dowód
\subsection*{Ćwiczenia}\begin{small}
- Dowieść, że ,,silne twierdzenie o pełności
(Twierdzenie #tw-zda-4) pociąga twierdzenie o zwartości.
- <span id="wtomigraj} Udowodnić, że jeśli w systemie Parser nie mógł rozpoznać (błąd składni): {\displaystyle \vdash_{H+" \> }
zamienimy aksjomaty (B1--B4) na aksjomaty
- [(D1)] Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi\to\var\varphi\vee \psi} ;
- [(D2)] Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \psi\to\var\varphi\vee \psi} ;
- [(D3)] </math>(\var\varphi\to \vartheta)\wedge(\psi\to \vartheta)
\to(\var\varphi\vee \psi \to \vartheta)</math>;
- [(C1)] Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi\wedge \psi\to \var\varphi} ;
- [(C2)] Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi\wedge \psi\to \psi} ;
- [(C3)] </math>(\vartheta\to \var\varphi)\wedge(\vartheta\to \psi)\to
(\vartheta\to\var\varphi\wedge \psi)</math>.
to twierdzenie o pełności pozostanie prawdziwe.
\item Dany jest nieskończony zbiór chłopców, z których każdy ma skończoną liczbę narzeczonych. Ponadto dla każdego , dowolnych chłopców ma co najmniej narzeczonych. Dowieść, że każdy chłopiec może się ożenić z jedną ze swoich narzeczonych bez popełnienia bigamii.