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 A i B są formułami, to (A⇒B) 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
-
-
-
-
Poniższe napisy są formułami rachunku predykatów
-
-
-
-
-
-
Ćwiczenie 2.1
Z poniższych formuł wypisz wszytkie termy i formuły atomowe
- 1. ∀x∀y(s(x)=s(y)⇒x=y)
- 2. ∀x¬s(x)=0
- 3. ∀x(¬(x=0)⇒(∃ys(y)=x))
- 4. ∀xx+0=x
- 5. ∀x∀yx+s(y)=s(x+y)
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:ϕψdef≡∀xϕ⇒ψ
- 2. ∃x:ϕψdef≡∃xϕ∧ψ
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:ϕψ
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 γ są 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ϕ są 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 ∀x∃yy×(x+(−3))=x wszystkie wystąpienia zmiennych x oraz y są związane
- 4. w formule x=2⇒∃xx=2 zmienna x ma jedno wystąpienie wolne (pierwsze) i jedno związane (drugie).
- 5. w formule ∀x(x=2⇒∃xx=2) obydwa wystąpienia zmiennej x są związane.
Ćwiczenie2.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. ∀x∃yq(x,y)⇒∃x∀yq(x,y)
- 5. (∃zp(z))⇒(∀zq(z,z)∨∃xq(z,x))
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?
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 [xarrowt]ϕ będziemy oznaczać formułę powstałą przez zastąpienie wszystkich wolnych wystąpień zmiennej x w formule ϕ termem t. Pisząc [xarrowt]ϕ zakładamy również, że w formule ϕ żadna ze zmiennych występujących w termie t nie ma związanych wystąpień w ϕ.