Logika i teoria mnogości/Wykład 3: Rachunek predykatów, przykład teorii w rachunku predykatów

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Wprowadzenie

Na początku rozdziału o logice zdaniowej rozważaliśmy zdanie

Jeśli n jest liczbą pierwszą to n jest liczbą nieparzystą lub n jest równe 2.

Opisaliśmy je wtedy formułą

p(qr)

w której p,q,r odpowiadały odpowiednio zdaniom

1. n jest liczbą pierwszą,
2. n jest liczbą nieparzystą,
3. n jest równe 2.

Podstawiając zamiast zdania n jest liczbą pierwszą zmienną zdaniową p ukrywamy jednak część informacji. Zdanie to mówi przecież o pewnej liczbie n, co więcej zdania p,q i r dotyczą tej samej liczby n. Zapiszmy więc p(n) zamiast p aby podkreślić fakt że prawdziwość p zależy od tego jaką konkretną wartość przypiszemy zmiennej n. Zdanie p(n) będzie prawdziwe jeśli za n podstawimy jakąś liczbę pierwszą i fałszywe w przeciwnym przypadku. Zgodnie z tą konwencją nasze zdanie przyjmie postać

p(n)(q(n)r(n))

Zwróćmy uwagę jednak, że trudno ocenić prawdziwość zdania p dopóki nie podstawimy w miejsce n jakiejś konkretnej liczby. Z drugiej strony jednak zdanie jakąkolwiek liczbę nie postawimy w miejsce n zdanie będzie prawdziwe. Możemy więc przeformułować je jako

Dla każdej liczby naturalnej n, jeśli n jest liczbą pierwszą to n jest liczbą nieparzystą lub n jest równe 2.

Aby móc formalnie zapisywać zdania takie jak powyższe wprowadzimy kwantyfikator który będzie oznaczał ,,dla każdego" oraz który będzie oznaczał ,,istnieje". Każde wystąpienie kwantyfikatora będzie dotyczyło pewnej zmiennej. W naszym przykładzie napiszemy

np(n)(q(n)r(n)).(1.1)

Możemy teraz powiedzieć, że powyższa formuła jest prawdziwa w zbiorze liczb naturalnych, gdzie p(n),q(n),r(n) będą oznaczać odpowiednio n jest liczbą pierwszą, n jest liczbą nieparzystą, n jest równe 2.

Przy tej samej interpretacji p(n),q(n) moglibyśmy wyrazić zdanie

Istnieje parzysta liczba pierwsza.

jako

np(n)¬q(n)(1.2)

Język rachunku predykatów

Podobnie jak dla rachunku zdań zaczniemy od zdefiniowania języka rachunku predykatów.

Definicja 2.1.

Alfabet języka rachunku predykatów składa się z:

1. symboli stałych (a,b,c,)
2. symboli zmiennych (x,y,z,)
3. symboli funkcji (f1,f2,f3,,g1,g2,g3,,h1,h2,h3,)
4. symboli predykatów (p1,p2,p3,,q1,q2,q3,,r1,r2,r3,)
5. spójników logicznych: ,¬
6. kwantyfikatorów: ,
7. nawiasów i przecinków (niekonieczne)

Przyjmujemy, że cztery pierwsze alfabety są nieskończone, w tym sensie że nigdy nam nie braknie ich symboli. Z każdym symbolem funkcyjnym oraz predykatywnym jest związana liczba (którą zapisujemy w indeksie górnym) która będzie oznaczała liczbę jego argumetów.

Zwykle będą nam wystarczały symbole wymienione w nawiasach. Zanim przystąpimy do konstrukcji formuł zdefiniujemy tzw. termy.

Definicja 2.2. [Termy]

1. każdy symbol stałej jest termem
2. każdy symbol zmiennej jest termem
3. jeśli t1,..,tn są termami, a αn jest symbolem funkcyjnym, to αn(t1,..,tn) jest termem
4. nic innego nie jest termem

Przykład 2.3.

