Logika dla informatyków/Pełność rachunku zdań: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Urzyczyn (dyskusja | edycje)
mNie podano opisu zmian
m Zastępowanie tekstu – „<math> ” na „<math>”
 
(Nie pokazano 3 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 7: Linia 7:
{{lemat|6.1 (Kalm&aacute;r)||
{{lemat|6.1 (Kalm&aacute;r)||
Niech <math>\var\varphi</math> będzie formułą zbudowaną przy użyciu <math>\rightarrow</math> oraz <math>\bot</math>, o zmiennych zawartych w zbiorze   
Niech <math>\var\varphi</math> będzie formułą zbudowaną przy użyciu <math>\rightarrow</math> oraz <math>\bot</math>, o zmiennych zawartych w zbiorze   
<math>\{q_1,\ldots q_n\}</math> i niech <math>\varrho:\mbox{\small ZZ}\rightarrow\{0,1\} </math> będzie dowolnym wartościowaniem. Dla <math>i=1,\ldots,n</math> definiujemy formuły:  
<math>\{q_1,\ldots q_n\}</math> i niech <math>\varrho:\mbox{\small ZZ}\rightarrow\{0,1\}</math> będzie dowolnym wartościowaniem. Dla <math>i=1,\ldots,n</math> definiujemy formuły:  


<center><math>q'_i = \begin{cases}q_i & \textrm{\ jeśli } \varrho(q_i)=1 \\\neg q_i & \textrm{\ jeśli }  \varrho(q_i)=0\end{cases}</math></center>
<center><math>q'_i = \begin{cases}q_i & \text{\ jeśli } \varrho(q_i)=1 \\\neg q_i & \text{\ jeśli }  \varrho(q_i)=0\end{cases}</math></center>
   
   
Niech <math>\var\varphi'</math> będzie formułą identyczną z <math>\var\varphi</math>, jeśli  
Niech <math>\var\varphi'</math> będzie formułą identyczną z <math>\var\varphi</math>, jeśli  
Linia 15: Linia 15:
<math>\var\varphi'</math> oznacza formułę <math>\neg\var\varphi</math>.  
<math>\var\varphi'</math> oznacza formułę <math>\neg\var\varphi</math>.  
Wówczas  
Wówczas  
<math> \{q_1',\ldots,q_n'\}\vdash_H\psi</math>  
<math>\{q_1',\ldots,q_n'\}\vdash_H\psi</math>  
}}  
}}  


Linia 24: Linia 24:
Jeśli <math>\var\varphi</math> jest stałą <math>\bot</math>, to <math>\var\varphi'=\neg\bot</math> i oczywiście dla dowolnego wyboru <math>q_1',\ldots,q_n'</math> zachodzi  
Jeśli <math>\var\varphi</math> jest stałą <math>\bot</math>, to <math>\var\varphi'=\neg\bot</math> i oczywiście dla dowolnego wyboru <math>q_1',\ldots,q_n'</math> zachodzi  


<math>\{q'_1,\ldots,q'_n\}\vdash_H\neg\bot.</math>
<math>\{q'_1,\ldots,q'_n\}\vdash_H\neg\bot</math>.


Załóżmy teraz, że <math>\var\varphi</math> jest postaci <math>\psi\arr\vartheta</math> i rozważmy następujące przypadki.   
Załóżmy teraz, że <math>\var\varphi</math> jest postaci <math>\psi\arr\vartheta</math> i rozważmy następujące przypadki.   
Linia 34: Linia 34:
twierdzenia o dedukcji
twierdzenia o dedukcji


<math>\{q'_1,\ldots,q'_n\}\vdash_H\psi\rightarrow\varaphi.</math>
<math>\{q'_1,\ldots,q'_n\}\vdash_H\psi\rightarrow\varaphi</math>.


'''(B)''' <math>\models\vartheta[\varrho]</math>.
'''(B)''' <math>\models\vartheta[\varrho]</math>.
Linia 41: Linia 41:
dedukcji dostajemy  
dedukcji dostajemy  


<math>\{q'_1,\ldots,q'_n\}\vdash_H\psi\rightarrow\varaphi.</math>
<math>\{q'_1,\ldots,q'_n\}\vdash_H\psi\rightarrow\varaphi</math>.


'''(C)''' <math>\models\psi[\varrho]</math> oraz <math>\not\models\vartheta[\varrho]</math>.
'''(C)''' <math>\models\psi[\varrho]</math> oraz <math>\not\models\vartheta[\varrho]</math>.
Linia 53: Linia 53:
Z Lematu [[#le-zda-1|5.4]](1) mamy  
Z Lematu [[#le-zda-1|5.4]](1) mamy  


<math>\{q'_1,\ldots,q_n'\}\vdash_H </math>  
<math>\{q'_1,\ldots,q_n'\}\vdash_H</math>  


Stosując teraz dwukrotnie (MP) dostajemy  
Stosując teraz dwukrotnie (MP) dostajemy  
Linia 94: Linia 94:
oraz  
oraz  


<math>\Delta,\neg q_{m}\vdash_H\var\varphi.</math>  
<math>\Delta,\neg q_{m}\vdash_H\var\varphi</math>.


Zatem na mocy Lematu [[#le-zda-2aa|6.2]] dostajemy  
Zatem na mocy Lematu [[#le-zda-2aa|6.2]] dostajemy  
<math>\vdash_H\var\varphi.</math>  
<math>\vdash_H\var\varphi</math>.
To kończy dowód ([[#eq-zda-3a|2]]) i tym samym dowód twierdzenia o pełności.  
To kończy dowód ([[#eq-zda-3a|2]]) i tym samym dowód twierdzenia o pełności.  
}}  
}}  
Linia 116: Linia 116:
===Elementy teorii modeli===
===Elementy teorii modeli===


Powiemy, że zbiór formuł <math>\Delta </math> jest ''spełnialny'' gdy  
Powiemy, że zbiór formuł <math>\Delta</math> jest ''spełnialny'' gdy  
istnieje wartościowanie <math>\varrho:\mbox{\small ZZ}\arr \{0,1\}</math> spełniające wszystkie formuły ze zbioru <math>\Delta</math>.   
istnieje wartościowanie <math>\varrho:\mbox{\small ZZ}\arr \{0,1\}</math> spełniające wszystkie formuły ze zbioru <math>\Delta</math>.   


Linia 144: Linia 144:
   
   
<math>(\var\varphi\rightarrow\psi)\in\Gamma \hspace{.5cm}</math> wtedy i tylko wtedy, gdy  
<math>(\var\varphi\rightarrow\psi)\in\Gamma \hspace{.5cm}</math> wtedy i tylko wtedy, gdy  
<math>\hspace{.5cm}  \var\varphi\not\in\Gamma</math> lub <math> \psi\in\Gamma.  
<math>\hspace{.5cm}  \var\varphi\not\in\Gamma</math> lub <math>\psi\in\Gamma.  
</math>
</math>
   
   
Linia 164: Linia 164:


Dla dowolnej formuły <math>\var\varphi</math>, <math>\models\var\varphi[\varrho] \hspace{.5cm} \mbox{ wtedy i tylko wtedy, gdy } \hspace{.5cm}  
Dla dowolnej formuły <math>\var\varphi</math>, <math>\models\var\varphi[\varrho] \hspace{.5cm} \mbox{ wtedy i tylko wtedy, gdy } \hspace{.5cm}  
\var\varphi\in \Gamma.</math>  
\var\varphi\in \Gamma</math>.


Dowód ([[#eq-zda-3|6]]) przeprowadzamy przez indukcję ze względu na  
Dowód ([[#eq-zda-3|6]]) przeprowadzamy przez indukcję ze względu na  
Linia 177: Linia 177:
Każdy kraj ma jakiś kolor: dla każdego <math>i\in I</math> wyraża to formuła  
Każdy kraj ma jakiś kolor: dla każdego <math>i\in I</math> wyraża to formuła  


<math>p_{i,0}\vee p_{i,1}\vee\ldots\vee p_{i,k-1}.</math>
<math>p_{i,0}\vee p_{i,1}\vee\ldots\vee p_{i,k-1}</math>.


Każdy kraj ma co najwyżej jeden kolor: dla każdego <math>i\in I</math>, oraz  
Każdy kraj ma co najwyżej jeden kolor: dla każdego <math>i\in I</math>, oraz  
każdych <math>i,j<k</math>, jeśli <math>j\neq j'</math> to mamy formułę  
każdych <math>i,j<k</math>, jeśli <math>j\neq j'</math> to mamy formułę  


<math>\neg(p_{i,j}\wedge p_{i,j'}).</math>
<math>\neg(p_{i,j}\wedge p_{i,j'})</math>.


Każde dwa sąsiadujące kraje mają różne kolory: dla <math>i,i'\in I</math>  
Każde dwa sąsiadujące kraje mają różne kolory: dla <math>i,i'\in I</math>  
takich, że <math>i</math> oraz <math>i'</math> sąsiadują oraz dla każdego <math>j<k</math> rozważmy formułę  
takich, że <math>i</math> oraz <math>i'</math> sąsiadują oraz dla każdego <math>j<k</math> rozważmy formułę  


<math>\neg(p_{i,j}\wedge p_{i',j}).</math>
<math>\neg(p_{i,j}\wedge p_{i',j})</math>.


Niech <math>\Delta</math> będzie zbiorem wszystkich formuł przedstawionych wyżej. Łatwo jest zauważyć, że&nbsp;<math>\Delta</math> jest spełnialny wtedy i tylko wtedy, gdy mapę da się pokolorować <math>k</math> kolorami. Zatem jeśli mapy nie da się pokolorować <math>k</math> kolorami, to <math>\Delta</math> nie jest spełnialny i z twierdzenia o zwartości wynika, że istnieje skończony podzbiór <math>\Delta_0</math>, który nie jest spełnialny. Wówczas fragmentu mapy zawierającego kraje wymienione w indeksach zmiennych występujących w  
Niech <math>\Delta</math> będzie zbiorem wszystkich formuł przedstawionych wyżej. Łatwo jest zauważyć, że&nbsp;<math>\Delta</math> jest spełnialny wtedy i tylko wtedy, gdy mapę da się pokolorować <math>k</math> kolorami. Zatem jeśli mapy nie da się pokolorować <math>k</math> kolorami, to <math>\Delta</math> nie jest spełnialny i z twierdzenia o zwartości wynika, że istnieje skończony podzbiór <math>\Delta_0</math>, który nie jest spełnialny. Wówczas fragmentu mapy zawierającego kraje wymienione w indeksach zmiennych występujących w  
Linia 204: Linia 204:
<math>\Delta_0\models\var\varphi</math>. Tak więc jeśli  
<math>\Delta_0\models\var\varphi</math>. Tak więc jeśli  
<math>\Delta_0=\{\psi_1,\ldots,\psi_n\}</math> to oczywiście formuła  
<math>\Delta_0=\{\psi_1,\ldots,\psi_n\}</math> to oczywiście formuła  
<math>\psi_1\rightarrow(\psi_2\righrarrow\cdots\righrarrow(\psi_n\righrarrow\var\varphi)\cdots)</math> jest tautologią. Z twierdzenia o pełności wnioskujemy, że </math>\vdash_{H^+}  
<math>\psi_1\rightarrow(\psi_2\righrarrow\cdots\righrarrow(\psi_n\righrarrow\var\varphi)\cdots)</math> jest tautologią. Z twierdzenia o pełności wnioskujemy, że</math>\vdash_{H^+}  
\psi_1\righrarrow(\psi_2\arr\cdots\righrarrow(\psi_n\righrarrow\var\varphi)\cdots)</math>. Stosując <math>n</math> razy (MP) do powyższej formuły dostajemy  
\psi_1\righrarrow(\psi_2\arr\cdots\righrarrow(\psi_n\righrarrow\var\varphi)\cdots)</math>. Stosując <math>n</math> razy (MP) do powyższej formuły dostajemy  
<math>\Delta_0\vdash_{H^+}\var\varphi.</math>
<math>\Delta_0\vdash_{H^+}\var\varphi</math>.
Tak więc <math>\vdash_{H^+}\var\varphi</math>, co kończy dowód twierdzenia.  
Tak więc <math>\vdash_{H^+}\var\varphi</math>, co kończy dowód twierdzenia.  
}}  
}}  

Aktualna wersja na dzień 10:30, 5 wrz 2023

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. Dla udowodnienia 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 {q1,qn} 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 i=1,,n definiujemy formuły:

Parser nie mógł rozpoznać (nieznana funkcja „\begin{cases}”): {\displaystyle q'_i = \begin{cases}q_i & \text{\ jeśli } \varrho(q_i)=1 \\\neg q_i & \text{\ jeśli } \varrho(q_i)=0\end{cases}}

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 {q1,,qn}Hψ

Dowód

Dowód jest prowadzony przez indukcję ze względu na budowę 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 zmienną qi to Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi'=q_i'} . Zatem trywialnie zachodzi Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \{q_1',\ldots,q_n'\}\vdash\var\varphi'} .

Jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest stałą , to Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi'=\neg\bot} i oczywiście dla dowolnego wyboru q1,,qn zachodzi

{q'1,,q'n}H¬.

Załóżmy teraz, że Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest postaci Parser nie mógł rozpoznać (nieznana funkcja „\arr”): {\displaystyle \psi\arr\vartheta} i rozważmy następujące przypadki.

(A) ⊭ψ[ϱ].

Wówczas Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi'=\var\varphi} oraz ψ=¬ψ. Z założenia indukcyjnego mamy {q1,,qn}H¬ψ. Zatem {q1,,qn},ψH. Z Lematu 5.4(2) mamy Parser nie mógł rozpoznać (nieznana funkcja „\arr”): {\displaystyle \{q_1',\ldots,q_n'\},\psi\vdash_H\bot\arr\vartheta} . Zatem, stosując (MP) dostajemy {q1,,qn},ψHϑ i z twierdzenia o dedukcji

Parser nie mógł rozpoznać (nieznana funkcja „\varaphi”): {\displaystyle \{q'_1,\ldots,q'_n\}\vdash_H\psi\rightarrow\varaphi} .

(B) ϑ[ϱ].

Wówczas Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi'=\var\varphi} , oraz ϑ=ϑ. Z założenia indukcyjnego mamy {q1,,qn}Hϑ. Zatem {q1,,qn},ψHϑ i z twierdzenia o dedukcji dostajemy

Parser nie mógł rozpoznać (nieznana funkcja „\varaphi”): {\displaystyle \{q'_1,\ldots,q'_n\}\vdash_H\psi\rightarrow\varaphi} .

(C) ψ[ϱ] oraz ⊭ϑ[ϱ].

Wówczas Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi'=\neg\var\varphi.\ \psi'=\psi} oraz ϑ=¬ϑ. Z założenia indukcyjnego mamy


{q'1,,q'n}Hψ   oraz   {q'1,,q'n}H¬ϑ

Z Lematu 5.4(1) mamy

{q'1,,qn}H

Stosując teraz dwukrotnie (MP) dostajemy

{q'1,,q'n}

To kończy dowód lematu.

Lemat 6.2

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 ΔHψ.

Dowód

Jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta,\var\varphi\vdash_H \psi} to na mocy twierdzenia o dedukcji mamy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \vdash_H \var\varphi\arr\psi} . Podobnie dostajemy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \vdash_H\neg\var\varphi\arr\psi} . Stosując Lemat 5.4(3), oraz dwukrotnie regułę odrywania dostajemy Hψ.

Lemat Kalmára odgrywa kluczową rolę w dowodzie poniższego twierdzenia o pełności.

Twierdzenie 6.3 (o pełności dla H)

Jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest tautologią zbudowaną przyużyciu oraz , to Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \vdash_H\var\varphi} .

Dowód

Załóżmy, że Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest tautologią. Niech {q1,,qn} będą wszystkimi zmiennymi występującymi w Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} . Dla dowolnej liczby 0mn nazwiemy m-zbiorem każdy zbiór formuł {q1,,qm}, gdzie qi jest albo qi lub ¬qi. Zauważmy, że 0-zbiór jest pusty.

Udowodnimy następującą własność: dla każdego m spełniającego 0mn, jeśli Δ jest m-zbiorem, to Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta\vdash_H\var\varphi} .

Zauważmy, że biorąc m=0 w (2) dostajemy tezę twierdzenia. Dowód (2) przeprowadzimy przez indukcję ze względu na m w zbiorze {0,,n}uporządkowanym relacją 1. Dla m=n własność (2) wynika z Lematu 6.1 oraz z faktu, że Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest tautologią. Załóżmy, że (2) zachodzi dla pewnego 0<m<n i niech Δ będzie dowolnym (m1)-zbiorem. Z założenia indukcyjnego dostajemy

Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta,q_{m}\vdash_H\var\varphi} oraz

Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta,\neg q_{m}\vdash_H\var\varphi} .

Zatem na mocy Lematu 6.2 dostajemy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \vdash_H\var\varphi} . To kończy dowód (2) i tym samym dowód twierdzenia o pełności.

Korzystając z Lematu 5.6 natychmiast dostajemy twierdzenie o pełności dla systemu H+ ze wszystkimi spójnikami zdaniowymi.

Twierdzenie 6.4 (o pełności H+)

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

Ponieważ Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \vdash_{H^+}\var\varphi\arr\tilde{\var\varphi}} , więc z twierdzenia o poprawności wynika, że Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \models\var\varphi\arr\tilde{\var\varphi}} . A zatem Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \tilde{\var\varphi}} jest tautologią. Z twierdzenia o pełności dla systemu H dostajemy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \vdash_H\tilde{\var\varphi}} . Stąd Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \vdash_{H^+}\tilde{\var\varphi}} i ponieważ Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \vdash_{H^+}\tilde{\var\varphi}\arr\var\varphi} (por. Lemat 5.6) więc stosując (MP) dostajemy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \vdash_{H^+}\tilde{\var\varphi}}

Elementy teorii modeli

Powiemy, że zbiór formuł Δ jest 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 6.5

Zbiór formuł Δ jest spełnialny wtedy i tylko wtedy, gdy każdy skończony podzbiór zbioru Δ jest spełnialny.

Dowód

Powiemy, że zbiór Δ jest 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 oraz . Używając lematu Kuratowskiego-Zorna pokazujemy najpierw, że istnieje maksymalny skończenie spełnialny zbiór formuł Γ zawierający Δ. Oczywiście mamy

∉Γ.

Ponadto, dla dowolnej formuły Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} mamy jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi\not\in\Gamma} , to math>\neg\var\varphi\in\Gamma</math>.

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 X,YΓ, 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 X oraz Y są rozłączne. Tak więc XY nie jest spełnialny, a otrzymana sprzeczność dowodzi (4).


Zatem dla dowolnych formuł Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi,\psi} ,

Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle (\var\varphi\rightarrow\psi)\in\Gamma \hspace{.5cm}} wtedy i tylko wtedy, gdy Parser nie mógł rozpoznać (błąd składni): {\displaystyle \hspace{.5cm} \var\varphi\not\in\Gamma} lub ψΓ.

Rzeczywiście, jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle (\var\varphi\rightarrow\psi)} i Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} należą do Γ oraz ψ∉Γ, to ¬ψΓ na mocy (4). Wówczas niespełnialny zbiór Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \{(\var\varphi\rightarrow\psi),\var\varphi,\neg\psi\}} jest podzbiorem Γ co dowodzi dowodzi z lewej do prawej w (5). Na odwrót, jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle (\var\varphi\arr\psi)\not\in\Gamma} , to na mocy (4) mamy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \neg(\var\varphi\rightarrow\psi)\in\Gamma} . Jeśli teraz ψΓ to niespełnialny zbiór Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \{\neg(\var\varphi\rightarrow\psi), \psi\}} jest podzbiorem Γ. Podobnie, jeśli φ∉Γ, to ¬φΓ, więc Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \{\neg(\var\varphi\rightarrow\psi), \neg\var\varphi\}\subseteq\Gamma} , co kończy dowód (5).

