Logika dla informatyków/Pełność rachunku zdań

Z Studia Informatyczne
Wersja z dnia 10:22, 28 wrz 2006 autorstwa Aneczka (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

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 podamyelegancki dowód pochodzący od L. Kalm\'ara. Dlaudowodnienia nieco silniejszej wersji twierdzenia o pełności (Twierdzenie #tw-zda-4) wykorzystamy silne i bardzo pożyteczne Twierdzenie #tw-zda-5 zwane twierdzeniem o zwartości.

\begin{lemat}[Kalm\'ar] Niech Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} będzie formułą zbudowaną przyużyciu Parser nie mógł rozpoznać (nieznana funkcja „\arr”): {\displaystyle \arr} oraz , o zmiennych zawartych w zbiorze {q1,qn} i niech Parser nie mógł rozpoznać (błąd składni): {\displaystyle \varrho:\\mbox{\small ZZ}\arr\{0,1\} } będzie dowolnym wartościowaniem. Dla i=1,,n definiujemy formuły: Parser nie mógł rozpoznać (nieznana funkcja „\begi”): {\displaystyle q'_i=\left\{ \begi\prooftree array \justifies ll \using \textrm{(W)}\endprooftree q_i & \mbox{ jeśli } \varrho(q_i)=1,\\ \neg q_i & \mbox{ jeśli } \varrho(q_i)=0. \end{array} } 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 Parser nie mógł rozpoznać (błąd składni): {\displaystyle \{q_1',\ldots,q_n'\}\vdash_H\psi \mbox{ oraz } \end{lemat} \begin{dowod} Dowód jest prowadzony przez indukcję ze względu na budowę formuły <math>\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

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.

\noindent (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 #le-zda-1(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

\noindent (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


\noindent (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 </math> Z Lematu #le-zda-1(1) mamy {q1,,qn}H Stosując teraz dwukrotnie (MP) dostajemy

\Rightarrow kończy dowód lematu. \end{dowod}

\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 eHψ. \end{lemat}

Dowód

{{{3}}}

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 {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-{\em 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, \mbox{jeśli Δ jest m-zbiorem, to Parser nie mógł rozpoznać (nieznana funkcja „\se”): {\displaystyle \se_H\var\varphi} }. \end{equation}

Zauważmy, że biorąc m=0 w (#eq-zda-3a) dostajemy tezę twierdzenia. Dowód (#eq-zda-3a) przeprowadzimy przez indukcję ze względu na m w zbiorze {0,,n}uporządkowanym relacją 1. Dla m=n 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 0<m<n i niech Δ będzie dowolnym (m1)-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 H+ 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

{{{3}}}

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 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 (#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\}oraz\{\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 ϱ(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} , \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

{{{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 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 \wtw, 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 \[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 iI, oraz każdych i,j<k, jeśli jj to mamy formułę \[\neg(p_{i,j}\wedge p_{i,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łę \[\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ć 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 #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 Δ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 „\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 n 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

{{{3}}}

Powiemy, że zbiór formuł Δ jest {\em sprzeczny}, gdy eH. Zbiór, który nie jest sprzeczny nazwiemy {\em niesprzecznym}. \Leftrightarrow nieco inne sformułowanie ,,silnego twierdzenia o pełności:

Twierdzenie

Dowód

{{{3}}}

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

{{{3}}}

\subsection*{Ćwiczenia}\begin{small}


  1. Dowieść, że ,,silne twierdzenie o pełności

(Twierdzenie #tw-zda-4) pociąga twierdzenie o zwartości.

  1. <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 kN, dowolnych k chłopców ma co najmniej k narzeczonych. Dowieść, że każdy chłopiec może się ożenić z jedną ze swoich narzeczonych bez popełnienia bigamii.