Jeśli rozważymy język, w którym 1,2,3 są symbolami stałych, x,y są symbolami zmiennych a +2,×2,1,s1 są symbolami funkcji to poniższe napisy będą termami

1. +2(1,x)
2. 1(3)
3. s1(1(3))
4. ×2(y,+2(x,1(2)))

Dla uproszczenia zapisu będziemy często pomijać liczby opisujące ilość argumentów symbolu. Symbole binarne będziemy czasem zapisywać w notacji infiksowej. Zgodnie z tą konwencją powyższe termy możemy zapisać jako

1. 1+x
2. 3
3. s(3)
4. y×(x+(3))

Kiedy będziemy mówić o modelach zobaczymy, że termy będą interpretowane jako elementy rozważanej dziedziny, np. jeśli tą dziedziną będą liczby naturalne to termy będą interpretowane jako liczby naturalne. Formuły rachunku predykatów zdefiniujemy w dwóch krokach. Zaczniemy od formuł atomowych.

Definicja 2.4. [Formuły atomowe]

Jeśli t1,..,tn są termami, a βn jest symbolem predykatu, to βn(t1,..,tn) jest formułą atomową.

Przykład 2.5.

Kontynuując przykład dotyczący termów przyjmijmy dodatkowo, że w rozważanym języku p3,q1,=2 są symbolami predykatów wtedy formułami atomowymi będą

1. p3(1+x,3,y×(x+(3)))
2. q1(1)
3. =2(y×(x+(3)),2)

Stosując analogiczną konwencję jak dla termów powyższe formuły atomowe zapiszemy jako

1. p(1+x,3,y×(x+(3)))
2. q(1)
3. y×(x+(3))=2

Symbole predykatywne będą odpowiadały funkcjom, które elementom rozważanej dziedziny (lub parom, trójkom itd. elementów) przypisują wartość prawdy lub fałszu. Takie funkcje nazywamy predykatami. W przypadku liczb naturalnych możemy na przykład mówić o predykacie pierwszości p(n), który przyjmuje wartość prawdy jeśli n jest liczbą pierwszą i fałszu w przeciwnym przypadku. Podobnie możemy mówić o binarnym predykacie równości (zwyczajowo oznaczanym przez =). Dla argumentów x,y przyjmuje on wartość prawdy wtedy kiedy x jest tą samą liczbą co y i fałszu w przeciwnym przypadku. Formuły atomowe będą opisywały proste zdania typu x jest liczbą pierwszą, x dzieli y, x jest równe y. Innymi słowy sprowadzają sie do stwierdzania czy dany zestaw argumentów ma pewną własność opisywaną predykatem.

Uwaga 2.6.

W oznaczeniach z poprzednich przykładów, napis y×(x+(3))=q(1) nie jest formułą atomową ani termem. Gdyby predykat q oznaczał np. bycie liczbą nieparzystą to powyższy napis powinniśmy przeczytać jako

y×(x+(3)) jest równe temu, że 1 jest liczbą nieparzystą.

Nie wolno porównywać elementów dziedziny (opisywanych przez termy) z wartościami prawdy i fałszu.

Z formuł atomowych będziemy budować bardziej złożone formuły zgodnie z poniższą definicją

Definicja 2.7. [Formuły rachunku predykatów]

1. Formuły atomowe są formułami.
2. Jeśli AiB są formułami, to (AB) oraz ¬A są formułami.
3. Jeśli A jest formułą i x jest zmienną, to xA jest formułą.
4. Nic innego nie jest formułą.

Przyjmujemy analogiczną konwencję dotyczącą nawiasowania jak dla rachunku zdań.

Przykład 2.8.

W oznaczeniach z poprzednich przykładów poniższe napisy nie są formułami rachunku predykatów

  • x+1
  • (x=1)2
  • x(x+y)
  • x(¬x)

Poniższe napisy są formułami rachunku predykatów

  • x=1
  • x=1x=2
  • xq(x+y)
  • x¬(x=0)
  • xz¬(x=0)
  • xy¬(x=y)