Teraz możemy zdefiniować wartościowanie Parser nie mógł rozpoznać (błąd składni): {\displaystyle \varrho:\mbox{\small ZZ}\rightarrow \{0,1\}} tak, że dla dowolnej zmiennej Parser nie mógł rozpoznać (błąd składni): {\displaystyle p\in \mbox{\small ZZ}} warunki ϱ(p)=1 i pΓ 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} , Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \models\var\varphi[\varrho] \hspace{.5cm} \mbox{ wtedy i tylko wtedy, gdy } \hspace{.5cm} \var\varphi\in \Gamma} .

Dowód (6) przeprowadzamy przez indukcję ze względu na budowę formuły Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} . Własności (3)używamy w przypadku gdy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest , a własności (5) w przypadku, gdy zewnętrznym spójnikiem Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest .


Przykład 6.6

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 k kolorów, to istnieje skończony fragment tej mapy, którego też nie da się pokolorować przy pomocy k kolorów. Niech I będzie zbiorem krajów tej mapy. Rozważmy zmienne zdaniowe pi,j, gdzie iI oraz j<k. Wartościowania będą odpowiadać kolorowaniom mapy. Intencją jest to, aby wartościowanie przypisywało zmiennej pi,j wartość 1 wtedy i tylko wtedy, gdy kraj i ma na mapie kolor j. Poniższe formuły przedstawiają podstawowe warunki dotyczące kolorowania.

