Modele
Dotychczas wprowadziliśmy rachunek predykatów aksjomatycznie. Zaletą takiego definiowania jest niewielka ilość potrzebnych pojęć. Z drugiej strony jednak dowody z aksjomatów są żmudne i nie sprzyjają budowaniu intuicji. W przypadku rachunku zdań widzieliśmy, że ten sam zbiór formuł można równoważnie zdefiniować za pomocą matrycy Boolowskiej z Wykładu 2. Niestety w przypadku rachunku predykatów nie istnieje taka skończona struktura, która pozwalałaby nam stwierdzać czy formuła jest twierdzeniem. Zobaczymy jednak, że pewne struktury warto rozważać. Mówiąc o modelach będziemy musieli użyć naiwnej teorii zbiorów opisanej w pierwszym rozdziale. Decydujemy się na to nadużycie w celu zdobycia dobrych intuicji i sprawności w posługiwaniu się kwantyfikatorami.
Przykład 4.1.
Rozważmy następujące zdanie
\( \forall_x \exists_y x \prec y \)
Sytuacja 1.
- Przypuśćmy, że to zdanie mówi o liczbach naturalnych, a \( x \prec y \) jest prawdą wtedy i tylko wtedy gdy liczba \( \mathrm {x} \) jest silnie mniejsza od liczby \( \mathrm {y} \). Wtedy zdanie to powinniśmy uznać za nieprawdziwe, gdyż dla liczby 0 nie istnieje silnie mniejsza liczba naturalna.
Sytuacja 2.
- Przypuśćmy, że to zdanie mówi o liczbach całkowitych, a \( x \prec y \) jest prawdą wtedy i tylko wtedy gdy liczba \( \mathrm {x} \) jest silnie mniejsza od liczby \( \mathrm {y} \). Wtedy zdanie to powinniśmy uznać prawdziwe. Istotnie, dla każdej liczby całkowitej \( \mathrm {x} \) możemy dobrać liczbę \( \mathrm {y} \) (na przykład równą \( x-1 \)) która jest od niej silnie mniejsza.
Sytuacja 3.
- Przypuśćmy, że to zdanie mówi o liczbach naturalnych, a \( x \prec y \) jest prawdą wtedy i tylko wtedy gdy liczba \(\mathrm {x} \) jest równa liczbie \( \mathrm {y} \). Wtedy zdanie to powinniśmy uznać prawdziwe (do każdej liczby \( \mathrm {x} \) możemy dobrać liczbę \( \mathrm {y} \) tak aby była równa \( \mathrm {x} \)).
Powyższe przykłady pokazują różne interpretacje tej samej formuły. Wydaje się również że prawdziwość zdania zmienia się w zależności od interpretacji. Aby mówić o interpretacji danej formuły powinniśmy powiedzieć w jakim zbiorze będziemy interpretować zmienne i stałe (w naszym przykładzie były to kolejno zbiory \( N, Z, N \)) oraz jak interpretujemy symbole funkcyjne i predykatywne (w naszym przykładzie występował jedynie symbol predykatywny \( \prec \) który był interpretowany kolejno jako silna mniejszość, silna mniejszość, równość). Poniżej definiujemy formalnie pojęcie modelu.
Definicja 4.2. [Model]
Modelem języka rachunku predykatów nazywamy \( M=(D,I) \), gdzie:
- 1. \( D \) - jest niepustym zbiorem (dziedziną).
- 2. \( \mathrm {I} \) - jest interpretacją symboli języka taką, że:
-
- (a) dla symboli stałych: \( I(c)\in D \) (symbole stałych są interpretowane jako elementy dziedziny)
-
- (b) dla symboli funkcyjnych: \( I(f):D^k \rightarrow D \), gdzie \( \mathrm {k} \) jest ilością argumentów \( \mathrm {f} \) (symbole funkcyjne są interpretowane jako funkcje z potęgi dziedziny w dziedzinę)
-
- (c) dla symboli predykatów: \( I(p):D^k \rightarrow {0,1} \), gdzie \( k \) jest ilością argumentów \( \mathrm {p} \) (symbole predykatywne są interpretowane jako funkcje przekształcające ciągi elementów z dziedziny w prawdę lub fałsz)
Definicja 4.3.
Mówimy, że model \( M \) jest odpowiedni dla formuły \( {\phi} \) jeśli są w nim zdefiniowane interpretacje wszystkich symboli stałych funkcji oraz predykatów występujących w formule \( {\phi} \).
Zanim ustalimy co to znaczy że formuła jest prawdziwa w modelu zdefiniujemy tzw. wartościowanie zmiennych
Definicja 4.4.
Wartościowanie zmiennych modelu \( M=(D,I) \) to funkcja która zmiennym przypisuje wartości dziedziny.
Jeśli ustalimy już wartościowanie zmiennych w modelu to możemy też mówić o wartościach przyjmowanych przez termy.
Definicja 4.5. [Wartościowanie termów]
Przy ustalonym modelu \( M=(D,I) \) wartościowanie zmiennych \( \sigma \) możemy rozszerzyć na wszytekie termy. Oznaczymy je przez \( \hat{\sigma} \). Rozszerzenie definiujemy w następujący sposób
- 1. jeśli term \( \mathrm {t} \) jest zmienną, \( \hat{\sigma}(t) = \sigma(t) \)
- 2. jeśli term \( \mathrm {t} \) jest stałą, to \( \hat{\sigma}(t)=I(t) \) (stałe wartościujemy zgodnie z interpretacją w modelu)
- 3. jeśli term \( \mathrm {t} \) jest postaci \( f(t_0,..,t_n) \), to
\( \hat{\sigma}(f(t_0,..,t_n))= I(f)(\hat{\sigma}(t_0),..,\hat{\sigma}(t_n)) \)
czyli aby poznać wartość termu najpierw obliczamy wartości poddtermów a potem obliczamy wartość funkcji odpowiadającej w modelu \( M \) symbolowi \( \mathrm {f} \) na wartościach poddtermów. Funkcję wartościującą termy będziemy często oznaczali tym samym symbolem co wartościowanie zmiennych.
Przykład 4.6.
Przypuśćmy, że w rozważanym języku symbol \( o \) jest symbolem stałej, symbole \( s,+,\times \) są symbolami funkcji, symbole \( < ,= \) są symbolami predykatów, \( {x,y,z} \) są zmiennymi. Ustalmy model w którym dziedziną jest zbiór liczb naturalnych, a symbole są interpretowane zgodnie z ich zwyczajowym znaczeniem (\( \mathrm {s} \) będziemy interpretować jako jednoargumentową funkcję która każdej liczbie przypisuje liczbę większą o jeden, \( o \) interpretujemy jako 0). Jeśli ustalimy ocenę zmiennych tak, że \( \sigma(x)=2, \sigma(y)=3, \sigma(z)=5 \) to
- 1. term \( {x+y} \) będzie wartościowany na 5
- 2. term \( s(x) \) będzie wartościowany na 3
- 3. term \( o \) będzie wartościowany na 0 (zgodnie z interpretacją stałych)
- 4 term \( s(o) \times s(z) \) będzie wartościowany na 6
Definicja 4.7. [Waluacja formuł]
Zdefiniujemy teraz prawdziwość formuł w ustalonym modelu \( M=(D,I) \) przy ustalonym wartościowaniu zmiennych \( {\sigma} \).
- 1. Jeśli formuła jest postaci \( p(t_0,..,t_n) \) (czyli jest formułą atomową), to jest ona prawdziwa wtedy i tylko wtedy jeśli wartością predykatu odpowiadającego w modelu \( M \) symbolowi \( \mathrm {p} \) (czyli \( I(p) \)) na elementach dziedziny odpowiadających termom \( t_0, \dots, t_n \) jest prawdą.
- 2. Jeśli formuła jest postaci \( A\Rightarrow B \), to jest ona prawdziwa wtedy i tylko wtedy, gdy formuła \( \mathrm {A} \) jest wartościowana na fałsz lub formuła \( B \) jest wartościowana na prawdę (zgodnie z tabelą dla implikacji)
- 3. Jeśli formuła jest postaci \( \neg A \) to jest ona prawdziwa wtedy i tylko wtedy gdy formuła \( \mathrm {A} \) jest wartościowana na fałsz (zgodnie z tabelą dla negacji)
- 4. Jeśli formuła jest postaci \( \forall_x \; A \), to jest ona prawdziwa jeśli prawdziwe jest \( \mathrm {A} \) i dla każdego wartościowania zmiennych różniącego się od \( {\sigma} \) co najwyżej interpretacją symbolu \( \mathrm {x} \) prawdziwe jest \( \mathrm {A} \).
- 5. Jeśli formuła jest postaci \( \exists_x \; A \), to jest ona prawdziwa jeśli istnieje ocena zmiennych różniąca się od \( {\sigma} \) co najwyżej interpretacją symbolu \( \mathrm {x} \) taka, że przy tej ocenie prawdziwe jest \( \mathrm {A} \).
Interpretacje kwantyfikatorów, jest w gruncie rzeczy bardzo intuicyjna. Formuła \( \forall_x A \) jest prawdziwa wtedy i tylko wtedy gdy dla każdego elementu dziedziny ,,podstawionego" w miejsce \( \mathrm {x} \) w formule \( \mathrm {A} \) prawdziwa jest formuła \( \mathrm {A} \) (uwaga! podstawiamy jedynie w miejsca wolnych wystąpień \( \mathrm {x} \)). Analogicznie formuła \( \exists_x A \) jest prawdziwa wtedy i tylko wtedy gdy istnieje taki element dziedziny, który ,,podstawiony" w miejsce \( \mathrm {x} \) w formule \( \mathrm {A} \) uczyni ją prawdziwa. Dotąd rozważaliśmy kwantyfikator \( \exists \) jako skrót pewnego napisu, jednak ze względu na jego naturalną interpretacje zdecydowaliśmy się dodać go do definicji waluacji formuł. W ćwiczeniu 4 pokażemy, że zdefiniowana powyżej waluacja formuł z kwantyfikatorem egzystencjalnym jest zgodna z waluacją zdefiniowanego wcześniej skrótu.
Przykład 4.8.
Możemy teraz powiedzieć, że formuła
\( \forall_y (x < y \vee x=y) \)
jest prawdziwa w modelu z Przykładu 4.6 przy ocenie zmiennych \( \sigma_1 \) takiej, że \( \sigma_1(x)=0 \), oraz że jest fałszywa w tym samym modelu dla przy ocenie zmiennej \( \sigma_2 \) takiej, że \( \sigma_2(x)=7 \) (bo na przykład wartościując \( \mathrm {y} \) na 3 formuła \( x < y \vee x=y \) nie będzie prawdziwa).
Istnieją jednak formuły które są prawdziwe w modelu z Przykładu 4.6 niezależnie od oceny zmiennych. Przykładem może być
\( \forall_y (x < y+x \vee y=o). \)
Definicja 4.9.
Formuła \( {\phi} \) jest prawdziwa w modelu \( M \) jeśli jest prawdziwa w tym modelu przy każdej ocenie zmiennych. Mówimy wtedy, że model \( M \) jest modelem formuły \( {\phi} \).
Ciekawe, że istnieją również formuły które są prawdziwe we wszystkich modelach. Rozważmy formułę
\( (\forall_x p(x)) \Rightarrow (\exists_x p(x)). \quad \mbox{(4.1)} \)
Rozważmy dowolny model \( M \) odpowiedni dla powyższej formuły (odpowiedni to znaczy taki który ustala interpretację wszystkich symboli stałychm, funkcji i predykatów występujących w formule, w tym przypadku symbolu predykatywnego \( \mathrm {p} \)). Jeśli w tym modelu nie jest prawdziwa formuła \( (\forall_x p(x)) \) to cała implikacja 4.1 jest prawdziwa a więc wszystkie te modele są modelami formuły 4.1. Pozostają więc do rozważenia te modele w których prawdziwe jest \( (\forall_x p(x)) \). Weźmy dowolny taki model i oznaczmy go przez \( M \). Aby pokazać, że \( (\exists_x p(x)) \) jest prawdziwe w \( M \) wystarczy wskazać że istnieje w dziedzinie taka wartość, że podstawiona w miejsce \( \mathrm {x} \) uczyni predykat oznaczony przez \( \mathrm {p} \) prawdziwym. Formuła \( (\forall_x p(x)) \) jest prawdziwa w \( M \) więc każda wartość podstawiona pod \( \mathrm {x} \) czyni predykat odpowiadający \( \mathrm {p} \) prawdziwym. Ponieważ dziedzina modelu \( M \) zgodnie z definicją 4.2 nie może być pusta więc istnieje przynajmniej jeden element dziedziny. Ponieważ w dziedzinie istnieje przynajmiej jeden element, oraz że formuła \( {p(x)} \) jest prawdziwy niezależnie od tego co podstawimy w miejsce \( \mathrm {x} \), to rzeczywiście istnieje taki element dziedziny, który podstawiony w miejsce \( \mathrm {x} \) uczyni formułę \( {p(x)} \) prawdziwą. A więc formuła \( \exists_x p(x) \) również jest prawdziwa. Wobec tego cała implikacja 4.1 jest prawdziwa w \( M \). Pokazaliśmy więc, że formuła 4.1 jest prawdziwa w każdym modelu.
Definicja 4.10.
Formułę rachunku predykatów nazywamy tautologią rachunku predykatów jeśli jest prawdziwa w każdym odpowiednim dla niej modelu .
Podobnie jak klasycznym rachunku zdań, w rachunku predykatów również tautologie okazują się tym samym co twierdzenia. Mówi o tym następujące klasyczne twierdzenie udowodnione przez Kurta Gödela.
Formuła rachunku predykatów jest tautologią rachunku predykatów wtedy i tylko wtedy gdy jest twierdzeniem rachunku predykatów.
Dowód powyższego twierdzenia jest przedstawiony na wykładzie Logika dla informatyków. Zauważmy, że zgodnie z powyższym twierdzeniem aby udowodnić, że formuła nie jest twierdzeniem rachunku predykatów wystarczy wskazać model w którym nie jest prawdziwa.
Ćwiczenie 4.1
Rozważmy model \( M \), którego dziedziną będą liczby naturalne, oraz w którym jest jeden predykat binarny oznaczony symbolem \( \mathrm {p} \), który przyjmuje wartość prawdy jeśli pierwszy z jego argumentów dzieli drugi. Napisz formuły które w modelu \( M \) są równowążne następującym zdaniom (w kolejnych formułach można wykorzystywać skróty dla formuł zdefiniowanych wcześniej)
- 1. \( \mathrm {x} \) jest równe \( \mathrm {y} \)
- 2. \( \mathrm {x} \) jest zerem
- 3. \(\mathrm {x} \) jest jedynką
- 4. \( \mathrm {x} \) jest liczbą pierwszą
- 5. \( \mathrm {x} \) jest kwadratem pewnej liczby pierwszej
- 6. \( \mathrm {x} \) jest iloczynem dwóch różnych liczb pierwszych
- 7. \( \mathrm {x} \) jest iloczynem dwóch liczb pierwszych
- 8. \(\mathrm {x} \) jest potęgą liczby pierwszej
- 9. dla każdych dwóch liczb istnieje ich największy wspólny dzielnik
- 10. dla każdych dwóch liczb istnieje ich najmniejsza wspólna wielokrotność
- 11 liczby \( \mathrm {x} \) i \( \mathrm {y} \) są względnie pierwsze
Ćwiczenie 4.2
Rozważmy model \( M \), którego dziedziną będą wszytkie punkty, odcinki i okręgi płaszyczny, oraz w którym jest jeden predykat binarny oznaczony symbolem \( \mathrm {p} \), który przyjmuje wartość prawdy jeśli jego argumenty mają przynajmniej jeden punkt wspólny. Napisz formuły które w modelu \( M \) są równowążne następującym zdaniom (w kolejnych formułach można wykorzystywać skróty dla formuł zdefiniowanych wcześniej)
- 1. \( \mathrm {x} \) jest równe \( \mathrm {y} \)
- 2. \( \mathrm {x} \) jest nadzbiorem \( \mathrm {y} \)
- 3. \( \mathrm {x} \) jest punktem
- 4. \( \mathrm {x} \) jest odcinkiem
- 5. \( \mathrm {x} \) jest okręgiem
- 6. \( \mathrm {x} \) jest równoległe do \( \mathrm {y} \)
- 7. \( \mathrm {x} \) i \( \mathrm {y} \) mają dokładenie jeden punkt wspólny
- 8. okręgi \( \mathrm {x} \) i \( \mathrm {y} \) są do siebie styczne
- 9. okręgi \( \mathrm {x} \) i \( \mathrm {y} \) są do siebie wewnętrznie styczne i okrąg \( \mathrm {x} \) jest okręgiem wewnętrznym
- 10. okręgi \( \mathrm{x} \) i \( \mathrm {y} \) są do siebie zewnętrzenie styczne
- 11. punkt \(\mathrm {x} \) jest końcem odcinka \( \mathrm {y} \)
- 12. odcinek \(\mathrm {x} \) jest styczny do okręgu \( \mathrm {y} \)
- 13. okręgi \( \mathrm{x} \) i \( \mathrm {y} \) mają taką samą średnicę
- 14. okrąg \( \mathrm {x} \) ma średnicę mniejszą niż okrąg \( \mathrm {y} \)
Ćwiczenie 4.6
Rozważmy formułę \( \forall_x (\neg g(x,x) \Leftrightarrow g(b,x)) \) (golibroda \( b \) goli wszystkich tych i tylko tych, którzy nie golą się sami). Udowodnij, że nie istnieje model dla powyższej formuły.