Ćwiczenie 2.1

Z poniższych formuł wypisz wszytkie termy i formuły atomowe

1. xy(s(x)=s(y)x=y)
2. x¬s(x)=0
3. x(¬(x=0)(ys(y)=x))
4. xx+0=x
5. xyx+s(y)=s(x+y)
Rozwiązanie

Często będziemy używać dodatkowych spójników ,,. Ponieważ wszystkie dadzą się zdefiniować przy pomocy i ¬ nie włączamy ich do języka, a napisy w których występują będziemy traktować jako skróty. Ustalmy poniższe definicje

1. ϕψdef¬ϕψ
2. ϕψdef¬(ϕ¬ψ)
3. ϕψdef(ϕψ)(ψϕ)

Kwantyfikator egzystencjalny

Wprowadzimy jeszcze jeden bardzo ważny skrót - kwantyfikator egzystencjalny, oznaczamy go przez i definiujemy w następujący sposób

xϕdef¬(x¬ϕ)

Nieformalnie kwantyfikator egzystencjalny mówi o tym, że istnieje jakiś obiekt, który podstawiony w miejsce x uczyni formułę ϕ prawdziwą. Zdefiniowaliśmy go poprzez równoważne stwierdzenie które mówi że nieprawdą jest, że każdy obiekt podstawiony w miejsce x falsyfikuje ϕ. Zgodnie z powyższą konwencją formułę ze wstępu

n[p(n)¬q(n)]

powinniśmy rozumieć jako

¬n¬(p(n)¬q(n))

Kwantyfikatory ograniczone

Kwantyfikatory ograniczone są skrótami które definujemy następująco

1. x:ϕψdefxϕψ
2. x:ϕψdefxϕψ

i czytamy

1. dla każdego x które spełnia ϕ spełnione jest ψ
2. istnieje x spełniające ϕ które spełnia ψ

Zgodnie z tą konwencją formułę 1.1 możemy zapisać następująco

n:p(n)q(n)r(n)

Podobnie formułę 1.2 zapiszemy jako

n:p(n)¬q(n)

Ćwiczenie 2.2

Wyeliminuj wszystkie skróty z napisu

x:ϕψ
Podpowiedź 1
Podpowiedź 2
Rozwiązanie

Zmienne wolne i związane

Jeśli x jest zmienną, a ϕ jest formułą to każda pozycję w napisie ϕ na której występuje symbol x i nie jest poprzedzony bezpośrednio kwantyfikatorem, nazywamy wystąpieniem zmiennej x. Wystąpienia dzielimy na wolne i związanie. Wystąpienie jest związane jeśli znajduje się ,,pod działaniem" jakiegoś kwantyfikatora.

Definicja 2.9.

Rodzaj wystąpienia zmiennej w formule określamy zgodnie z poniższymi regułami:

1. Jeśli γ jest formułą atomową to wszystkie wystąpienia zmiennych w napisie γwolne.
2. Jeśli formuła jest postaci ϕψ lub ¬ϕ to wystąpienia zmiennych pozostają takie same jak wystąpienia w w ϕ oraz ψ.
3. Jeśli formuła jest postaci xϕ to wszystkie wystąpienia zmiennej x w xϕzwiązane, a wystąpienia innych zmiennych pozostają takie jak w ϕ.

Przykład 2.10.

Rozważamy język z przykładu 2.5 (patrz przykład 2.5.)

1. w formule y×(x+(3))=x wszystkie wystąpienia zmiennych są wolne. Zmienna x ma dwa wystąpienia a zmienna y jedno.
2. w formule xy×(x+(3))=x wszystkie wystąpienia zmiennej y są wolne, i wszystkie wystąpienia zmiennej x są związane     (nadal są tylko dwa wystąpienia x ponieważ zgodnie z definicją nie liczymy symbolu x w x)
3. w formule xyy×(x+(3))=x wszystkie wystąpienia zmiennych x oraz y są związane
4. w formule x=2xx=2 zmienna x ma jedno wystąpienie wolne (pierwsze) i jedno związane (drugie).
5. w formule x(x=2xx=2) obydwa wystąpienia zmiennej x są związane.