Każdy kraj ma jakiś kolor: dla każdego iI wyraża to formuła

pi,0pi,1pi,k1.

Każdy kraj ma co najwyżej jeden kolor: dla każdego iI, oraz każdych i,j<k, jeśli jj to mamy formułę

¬(pi,jpi,j).

Każde dwa sąsiadujące kraje mają różne kolory: dla i,iI takich, że i oraz i sąsiadują oraz dla każdego j<k rozważmy formułę

¬(pi,jpi,j).

Niech Δ będzie zbiorem wszystkich formuł przedstawionych wyżej. Łatwo jest zauważyć, że Δ jest spełnialny wtedy i tylko wtedy, gdy mapę da się pokolorować k kolorami. Zatem jeśli mapy nie da się pokolorować k kolorami, to Δ nie jest spełnialny i z twierdzenia o zwartości wynika, że istnieje skończony podzbiór Δ0, który nie jest spełnialny. Wówczas fragmentu mapy zawierającego kraje wymienione w indeksach zmiennych występujących w formułach z Δ0 nie da się pokolorować przy pomocy k kolorów.

Jako wniosek z twierdzenia o zwartości otrzymujemy następujące wzmocnienie twierdzenia o pełności (por. Twierdzenie 6.4).

Twierdzenie 6.7 ("Silne" twierdzenie o pełności)

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 \Delta\vdash_{H^+}\var\varphi} .

