Modele

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.3

Napisz formuły które mówią:

  • każdy odcinek ma dokładnie dwa końce
  • dla każdego okręgu wszystkie jego średnice przecinają się w dokładnie jednym punkcie
  • dla dowolnego odcinka istnieje dłuższy odcinek, który go zawiera
  • dla dowolnych trzech punktów niewspółliniowych istnieje okrąg który przechodzi przez wszystkie trzy punkty
  • istnieją dwa okręgi, które przecinają się w dokładnie 5 punktach.

Ćwiczenie4.4
Dla każdej z poniższych formuł znajdź model w którym jest prawdziwa oraz model w którym jest fałszywa

1. \( \forall_x \forall_y p(x,y) \Rightarrow p(y,x) \)
2. \( (\forall_x \exists_y p(x,y)) \Rightarrow \exists_y \forall_x p(x,y) \)
3. \( (\forall_x (p(x)\vee q(x))) \Rightarrow (\forall_x(p(x)) \vee \forall_x q(x)) \)
4. \( \forall_y [(\forall_x (p(x) \Rightarrow q(x)) \wedge q(y)) \Rightarrow p(z)] \)
5. \( \forall_x \forall_y(p(x,y) \Rightarrow \exists_z (p(x,z)\wedge p(z,y)) \)

Ćwiczenie 4.5

Udowodnij, że w dowolnym ustalonym modelu \( M \) prawdziwe są następujące formuły

1. \( \forall_x p(x) \Rightarrow (p(c)) \)
2. \( p(c) \Rightarrow \forall_x p(c) \)
3. \( \forall_x(p(x) \Rightarrow q(x)) \Rightarrow ((\forall_x p(x))\Rightarrow(\forall_x q (x))) \)
4. \( \exists_x p(x) \Leftrightarrow \neg \forall_x \neg p(x) \)
5. \( \neg \forall_x p(x) \Leftrightarrow \exists_x \neg p(x) \)
6. \( \forall_x r(x, f(x)) \Rightarrow \forall_x \exists_y r(x,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.