Ćwiczenie 2.3

W podanych poniżej formułach podkreśl wszystkie wolne wystąpienia zmiennych.

1. p(z)zp(z)
2. y((zq(y,z))q(y,z))
3. q(x,y)x(q(x,y)(yq(x,y)))
4. xyq(x,y)xyq(x,y)
5. (zp(z))(zq(z,z)xq(z,x))
Rozwiązanie

Definicja 2.11.

Formułę ϕ nazywamy domkniętą jeśli żadna zmienna nie ma wolnych wystąpień w ϕ.

Ćwiczenie 2.4

Które z formuł z ćwiczenia 2.3 są domknięte?

Rozwiązanie

Podstawienia

Często będziemy w formułach zastępować wystąpienia zmiennych pewnymi termami. Częstym przykładem jest podstawienie w miejsce zmiennej pewnej stałej np. w formule xx+y>x, wstawiając w miejsce y stałą 1, otrzymamy xx+1>x.

Definicja 2.10.

Przez [xt]ϕ będziemy oznaczać formułę powstałą przez zastąpienie wszystkich wolnych wystąpień zmiennej x w formule ϕ termem t. Pisząc [xt]ϕ zakładamy również, że w formule ϕ żadna ze zmiennych występujących w termie t nie ma związanych wystąpień w ϕ.

Aksjomatyka Rachunku Predykatów

Rachunek predykatów podobnie jak klasyczny rachunek zdań może być wprowadzony aksjomatycznie. Pierwsza grupa aksjomatów to aksjomaty klasycznego rachunku zdań. Druga dotyczy kwantyfikatora oraz jego interakcji z implikacją. Przypomnijmy, że kwantyfikator traktujemy jako pewien skrót zapisu.

Definicja 3.1.

Schematy aksjomatów rachunku predykatów