Dowód

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 Δ0Δ 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 Δ0={ψ1,,ψn} to oczywiście formuła Parser nie mógł rozpoznać (nieznana funkcja „\righrarrow”): {\displaystyle \psi_1\rightarrow(\psi_2\righrarrow\cdots\righrarrow(\psi_n\righrarrow\var\varphi)\cdots)} jest tautologią. Z twierdzenia o pełności wnioskujemy, że</math>\vdash_{H^+} \psi_1\righrarrow(\psi_2\arr\cdots\righrarrow(\psi_n\righrarrow\var\varphi)\cdots)</math>. Stosując n razy (MP) do powyższej formuły dostajemy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta_0\vdash_{H^+}\var\varphi} . Tak więc Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \vdash_{H^+}\var\varphi} , co kończy dowód twierdzenia.

Powiemy, że zbiór formuł Δ jest sprzeczny, gdy vdashH. Zbiór, który nie jest sprzeczny nazwiemy niesprzecznym. Oto nieco inne sformułowanie "silnego" twierdzenia o pełności:

Twierdzenie 6.8

Zbiór formuł jest spełniony wtedy i tylko wtedy, gdy jest niesprzeczny.

Dowód

Zauważmy, że zbiór formuł Δ jest sprzeczny, gdy Δ⊭. A zatem teza wynika z Twierdzeń 5.56.7, jeśli przyjmiemy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi=\bot} .

A oto twierdzenie o pełności dla rachunku sekwentów i naturalnej dedukcji.

Wniosek 6.9

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

Natychmiast z Twierdzeń 5.8, 5.9 i 6.7.