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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Aneczka (dyskusja | edycje)
Aneczka (dyskusja | edycje)
Linia 66: Linia 66:
Jeśli ostatnim krokiem w dowodzie było zastosowanie (MP), to dla pewnej formuły <math>\psi</math> mamy <math>\Delta\vdash_H\psi\rightarrow\var\varphi</math> oraz <math>\Delta\vdash_H\psi</math> w mniejszejliczbie kroków. Z założenia indukcyjnego otrzymujemy<math>\Delta\vdash_H\forall x\,(\psi\rightarrow\var\varphi)</math> oraz <math>\Delta\vdash_H\forall x\,\psi</math>. Zatem stosując (MP) do <math>\forall x\,(\psi\rightarrow\var\varphi)</math> oraz do instancji <math>\forall x(\psi\rightarrow\var\varphi)\rightarrow(\forall x\psi\rightarrow\forall x\var\varphi)</math>aksjomatu (A4) otrzymujemy <math>\forall x\psi\rightarrow\forall x\var\varphi</math>. Ponowne zastosowanie (MP) do tej formuły oraz do <math>\forall x\,\psi</math> daje nam <math>\forall x\,\var\varphi</math>.}}
Jeśli ostatnim krokiem w dowodzie było zastosowanie (MP), to dla pewnej formuły <math>\psi</math> mamy <math>\Delta\vdash_H\psi\rightarrow\var\varphi</math> oraz <math>\Delta\vdash_H\psi</math> w mniejszejliczbie kroków. Z założenia indukcyjnego otrzymujemy<math>\Delta\vdash_H\forall x\,(\psi\rightarrow\var\varphi)</math> oraz <math>\Delta\vdash_H\forall x\,\psi</math>. Zatem stosując (MP) do <math>\forall x\,(\psi\rightarrow\var\varphi)</math> oraz do instancji <math>\forall x(\psi\rightarrow\var\varphi)\rightarrow(\forall x\psi\rightarrow\forall x\var\varphi)</math>aksjomatu (A4) otrzymujemy <math>\forall x\psi\rightarrow\forall x\var\varphi</math>. Ponowne zastosowanie (MP) do tej formuły oraz do <math>\forall x\,\psi</math> daje nam <math>\forall x\,\var\varphi</math>.}}


Powiemy, że formuła <math>\var\varphi</math> jest ''konsekwencją semantyczną'' zbioru formuł <math>\Delta</math> (i napiszemy <math>\Delta\models\var\varphi</math>), gdy dla każdej struktury <math>\mathfrak A</math> i dla każdego wartościowania <math>\varrho</math> w <math>\mathfrak A</math> spełniającego wszystkie formuły ze zbioru <math>\Delta</math>, mamy<math>\sat\mathfrak A\varrho\var\varphi</math>. Zwróćmy uwagę, że jeśli <math>\Delta</math> jestzbiorem zdań, to powyższa definicja jest równoważna następującej własności: każdy model dla <math>\Delta</math> jest modelem dla <math>\var\varphi</math>. W ogólnym przypadku, gdy formuły z <math>\Delta</math> mogą zawierać zmiennewolne, powyższe dwie definicje nie są równoważne. Na przykład, jeśli<math>f</math> jest symbolem operacji jednoargumentowej, to <math>x=y\not\models f(z)=z</math>, ale każdy model dla <math>x=y</math>(czyli jednoelementowy) jest modelem dla <math>f(z)=z</math>.


{{twierdzenie|7.5 (o poprawności)||
Dla dowolnego zbioru formuł <math>\Delta</math> i formuły <math>\var\varphi</math>, jeśli <math>\Delta\vdash_H\var\varphi</math>, to <math>\Delta\models\var\varphi</math>.}}


{{dowod|||
Dowód przeprowadzamy przez indukcję ze względu na liczbę kroków w dowodzie formuły <math>\var\varphi</math> ze zbioru hipotez <math>\Delta</math>. Jeśli <math>\var\varphi\in\Delta</math>, to oczywiście mamy<math>\Delta\models\var\varphi</math>. Sprawdzamy, że jeśli <math>\var\varphi</math> jest dowolną generalizacją jednego z aksjomatów (A1--9), tozachodzi <math>\models\var\varphi</math>. Oczywiście reguła (MP) zachowujerelację semantycznej konsekwencji, tzn. jeśli <math>\Delta\models\var\varphi</math> i <math>\Delta\models\var\varphi\rightarrow\psi</math>, to <math>\Delta\models\psi</math>. }}