1. (Aksjomaty logiki zdaniowej) Każda formuła pasująca do któregokolwiek z poniższych schematów jest tautologią
(a) (ϕ(ψϕ))
(b) (ϕ(νψ)((ϕν)(ϕψ))
(c) (¬ϕψ)((¬ϕ¬ψ)ϕ)
2. (Aksjomaty dotyczące kwantyfikatora)
(a) Dla dowolnej formuły ϕ oraz termu t następująca formuła jest aksjomatem xϕ(ϕ[xt]) (uwaga na podstawienie)
(b) Dla dowolnej formuły ϕ oraz zmiennej x, która nie ma wolnych wystąpień w ϕ następująca formuła jest aksjomatem ϕxϕ
(c) Dla dowolnych formuł ϕ i ψ aksjomatem jest formuła x(ϕψ)((xϕ)(xψ))

Poza tym do aksjomatów dorzucamy również wszystkie generalizacje formuł pasujących do powyższych schematów. Generalizacja formuły jest to ta sama formuła poprzedzona blokiem kwantyfikatorów ogólnych - dla dowolej formuły ϕ oraz dowolnych zmiennych x1,,xk formuła x1xkϕ jest generalizacją ϕ.

Podobnie jak w rachunku zdań dowodem formuły ϕ nazwiemy ciąg formuł ϕ0,,ϕn taki, że ϕn jest tym samym napisem co ϕ a każda formuła ϕi dla i<n jest aksjomatem rachunku predykatów lub powstaje z dwóch formuł występujących wcześniej w dowodzie poprzez zastosowanie reguły Modus Ponens z Wykładu 2.

Definicja 3.2.

Twierdzeniem rachunku predykatów nazywamy dowolną formułę którą da się dowieść z aksjomatów rachunku predykatów.

Przykład 3.3.

Formalne dowody twierdzeń rachunku predykatów są zwykle skomplikowane. Dlatego w rozważanym przykładzie poczynimy kilka uproszczeń. Będziemy się zajmować formułą
p(t)xp(x)

Zamiast dowodzić dokładnie powyższą formułę, dowiedziemy podobny fakt, a mianowicie, że jeśli dołączymy do zbioru aksjomatów formułę p(t), to będziemy w stanie udowodnić xp(x). Twierdzenie o dedukcji, które można znaleźć w wykładzie Logika dla informatyków, mówi, że te podejścia są równoważne.

W poniższym dowodzie pominiemy również dowód formuły ¬¬x¬p(x)x¬p(x). Formuła ta pasuje do schematu ¬¬ϕϕ. Łatwo więc sprawdzić, że formuła ¬¬ϕϕ jest tautologią klasycznego rachunku zdań, a więc -- w myśl twierdzenia Posta (patrz Wykład 2, Twierdzenie 4.4) -- ma dowód. Po zastąpieniu w tym dowodzie zmiennej ϕ formułą x¬p(x), otrzymamy dowód formuły ¬¬x¬p(x)x¬p(x).

Przestawiamy uproszczony dowód formuły p(t)xp(x):

  1. ¬¬x¬p(x)x¬p(x) (patrz komentarz powyżej)
  2. (x¬p(x))¬p(t) (aksjomat 2a)
  3. [(x¬p(x))¬p(t)]([¬¬x¬p(x)][(x¬p(x))¬p(t)]) (aksjomat 1a)
  4. [¬¬x¬p(x)][(x¬p(x))¬p(t)] (MP z 2 i 3)
  5. ([¬¬x¬p(x)][(x¬p(x))¬p(t)])[(¬¬x¬p(x)x¬p(x))[(¬¬x¬p(x))¬p(t)]] (aksjomat 1b)
  6. (¬¬x¬p(x)x¬p(x))[(¬¬x¬p(x))¬p(t)] (MP z 4 i 5)
  7. (¬¬x¬p(x))¬p(t) (MP z 6 i 1)
  8. p(t)([¬¬x¬p(x)]p(t)) (aksjomat 1a)
  9. p(t) (dołączyliśmy tę formułę jako aksjomat)
  10. [¬¬x¬p(x)]p(t) (MP z 8 i 9)
  11. ([¬¬x¬p(x)]p(t))[((¬¬x¬p(x))¬p(t))¬x¬p(x)] (aksjomat 1c)
  12. (¬¬x¬p(x))¬p(t))¬x¬p(x) (MP z 10 i 11)
  13. ¬x¬p(x) (MP z 7 i 12)

Ostatnia formuła to dokładnie xp(x) po rozpisaniu skrótu .


Przykład teorii w rachunku predykatów

W oparciu o logikę predykatów możemy budować nowe teorie, dokładając inne, tzw. pozalogiczne aksjomaty. W językach wielu teorii pojawia się symbol predykatywny =2, mający symbolizować równość. Ponieważ zwykle wymagamy aby te same własności były spełnione dla =2, zostały wyodrębnione specjalne aksjomaty dla równości. Aksjomaty, te to wszystkie formuły oraz ich generalizacje odpowiadające poniższym schematom:

1. t=t, dla każdego termu t


2. (t1=t1tk=tk)f(t1,,tk)=f(t1,,tk), dla dowolnego symbolu funkcyjnego f, oraz dowolnych termów t1,,tk,t1,,tk, gdzie k jest ilością argumentów symbolu f


3. (t1=t1tk=tk)(p(t1,,tk)p(t1,,tk)), dla dowolnego symbolu predykatywnego p, oraz dowolnych termów t1,,tk,t1,,tk, gdzie k jest ilością argumentów symbolu p


Rozważmy język, w którym mamy jeden binarny symbol predykatywny =2, jeden symbol stałej 0 oraz symbole funkcyjne s1,+2,×2. Zgodnie z przyjętą konwencją termy i formuły będziemy zapisywać infixowo. Do aksjomatów logicznych, oraz aksjomatów dla równości, dokładamy następujące aksjomaty:

1. xy(s(x)=s(y)x=y)
2. x¬s(x)=0
3. x(¬(x=0)(ys(y)=x))
4. xx+0=x
5. xyx+s(y)=s(x+y)
6. xx×0=0
7. xyx×s(y)=x×y+y

Teorią Q nazwiemy wszystkie formuły w ustalonym języku które da się udowodnić z aksjomatów logiki predykatów z dołączonymi aksjomatami równości oraz 1-7. Nietrudno się przekonać, że wszystkie twierdzenia teorii Q są prawdziwe w liczbach naturalnych, przy naturalnej interpretacji występujących symboli (s(x) interpretujemy jako x+1). W następnym wykładzie (patrz Wykład 4) przedstawiamy aksjomatyczną teorię w rachunku predykatów nazywaną teorią mnogości ZFC.

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

xyxy


Sytuacja 1.

Przypuśćmy, że to zdanie mówi o liczbach naturalnych, a xy jest prawdą wtedy i tylko wtedy gdy liczba x jest silnie mniejsza od liczby 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 xy jest prawdą wtedy i tylko wtedy gdy liczba x jest silnie mniejsza od liczby y. Wtedy zdanie to powinniśmy uznać prawdziwe. Istotnie, dla każdej liczby całkowitej x możemy dobrać liczbę y (na przykład równą x1) która jest od niej silnie mniejsza.

Sytuacja 3.