Twierdzenie o poprawności może być użyte do pokazania, że pewnew ynikania nie dają się wyprowadzić w systemie <math>\vdash_H</math>. Przykładowo, zobaczmy, że <math>x=y\not\vdash_H\forall x\,(x=y)</math>. Istotnie, biorąc dwuelementową strukturę  <math>\mathfrak A</math> orazwartościowanie, które "skleja" wartości zmiennych <math>x</math> oraz <math>y</math>, dostajemy <math>x=y\not\models\forall x\,(x=y)</math>. Zatem z twierdzenia o poprawności wnioskujemy, że <math>x=y\not\vdash_H\forall x\,(x=y)</math>. Jest to również przykład na to, że system <math>\vdash_H</math> nie jest zamknięty ze względu na dowolne generalizacje, tzn. założenie <math>x\not\in FV(\Delta)</math> w twierdzeniu o  generalizacji jest istotne.


Powiemy, że formuła <math>\var\varphi</math> jest {\em konsekwencją semantyczną}zbioru formuł <math>\Delta</math> (i napiszemy \mbox{<math>\Delta\models\var\varphi</math>}), gdydla każdej struktury <math>\mathfrak A</math> i dla każdego wartościowania <math>\varrho</math> w&nbsp;<math>\mathfrak A</math> spełniającego wszystkie formuły ze zbioru <math>\Delta</math>, mamy<math>\sat\mathfrak A\varrho\var\varphi</math>. Zwróćmyuwagę, że jeśli <math>\Delta</math> jestzbiorem zdań, to powyższa definicja jest równoważna następującejwłasności: każdy model dla <math>\Delta</math> jest modelem dla <math>\var\varphi</math>. W&nbsp;ogólnym przypadku, gdy formuły z <math>\Delta</math> mogą zawierać zmiennewolne, powyższe dwie definicje nie są równoważne. Na przykład, jeśli<math>f</math> jest symbolem operacji jednoargumentowej, to <math>x=y\not\models f(z)=z</math>, ale każdy model dla <math>x=y</math>(czyli jednoelementowy) jest modelem dla <math>f(z)=z</math>.  
Zachodzi również odwrotne twierdzenie doTwierdzenia&nbsp;[[#tw-pier-1|7.5]]. Dowód tego twierdzenia jest celem niniejszego rozdziału.


System formalny dla formuł zawierających pozostałe spójniki:<math>\wedge,\ \vee</math> i kwantyfikator egzystencjalny otrzymuje się z <math>\vdash_H</math> przez dodanie aksjomatów charakteryzujących te symbole:


(B1)&nbsp; <math>  \var\varphi\wedge \psi\rightarrow\neg(\var\varphi\rightarrow\neg\psi)</math><br>
(B2)&nbsp; <math>\neg(\var\varphi\rightarrow\neg\psi)\rightarrow\var\varphi\wedge \psi</math><br>
(B3)&nbsp; <math>\var\varphi\vee\psi\rightarrow(\neg\var\varphi\rightarrow\psi)</math><br>
(B4)&nbsp; <math>(\neg\var\varphi\rightarrow\psi)\rightarrow\var\varphi\vee\psi</math><br>
(B5)&nbsp; <math> \exists x\,\var\varphi\rightarrow \neg\forall x\,\neg\var\varphi</math><br>
(B6)&nbsp; <math> \neg\forall x\,\neg\var\varphi\rightarrow \exists x\,\var\varphi</math>


<!--%%'''(O poprawności)'''\\-->Dla dowolnego zbioru formuł <math>\Delta</math> i formuły <math>\var\varphi</math>, jeśli\mbox{<math>Delta\vdash_H\var\varphi</math>}, to <math>\Delta\models\var\varphi</math>.\end{twierdzenie}


\begin{dowod}Dowód przeprowadzamy przez indukcję ze względu na liczbę kroków w&nbsp;dowodzie formuły <math>\var\varphi</math> ze zbioru hipotez <math>\Delta</math>. Jeśli <math>\var\varphi\in\Delta</math>, to oczywiście mamy<math>\Delta\models\var\varphi</math>. Sprawdzamy, że jeśli<math>\var\varphi</math> jest dowolną generalizacją jednego z aksjomatów (A1--9), tozachodzi <math>\models\var\varphi</math>. Oczywiście reguła (MP) zachowujerelację semantycznej konsekwencji, tzn. jeśli <math>\Delta\models\var\varphi</math>i <math>\Delta\models\var\varphi\rightarrow\psi</math>, to <math>\Delta\models\psi</math>. \end{dowod}
Głównym narzędziem w dowodzie "silnego" twierdzenia o pełności będzie tzw. ''twierdzenie o istnieniu modelu''. Metoda dowodu tego twierdzenia  polega na budowaniu modelu ze stałych. Zaproponował ją L. Henkin.


Twierdzenie o poprawności może byćużyte do pokazania, że pewnewynikania nie dają się wyprowadzić w systemie<math>\vdash_H</math>. Przykładowo, zobaczmy, że <math>x=y\not\vdash_H\forall x\,(x=y)</math>. Istotnie, biorąc dwuelementową strukturę  <math>\mathfrak A</math> orazwartościowanie, które ,,skleja'' wartości zmiennych <math>x</math> oraz <math>y</math>, dostajemy<math>x=y\not\models\forall x\,(x=y)</math>. Zatem z twierdzenia o poprawnościwnioskujemy, że <math>x=y\not\vdash_H\forall x\,(x=y)</math>. Jest torównież przykład na to, że system <math>\vdash_H</math> nie jest zamknięty \zwn&nbsp;dowolne generalizacje, tzn. założenie <math>x\not\in FV(\Delta)</math> wtwierdzeniu o  generalizacji jest istotne.
Najpierw wprowadzimy następującą definicję. Niech <math>\Gamma</math> będzie zbiorem zdań pierwszego rzędu nad sygnaturą <math>\Sigma</math> oraz niech<math>C\sbseteq\Sigma_0</math> będzie pewnym zbiorem stałych. Powiemy, że <math>\Gamma</math>jest zbiorem ''<math>C</math>-nasyconym'', gdy <math>\Gamma</math> jest zbiorem niesprzecznym oraz dla dowolnej formuły <math>\var\varphi(x)</math> o co najwyżej jednej zmiennej wolnej <math>x</math>, jeśli <math>\Gamma\not\vdash_H\forall x\,\var\varphi(x)</math>, to istnieje stała <math>c\in C</math>,taka że <math>\Gamma\vdash_H\neg\var\varphi(c/x)</math>.  


Zachodzi również odwrotne twierdzenie doTwierdzenia&nbsp;[[#tw-pier-1]]. Dowód tego twierdzenia jest celem niniejszego rozdziału.
Niech <math>\Gamma</math> będzie <math>C</math>-nasycony.  Zauważmy, że jeśli <math>\Gamma\vdash_H\neg\forall x\,\var\varphi(x)</math> oraz jeśli <math>\var\varphi</math> jest postaci <math>\neg\psi</math>, to wówczas <math>\Gamma\vdash_H\neg\forall x\var\varphi(x)</math> jest równoważne <math>\Gamma\vdash_H\exists x\psi(x)</math>. Ponadto z warunku <math>C</math>-nasycenia <math>\Gamma</math> wynika istnienie stałej <math>c\in C</math> takiej, że<math>\Gamma\vdash_H\neg\var\varphi(c/x). \Rightarrow </math> ostatnie jest równoważne (na& mocy prawa podwójnego przeczenia) temu, że <math>\Gamma\vdash_H\psi(c/x)</math>. Tak więc w tym przypadku <math>c</math> jest "świadkiem" zachodzenia własności <math>\Gamma\vdash_H\existsx\ \psi(x)</math>.


System formalny dla formuł zawierających pozostałe spójniki:<math>\wedge,\ \vee</math> i kwantyfikatoregzystencjalny otrzymuje się z&nbsp;<math>\vdash_H</math> przez dodanie aksjomatów charakteryzujących te symbole:
''Mocą sygnatury'' <math>\Sigma</math> nazwiemy moc zbioru <math>(\bigcup_{n=0}^{\infty}\Sigma^F_n)\cup(\bigcup_{n=1}^{\infty}\Sigma^R_n)</math>. Moc sygnatury <math>\Sigma</math> będziemy oznaczać przez <math>|\Sigma|</math>.  
 
 
 
\noindent(B1)&nbsp; <math>  \var\varphi\wedge \psi\rightarrow\neg(\var\varphi\rightarrow\neg\psi)</math>\\(B2)&nbsp; <math>  \neg(\var\varphi\rightarrow\neg\psi)\rightarrow\var\varphi\wedge \psi</math>\\(B3)&nbsp; <math>  \var\varphi\vee\psi\rightarrow(\neg\var\varphi\rightarrow\psi)</math>\\(B4)&nbsp; <math>  (\neg\var\varphi\rightarrow\psi)\rightarrow\var\varphi\vee\psi</math>\\(B5)&nbsp; <math> \exists x\,\var\varphi\rightarrow \neg\forall x\,\neg\var\varphi</math>\\(B6)&nbsp; <math> \neg\forall x\,\neg\var\varphi\rightarrow \exists x\,\var\varphi</math>\\
 
 
 
Głównym narzędziem w dowodzie ,,silnego'' twierdzenia o pełności będzie tzw.&nbsp;{\em twierdzenie o&nbsp;istnieniu modelu}. Metoda dowodu tego twierdzenia  polega na budowaniu modelu ze stałych. Zaproponował ją L.&nbsp;Henkin.
 
 
 
Najpierw wprowadzimy następującą definicję. Niech <math>\Gamma</math> będziezbiorem zdań pierwszego rzędu nad sygnaturą <math>\Sigma</math> oraz niech<math>Csbseteq\Sigma_0</math> będzie pewnym zbiorem stałych. Powiemy, że <math>\Gamma</math>jest zbiorem {\em <math>C</math>-nasyconym}, gdy <math>\Gamma</math> jest zbioremniesprzecznym oraz dla dowolnej formuły <math>\var\varphi(x)</math> o&nbsp;co najwyżej jednej zmiennejwolnej <math>x</math>, jeśli<math>\Gamma\not\vdash_H\forall x\,\var\varphi(x)</math>, to istnieje stała <math>c\in C</math>,taka że <math>\Gamma\vdash_H\neg\var\varphi(c/x)</math>.
 
Niech <math>\Gamma</math> będzie <math>C</math>-nasycony.  Zauważmy, że jeśli<math>\Gamma\vdash_H\neg\forall x\,\var\varphi(x)</math> oraz jeśli <math>\var\varphi</math> jestpostaci </math>\neg\psi<math>, to wówczas </math>\Gamma\vdash_H\neg\forall x\\var\varphi(x)<math> jest równoważne </math>\Gamma\vdash_H\exists x\\psi(x)</math>. Ponadto z warunku <math>C</math>-nasycenia&nbsp;<math>\Gamma</math> wynikaistnienie stałej <math>c\in C</math> takiej, że<math>\Gamma\vdash_H\neg\var\varphi(c/x)</math>. \Rightarrow ostatnie jest równoważne (na&nbsp;mocyprawa podwójnego przeczenia) temu, że <math>\Gamma\vdash_H\psi(c/x)</math>. Tak więc wtym przypadku <math>c</math> jest ,,świadkiem'' zachodzenia własności </math>\Gamma\vdash_H\existsx\ \psi(x)</math>.
 
''Mocą sygnatury\/'' <math>\Sigma</math> nazwiemy moc zbioru<math>(\bigcup_{n=0}^{\infty}\Sigma^F_n)\cup(\bigcup_{n=1}^{\infty}\Sigma^R_n)</math>. Moc sygnatury <math>\Sigma</math> będziemy oznaczać przez <math>|\Sigma|</math>.  


Dopuścimy możliwość rozszerzenia sygnatury o stałe. Dla dowolnego zbioru <math>C</math> rozłącznego z&nbsp;sygnaturą <math>\Sigma</math>, przez <math>\Sigma(C)</math> będziemy oznaczać sygnaturę powstałą z <math>\Sigma</math> przez dodanie symboli stałych ze zbioru <math>C</math>.
Dopuścimy możliwość rozszerzenia sygnatury o stałe. Dla dowolnego zbioru <math>C</math> rozłącznego z&nbsp;sygnaturą <math>\Sigma</math>, przez <math>\Sigma(C)</math> będziemy oznaczać sygnaturę powstałą z <math>\Sigma</math> przez dodanie symboli stałych ze zbioru <math>C</math>.

Wersja z 08:13, 27 wrz 2006

Poniższy system dowodzenia dotyczy formuł pierwszego rzędu nad ustaloną sygnaturą Σ, zbudowanych w oparciu o spójniki , oraz kwantyfikator . Przypomnijmy, że Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \neg\var\varphi} oznacza formułęParser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi\rightarrow\perp} .

Przez generalizację formuły Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} będziemy rozumieć dowolną formułę postaci Parser nie mógł rozpoznać (nieznana funkcja „\ciut”): {\displaystyle \forall x_1\ldots\forall x_n\ciut\var\varphi} , gdzie x1,xn są dowolnymi zmiennymi.

Aksjomaty

Dowolne generalizacje formuł postaci:

(A1) Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi\rightarrow(\psi\rightarrow\var\varphi)} ;
(A2) Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle (\var\varphi\rightarrow(\psi\rightarrow\vartheta))\rightarrow((\var\varphi\rightarrow\psi)\rightarrow(\var\varphi\rightarrow\vartheta))} ;
(A3) Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \neg\neg\var\varphi\rightarrow\var\varphi} ;
(A4) Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \forall x(\var\varphi\rightarrow\psi)\rightarrow(\forall x\var\varphi\rightarrow\forall x\psi)} ;
(A5) Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi\rightarrow \forall x \var\varphi} , o ile Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle x\not\in FV(\var\varphi)} ;
(A6) Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \forall x\var\varphi\rightarrow \var\varphi(\sigma/x)} , o ile σ jestdopuszczalny dla x w Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} ;
(A7) x=x;
(A8) x1=y1(x2=y2(xn=ynf(x1,,xn)=f(y1,,yn))), dla fΣnF, n0;
(A9) x1=y1(x2=y2(xn=yn(r(x1,,xn)r(y1,,yn)))), dla rΣnR, n1.

Reguły dowodzenia

Parser nie mógł rozpoznać (nieznana funkcja „\WTW”): {\displaystyle f^{\mathfrak A_\Gamma}([c_1]_\sim,[c_2]_\sim)=[d]_\sim \WTW \Gamma\vdash_H}

Pojęcie dowodu formalnego w powyższym systemie definiuje siędokładnie tak samo jak w przypadku rachunku zdań (por. Rozdział 2).Możliwość udowodnienia formuły Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} ze zbioru hipotez Δ wpowyższym systemie będziemy oznaczać przez ΔHφ.Sam system, podobnie jak w przypadku rachunku zdań, będziemyoznaczać przez H. Nie powinno prowadzić to doniejednoznaczności. Zwróćmyuwagę, że system H zależyod sygnatury Σ. Tak więc mamy różne systemy dla różnychsygnatur. Pojęcie niesprzecznego zbioru formuł definiuje się tak samo jak w rachunku zdań.


Przykład 7.1

Pokażemy główne kroki dowodu formuły (x=yy=x).

  1. x1x2y1y2(x1=y1(x2=y2(x1=x2y1=y2)))   (A9)
  2. x=y(x=x(x=xy=x))     na mocy (A6) oraz(MP)
  3. x=x(x=y(x=xy=x))    z (2), jest to instancja tautologii zdaniowej
  4. x=x    (A7)
  5. x=y(x=xy=x)    (MP(4,3))
  6. x=x(x=yy=x)     z (5), jest to instancja tautologii zdaniowej
  7. x=x   (A7)
  8. x=yy=x   (MP(7,6))