Przypuśćmy, że to zdanie mówi o liczbach naturalnych, a xy jest prawdą wtedy i tylko wtedy gdy liczba x jest równa liczbie y. Wtedy zdanie to powinniśmy uznać prawdziwe (do każdej liczby x możemy dobrać liczbę y tak aby była równa 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 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. I - jest interpretacją symboli języka taką, że:
(a) dla symboli stałych: I(c)D (symbole stałych są interpretowane jako elementy dziedziny)
(b) dla symboli funkcyjnych: I(f):DkD, gdzie k jest ilością argumentów f (symbole funkcyjne są interpretowane jako funkcje z potęgi dziedziny w dziedzinę)
(c) dla symboli predykatów: I(p):Dk0,1, gdzie k jest ilością argumentów 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 ϕ jeśli są w nim zdefiniowane interpretacje wszystkich symboli stałych funkcji oraz predykatów występujących w formule ϕ.

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 σ możemy rozszerzyć na wszytekie termy. Oznaczymy je przez σ^. Rozszerzenie definiujemy w następujący sposób

1. jeśli term t jest zmienną, σ^(t)=σ(t)
2. jeśli term t jest stałą, to σ^(t)=I(t) (stałe wartościujemy zgodnie z interpretacją w modelu)
3. jeśli term t jest postaci f(t0,..,tn), to

σ^(f(t0,..,tn))=I(f)(σ^(t0),..,σ^(tn))

czyli aby poznać wartość termu najpierw obliczamy wartości poddtermów a potem obliczamy wartość funkcji odpowiadającej w modelu M symbolowi 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,+,× 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 (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 σ(x)=2,σ(y)=3,σ(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)×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 σ.

1. Jeśli formuła jest postaci p(t0,..,tn) (czyli jest formułą atomową), to jest ona prawdziwa wtedy i tylko wtedy jeśli wartością predykatu odpowiadającego w modelu M symbolowi p (czyli I(p)) na elementach dziedziny odpowiadających termom t0,,tn jest prawdą.
2. Jeśli formuła jest postaci AB, to jest ona prawdziwa wtedy i tylko wtedy, gdy formuła 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 ¬A to jest ona prawdziwa wtedy i tylko wtedy gdy formuła A jest wartościowana na fałsz (zgodnie z tabelą dla negacji)
4. Jeśli formuła jest postaci xA, to jest ona prawdziwa jeśli prawdziwe jest A i dla każdego wartościowania zmiennych różniącego się od σ co najwyżej interpretacją symbolu x prawdziwe jest A.
5. Jeśli formuła jest postaci xA, to jest ona prawdziwa jeśli istnieje ocena zmiennych różniąca się od σ co najwyżej interpretacją symbolu x taka, że przy tej ocenie prawdziwe jest A.

Interpretacje kwantyfikatorów, jest w gruncie rzeczy bardzo intuicyjna. Formuła xA jest prawdziwa wtedy i tylko wtedy gdy dla każdego elementu dziedziny ,,podstawionego" w miejsce x w formule A prawdziwa jest formuła A (uwaga! podstawiamy jedynie w miejsca wolnych wystąpień x). Analogicznie formuła xA jest prawdziwa wtedy i tylko wtedy gdy istnieje taki element dziedziny, który ,,podstawiony" w miejsce x w formule A uczyni ją prawdziwa. Dotąd rozważaliśmy kwantyfikator 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

y(x<yx=y)

jest prawdziwa w modelu z Przykładu 4.6 przy ocenie zmiennych σ1 takiej, że σ1(x)=0, oraz że jest fałszywa w tym samym modelu dla przy ocenie zmiennej σ2 takiej, że σ2(x)=7 (bo na przykład wartościując y na 3 formuła x<yx=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ć

y(x<y+xy=o)

Definicja 4.9.

Formuła ϕ 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 ϕ.

Ciekawe, że istnieją również formuły które są prawdziwe we wszystkich modelach. Rozważmy formułę

(xp(x))(xp(x)).(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 p). Jeśli w tym modelu nie jest prawdziwa formuła (xp(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 (xp(x)). Weźmy dowolny taki model i oznaczmy go przez M. Aby pokazać, że (xp(x)) jest prawdziwe w M wystarczy wskazać że istnieje w dziedzinie taka wartość, że podstawiona w miejsce x uczyni predykat oznaczony przez p prawdziwym. Formuła (xp(x)) jest prawdziwa w M więc każda wartość podstawiona pod x czyni predykat odpowiadający 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 x, to rzeczywiście istnieje taki element dziedziny, który podstawiony w miejsce x uczyni formułę p(x) prawdziwą. A więc formuła xp(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.

Kurt Goedel (1906-1978)
Zobacz biografię

Twierdzenie 4.11. [Kurt Gödel]

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 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. x jest równe y
2. x jest zerem
3. x jest jedynką
4. x jest liczbą pierwszą
5. x jest kwadratem pewnej liczby pierwszej
6. x jest iloczynem dwóch różnych liczb pierwszych
7. x jest iloczynem dwóch liczb pierwszych
8. 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 x i y są względnie pierwsze
Podpowiedź
Rozwiązanie

Ć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 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. x jest równe y
2. x jest nadzbiorem y
3. x jest punktem
4. x jest odcinkiem
5. x jest okręgiem
6. x jest równoległe do y
7. x i y mają dokładenie jeden punkt wspólny
8. okręgi x i y są do siebie styczne
9. okręgi x i y są do siebie wewnętrznie styczne i okrąg x jest okręgiem wewnętrznym
10. okręgi x i y są do siebie zewnętrzenie styczne
11. punkt x jest końcem odcinka y
12. odcinek x jest styczny do okręgu y
13. okręgi x i y mają taką samą średnicę
14. okrąg x ma średnicę mniejszą niż okrąg y
Podpowiedź
Rozwiązanie

Ć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.
Rozwiązanie

Ćwiczenie 4.4

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

1. xyp(x,y)p(y,x)
2. (xyp(x,y))yxp(x,y)
3. (x(p(x)q(x)))(x(p(x))xq(x))
4. y[(x(p(x)q(x))q(y))p(z)]
5. xy(p(x,y)z(p(x,z)p(z,y))
Rozwiązanie

Ćwiczenie 4.5

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

1. xp(x)(p(c))
2. p(c)xp(c)
3. x(p(x)q(x))((xp(x))(xq(x)))
4. xp(x)¬x¬p(x)
5. ¬xp(x)x¬p(x)
6. xr(x,f(x))xyr(x,y)
Rozwiązanie

Ćwiczenie 4.6

Rozważmy formułę

x(¬g(x,x)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.

Rozwiązanie