Twierdzenie 7.2 (o dedukcji)

Dla dowolnego zbioru formuł Δ oraz dowolnych formuł Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi,\psi} ,jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta,\var\varphi\vdash_H\psi} , to Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta\vdash_H\var\varphi\rightarrow\psi} .

Dowód

Dowód tego twierdzenia jest dokładnie taki sam jak analogicznegotwierdzenia dla rachunku zadań (por. Twierdzenie 5.2).

Natępujące twierdzenie mówi, że wybór nazwy zmiennej związanej nie ma wpływu na dowodliwość formuły. Jest to tzw. własność α-konwersji.

Twierdzenie 7.3 (o α-konwersji)

Jeśli ΔHxψ oraz zmienna y∉FV(xψ) jest dopuszczalna dla x w ψ,to ΔHyψ(y/x).

Dowód

Ponieważ y∉FV(xψ), to na mocy (A5) mamy ΔHxψyxψ.Z drugiej strony mamy następującą wersję aksjomatu (A6) co łącznie z aksjomatem (A4) daje ΔHyxψyψ(y/x).Tak więc, zakładając ΔHxψ i stosując(MP) do (7), a następnie do (8) dostajemy co kończy dowód.


Podamy jeszcze jednoużyteczne twierdzenie. Mówi ono, że tzw. reguła generalizacji jest dopuszczalna w systemie H. Niech

Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle FV(\Delta)=\bigcup\{FV(\var\varphi)\ |\ \var\varphi\in\Delta\}.}

Twierdzenie 7.4 (o generalizacji)

Jeśli zachodzi Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta\vdash_H\var\varphi} , to dla dowolnej zmiennej x, takiej że x∉FV(Δ), mamy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle Delta\vdash_H\forall x\,\var\varphi} .

Dowód

Dowodzimy twierdzenie przez indukcję ze względu na liczbę kroków w dowodzie formuły Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} ze zbioru hipotez Δ. JeśliParser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest jednym z aksjomatów (A1--9), to dowolna generalizacja tej formuły jest też aksjomatem, więc teza zachodzi. Aby pokazać Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta\vdash_H\forall x\,\var\varphi} , dla formuły Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi\in\Delta} używamy aksjomatu (A5) i reguły (MP).

Jeśli ostatnim krokiem w dowodzie było zastosowanie (MP), to dla pewnej formuły ψ mamy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta\vdash_H\psi\rightarrow\var\varphi} oraz ΔHψ w mniejszejliczbie kroków. Z założenia indukcyjnego otrzymujemyParser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta\vdash_H\forall x\,(\psi\rightarrow\var\varphi)} oraz ΔHxψ. Zatem stosując (MP) do Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \forall x\,(\psi\rightarrow\var\varphi)} oraz do instancji Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \forall x(\psi\rightarrow\var\varphi)\rightarrow(\forall x\psi\rightarrow\forall x\var\varphi)} aksjomatu (A4) otrzymujemy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \forall x\psi\rightarrow\forall x\var\varphi} . Ponowne zastosowanie (MP) do tej formuły oraz do xψ daje nam Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \forall x\,\var\varphi} .

Powiemy, że formuła Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest konsekwencją semantyczną zbioru formuł Δ (i napiszemy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta\models\var\varphi} ), gdy dla każdej struktury 𝔄 i dla każdego wartościowania ϱ w 𝔄 spełniającego wszystkie formuły ze zbioru Δ, mamyParser nie mógł rozpoznać (nieznana funkcja „\sat”): {\displaystyle \sat\mathfrak A\varrho\var\varphi} . Zwróćmy uwagę, że jeśli Δ jestzbiorem zdań, to powyższa definicja jest równoważna następującej własności: każdy model dla Δ jest modelem dla Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} . W ogólnym przypadku, gdy formuły z Δ mogą zawierać zmiennewolne, powyższe dwie definicje nie są równoważne. Na przykład, jeślif jest symbolem operacji jednoargumentowej, to x=y⊭f(z)=z, ale każdy model dla x=y(czyli jednoelementowy) jest modelem dla f(z)=z.

Twierdzenie 7.5 (o poprawności)

Dla dowolnego zbioru formuł Δ i formuły Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} , jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta\vdash_H\var\varphi} , to Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta\models\var\varphi} .

Dowód

Dowód przeprowadzamy przez indukcję ze względu na liczbę kroków w dowodzie formuły Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} ze zbioru hipotez Δ. Jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi\in\Delta} , to oczywiście mamyParser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta\models\var\varphi} . Sprawdzamy, że jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest dowolną generalizacją jednego z aksjomatów (A1--9), tozachodzi Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \models\var\varphi} . Oczywiście reguła (MP) zachowujerelację semantycznej konsekwencji, tzn. jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta\models\var\varphi} i Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Delta\models\var\varphi\rightarrow\psi} , to Δψ.

Twierdzenie o poprawności może być użyte do pokazania, że pewnew ynikania nie dają się wyprowadzić w systemie H. Przykładowo, zobaczmy, że x=yHx(x=y). Istotnie, biorąc dwuelementową strukturę 𝔄 orazwartościowanie, które "skleja" wartości zmiennych x oraz y, dostajemy x=y⊭x(x=y). Zatem z twierdzenia o poprawności wnioskujemy, że x=yHx(x=y). Jest to również przykład na to, że system H nie jest zamknięty ze względu na dowolne generalizacje, tzn. założenie x∉FV(Δ) w twierdzeniu o generalizacji jest istotne.

Zachodzi również odwrotne twierdzenie doTwierdzenia 7.5. Dowód tego twierdzenia jest celem niniejszego rozdziału.

System formalny dla formuł zawierających pozostałe spójniki:,  i kwantyfikator egzystencjalny otrzymuje się z H przez dodanie aksjomatów charakteryzujących te symbole:

(B1)  Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi\wedge \psi\rightarrow\neg(\var\varphi\rightarrow\neg\psi)}
(B2)  Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \neg(\var\varphi\rightarrow\neg\psi)\rightarrow\var\varphi\wedge \psi}
(B3)  Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi\vee\psi\rightarrow(\neg\var\varphi\rightarrow\psi)}
(B4)  Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle (\neg\var\varphi\rightarrow\psi)\rightarrow\var\varphi\vee\psi}
(B5)  Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \exists x\,\var\varphi\rightarrow \neg\forall x\,\neg\var\varphi}
(B6)  Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \neg\forall x\,\neg\var\varphi\rightarrow \exists x\,\var\varphi}


Głównym narzędziem w dowodzie "silnego" twierdzenia o pełności będzie tzw. twierdzenie o istnieniu modelu. Metoda dowodu tego twierdzenia polega na budowaniu modelu ze stałych. Zaproponował ją L. Henkin.

Najpierw wprowadzimy następującą definicję. Niech Γ będzie zbiorem zdań pierwszego rzędu nad sygnaturą Σ oraz niechParser nie mógł rozpoznać (nieznana funkcja „\sbseteq”): {\displaystyle C\sbseteq\Sigma_0} będzie pewnym zbiorem stałych. Powiemy, że Γjest zbiorem C-nasyconym, gdy Γ jest zbiorem niesprzecznym oraz dla dowolnej formuły Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi(x)} o co najwyżej jednej zmiennej wolnej x, jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma\not\vdash_H\forall x\,\var\varphi(x)} , to istnieje stała cC,taka że Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma\vdash_H\neg\var\varphi(c/x)} .

Niech Γ będzie C-nasycony. Zauważmy, że jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma\vdash_H\neg\forall x\,\var\varphi(x)} oraz jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest postaci ¬ψ, to wówczas Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma\vdash_H\neg\forall x\var\varphi(x)} jest równoważne ΓHxψ(x). Ponadto z warunku C-nasycenia Γ wynika istnienie stałej cC takiej, żeParser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma\vdash_H\neg\var\varphi(c/x). \Rightarrow } ostatnie jest równoważne (na& mocy prawa podwójnego przeczenia) temu, że ΓHψ(c/x). Tak więc w tym przypadku c jest "świadkiem" zachodzenia własności Parser nie mógł rozpoznać (nieznana funkcja „\existsx”): {\displaystyle \Gamma\vdash_H\existsx\ \psi(x)} .

Mocą sygnatury Σ nazwiemy moc zbioru (n=0ΣnF)(n=1ΣnR). Moc sygnatury Σ będziemy oznaczać przez |Σ|.

Dopuścimy możliwość rozszerzenia sygnatury o stałe. Dla dowolnego zbioru C rozłącznego z sygnaturą Σ, przez Σ(C) będziemy oznaczać sygnaturę powstałą z Σ przez dodanie symboli stałych ze zbioru C.



Niech C będzie nieskończonym zbiorem, rozłącznym z sygnaturą Σ oraz takim, że |Σ||C|. Niech Δ będzieniesprzecznym zbiorem zdań nad Σ. Istnieje zbiór zdań Γ nadsygnaturą Σ(C) taki, że Parser nie mógł rozpoznać (nieznana funkcja „\Deltasbseteq”): {\displaystyle \Deltasbseteq\Gamma} oraz Γ jestC-nasycony. \end{lemat}

\begin{dowod}Bez zmniejszenia ogólności możemy przyjąć, że istnieje zmienna z nie występująca wolno w żadnej formule ze zbioru Δ (w przeciwnym przypadku możemy tak przenumerować zmienne, aby ten warunek był spełniony).Przedstawimy dowód dla przypadku kiedy ΣC sązbiorami przeliczalnymi. Dowód ogólnego przypadku pozostawimyCzytelnikowi jako ćwiczenie (należy zastosować indukcję pozaskończoną). Ustawmy zbiór wszystkich formuł nadΣ(C) o jednej zmiennej wolnej x w ciąg</math>\var\varphi_0,\var\varphi_1,\ldotsParser nie mógł rozpoznać (błąd składni): {\displaystyle Zdefiniujemy ciąg zbiorów } \{\Gamma_n\ |\n\in \NN\}</math> oraz ciąg stałych Parser nie mógł rozpoznać (nieznana funkcja „\NN”): {\displaystyle \{c_n\ |\ n\in \NN\}sbseteq C} o następującychwłasnościach:

  • Γn zawiera skończenie wiele stałych z C.
  • Parser nie mógł rozpoznać (nieznana funkcja „\Deltasbseteq”): {\displaystyle \Deltasbseteq\Gamma_n} jest niesprzecznym zbiorem zdań nadΣ(C).
  • Jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma_n\not\vdash_H\forall x\,\var\varphi_n(x)} , toParser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma_{n+1}=\Gamma_n\cup\{\neg\var\varphi_n(c_n/x)\}} .


Ustalmy dowolną stałą c*C.Przyjmujemy Γ0=Δ. Jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma_n\vdash_H\forall x\,\var\varphi_n(x)} ,to definiujemy Γn+1=Γn oraz cn=c*. Jeśli natomiastParser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma_n\not\vdash_H\forall x\,\var\varphi_n(x)} to niech cnC będziestałą nie występującą w Γn ani w Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi_n} . Musimypokazać, że Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma_{n+1}=\Gamma_n\cup\{\neg\var\varphi_n(c_n/x)\}} jestzbiorem niesprzecznym. Załóżmy przeciwnie, że

Zatem Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma_n\vdash_H\neg\neg\var\varphi_n(c_n/x)} i z (A3) dostajemyParser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma_n\vdash_H\var\varphi_n(c_n/x)} . Ponieważ cn nie występuje w Γn ani w Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi_n} to możemy w dowodzie powyższego sekwentuzamienić wszystkie wystąpienia cn przez nową zmienną z,która się w tym dowodzie nie pojawiła oraz nie występuje wolno w formułach z Γn. Tak więc otrzymujemyParser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma_n\vdash_H\var\varphi_n(z/x)} oraz z∉FV(Γn). Na mocyTwierdzenia #tw-gen o generalizacji dostajemyParser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma_n\vdash_H \forall z\ \var\varphi_n(z/x)} . Ponieważ x jest dopuszczalna dla z w Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi_n(z/x)} oraz Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi_n(z/x)(x/z)=\var\varphi_n(x)} , to stosującα-konwersję (Twierdzenie #tw-alfa) dostajemyParser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma_n\vdash_H\forall x\,\var\varphi_n(x)} , wbrew założeniu. W ten sposóbudowodniliśmy niesprzeczność zbioru Γn+1. \Rightarrow kończy konstrukcję zbiorów Γn oraz stałych cn.

Niech


Pokażemy, że Γ jest zbiorem C-nasyconym.Oczywiście Γ jako suma łańcucha zbiorów niesprzecznych jestrównież zbiorem niesprzecznym. Niech Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi(x)} będzie dowolnąformułą nad Σ(C) o jednej zmiennej wolnej i załóżmy, żeParser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma\not\vdash_H \forall x\,\var\varphi(x)} . Niech Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi(x)=\var\varphi_n(x)} , dla pewnego </math>nParser nie mógł rozpoznać (błąd składni): {\displaystyle . Oczywiście mamy } \Gamma_n\not\vdash_H\forall x\,\var\varphi_n(x)</math> i z konstrukcji zbiorów Γn wynika,że </math>\Gamma_{n+1}\vdash_H \neg\var\varphi_n(c_n/x)</math>. Zatem Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma\vdash_H \neg\var\varphi_n(c_n/x)} , codowodzi C-nasycenia zbioru Γ.\end{dowod}

Niech CsbseteqΣ0 będzie dowolnym zbiorem stałych i niech Γ będzie dowolnym C-nasyconym zbiorem zdań nad Σ.W zbiorze C definiujemy relację równoważności :

Zdefiniujemy strukturę 𝔄Γ. Nośnikiem tej struktury jest zbiór ilorazowy C/. Musimyokreślić interpretację symboli operacji i relacji z Σ. Dlaprzykładu załóżmy, że fΣ2F jest symbolem operacjidwuargumentowej. Funkcję f𝔄Γ:(C/)2C/ definiujemy warunkiem

</math>Dla pokazania, że f𝔄Γ jest dobrze określoną funkcjąmusimy sprawdzić, że: Dla dowolnych c1,c2C istnieje dCtakie, że ΓHf(c1,c2)=d Jeśli c1c1, c2c2 oraz ΓHf(c1,c2)=d i ΓHf(c1,c2)=d, to dd.Własność (#eq-zwart-1) wynika z faktu, że zbiór Γ jest</math>CParser nie mógł rozpoznać (błąd składni): {\displaystyle -nasycony. Zauważmy najpierw, że } \Gamma\vdash_H\neg\forall x\,\negf(c_1,c_2)=xParser nie mógł rozpoznać (błąd składni): {\displaystyle . Istotnie, załóżmy } \forall x\,\negf(c_1,c_2)=xParser nie mógł rozpoznać (błąd składni): {\displaystyle . Wówczas z aksjomatu (A6) dostajemy } \negf(c_1,c_2)=f(c_1,c_2)</math>. Z drugiej strony, z aksjomatu (A7) i (A6)dostajemy f(c1,c2)=f(c1,c2). Tak więc otrzymujemy , a więcΓH¬x¬f(c1,c2)=x. Zatem zC-nasycenia Γ wynika istnienie stałej dC takiej, żeΓH¬¬f(c1,c2)=d. Korzystając teraz z (A3)dostajemy ΓHf(c1,c2)=d.

Własność (#eq-zwart-2) wynika natychmiast z następującej postaciaksjomatu (A8) (postać tę otrzymujemy z (A8) z pomocą aksjomatu (A6)) Parser nie mógł rozpoznać (nieznana funkcja „\WTW”): {\displaystyle ([c_1]_\sim,[c_2]_\sim)\in r^{\mathfrak A_\Gamma}\WTW \Gamma\vdash_H <!--%-->Interpretacja symboli relacji w <math>\mathfrak A_\Gamma} wygląda podobnie. Dlaprzykładu zdefiniujemy relację </math>r^{\mathfrak A_\Gamma}dlasymbolur\in\Sigma_2^R</math>.

</math>W tym przypadku również musimy dowieść poprawności definicji(tzn. niezależności od wyboru reprezentantów). Czyli musimypokazać, że jeśli c1c1 oraz c2c2, to