Download as pdf or txt
Download as pdf or txt
You are on page 1of 51

Jezyk

˛ rachunku predykatów

1 Zmienne x, y , z . . .
2 Predykaty n-argumentowe P(x, y , . . . ), Q(x, y . . . ), . . .
3 Funktory zdaniowe ∼, ∧, ∨, →, ≡
4 Kwantyfikatory: istnieje ∃, dla każdego ∀

Adam Kasperski Logika pragmatyczna 2022/2023


Jezyk
˛ rachunku predykatów

Ustalenie dziedziny (uniwersum) U dla zmiennych x, y , z . . .


oraz określenie predykatów P, Q, R, . . . w U nazywamy inter-
pretacja.
˛

Adam Kasperski Logika pragmatyczna 2022/2023


Przykłady

1 U = {0, 1, 2, . . . } jest zbiorem liczb naturalnych.


P(x) - x jest liczba˛ parzysta.˛
Q(x, y ) - x jest wieksze
˛ od y .
R(x, y , z) - z jest suma˛ x i y .

2 U - zbiór wszystkich ludzi.


P(x) - x jest kobieta. ˛
Q(x, y ) - x jest rodzicem y .
R(x, y , z) - x, y , z sa˛ rodzeństwem.

3 U - zbiór wszystkich trójkatów.


˛
P(x) - x jest prostokatny.
˛
Q(x, y ) - x jest podobny do y .

Adam Kasperski Logika pragmatyczna 2022/2023


Jezyk
˛ rachunku predykatów

Jeżeli w predykacie P(x, y , . . . ) przypiszemy zmiennym x, y , . . .


określone wartości z uniwersum U to otrzymamy zdanie lo-
giczne.

Przykład: U = {0, 1, 2, . . . }, P(x, y ) - x jest wieksze


˛ od y .
P(3, 4) jest zdaniem fałszywym
P(5, 2) jest zdaniem prawdziwym.

Predykaty 0-argumentowe P, Q, . . . możemy traktować jako


zwykłe zdania logiczne. Jezyk
˛ rachunku predykatów obejmuje
wiec
˛ jezyk
˛ klasycznego rachunku zdań.

Adam Kasperski Logika pragmatyczna 2022/2023


Formuły rachunku predykatów

Predykat jest formuła˛ rachunku predykatów.


Jeżeli φ i ψ sa˛ formułami rachunku predykatów, to ∼ (φ),
(φ) ∨ (ψ), (φ) ∧ (ψ), (φ) → (ψ), (φ) ≡ (ψ) sa˛ formułami
rachunku predykatów.
Jeżeli φ jest formuła˛ rachunku predykatów a v jest zmienna˛
wolna˛ w φ, to ∃v (φ) i ∀v (φ) sa˛ formułami rachunku predyka-
tów.

Przykłady:
P, P(x), Q(x), P(x, y ), Q(x, y , z), . . .
P ∨ Q(x), P(x) ∧ Q(x), Q(x) → P(x, y ), ∼ P(x) ∧ Q(x), . . .
∃x (P(x)), ∀y (P(x, y )), ∃x (P(x) → Q(x)), . . .
∀y (∃x (P(x) → Q(y )))

Adam Kasperski Logika pragmatyczna 2022/2023


Zasieg
˛ kwantyfikatora

Zasiegiem
˛ kwantyfikatora nazywamy wyrażenie zawarte w na-
wiasie otwartym bezpośrednio po tym kwantyfikatorze.

Przykład:

∃x (P(x, y ) ∧ Q(x)) → R(x)

Zmienna jest zwiazana


˛ jeżeli jest w zasiegu
˛ pewnego kwantyfi-
katora, w którym wystepuje
˛ ta zmienna.

Przykład:

∃x (P(x, y ) ∧ Q(x)) → R(x)

Adam Kasperski Logika pragmatyczna 2022/2023


Opuszczanie nawiasów

Nawiasy można opuścić po kwantyfikatorze jeżeli nie prowadzi


to do niejednoznaczności w określeniu jego zasiegu.
˛

Poprawne:
∃x (P(x)) ≡ ∃x P(x)
∃x (∀y (P(x, y ) → Q(x))) ≡ ∃x ∀y (P(x, y ) → Q(x))
Niepoprawne(!):
∃x (P(x) ∧ Q(x)) ≡ ∃x P(x) ∧ Q(x)

Adam Kasperski Logika pragmatyczna 2022/2023


Formuły zamkniete
˛

Formuła jest zamknieta


˛ jeżeli wszystkie zmienne sa˛ w niej zwia-
˛
zane.

Przykłady formuł zamknietych:


˛
∀x P(x)
∃y ∀x P(x, y )
(∃x P(x)) → (∀x Q(x))
∃x (Q(x) → ∀y P(x, y ))
Ta formuła nie jest zamknieta:
˛

∃x P(x, y )

Adam Kasperski Logika pragmatyczna 2022/2023


Formuły zamkniete
˛

Formuła zamknieta˛ dla określonej interpretacji staje sie˛ zdaniem


logicznym. Zatem posiada określona˛ wartość logiczna: ˛ prawda
lub fałsz. Za pomoca˛ formuł zamknietych
˛ można wyrażać zło-
żone własności badanego uniwersum.

Adam Kasperski Logika pragmatyczna 2022/2023


Formuły zamkniete
˛

Ustalamy uniwersum U = {0, 1, 2, . . . } i predykaty:


P(x) - liczba x jest parzysta.
Q(x) - liczba x jest pierwsza.
R(x, y ) ≡ (x ≤ y ) liczba x jest nie wieksza
˛ od liczby y .
Zdania w tym uniwersum:
Istnieje liczba parzysta: ∃x P(x)
Istnieje najmniejsza liczba naturalna: ∃x ∀y (x ≤ y )
Żadna liczba parzysta wieksza
˛ od 2 nie jest pierwsza:

∼ (∃x (Q(x) ∧ (3 ≤ x) ∧ P(x))

lub równoważnie:

∀x ((P(x) ∧ (3 ≤ x)) →∼ Q(x))

Adam Kasperski Logika pragmatyczna 2022/2023


Formuły zamkniete
˛

Ustalamy uniwersum U - wszyscy filozofowie.


P(x) - filozof x jest madry.
˛
Q(x, y ) - filozof x jest uczniem filozofa y .
Zdania w tym uniwersum:
Filozof jest madry
˛ jeżeli jest uczniem madrego
˛ filozofa.

∀x (∃y (Q(x, y ) ∧ P(y )) → P(x))

Jeżeli filozof jest madry,


˛ to każdy jego uczeń jest madry.
˛

∀y (P(y ) → ∀x (Q(x, y ) → P(x)))

Adam Kasperski Logika pragmatyczna 2022/2023


Formuły zamkniete
˛ (ćwiczenie)

Które z formuł (odczytaj je):


1 ∀x ∃y P(x, y )
2 ∀y ∃x P(x, y )
3 ∃x ∀y P(x, y )
4 ∃y ∀x P(x, y )
5 ∀x ∀y P(x, y )
6 ∃x ∃y P(x, y )
sa˛ prawdziwe w interpretacji:
U -zbiór wszystkich ludzi,
P(x, y ) - x jest rodzicem y .

Adam Kasperski Logika pragmatyczna 2022/2023


Formuły spełnialne i prawdziwe

Formuła jest spełnialna jeżeli jest zdaniem prawdziwym w pew-


nej interpretacji. Formuła jest prawdziwa (jest tautologia˛ ra-
chunku predykatów) jeżeli jest zdaniem prawdziwym w każdej
interpretacji.

Adam Kasperski Logika pragmatyczna 2022/2023


Formuły spełnialne i prawdziwe

Formuła ∃x ∀y P(x, y ) jest spełnialna ale nie jest tautologia˛ ra-


chunku predykatów ponieważ:
Jest zdaniem prawdziwym dla interpretacji
U = {0, 1, 2, . . . }
P(x, y ) - x ≤ y
Jest zdaniem fałszywym dla interpretacji
U = {. . . , −2, −1, 0, 1, 2, . . . }
P(x, y ) - x ≤ y .
Formuła ∀x (P(x) → P(x)) jest tautologia˛ rachunku predykatów
ponieważ jest prawdziwa w każdej interpretacji.

Adam Kasperski Logika pragmatyczna 2022/2023


Wybrane prawa rachunku predykatów

T1. ∀x (P(x) → P(x))


T2. ∼ ∀x P(x) ≡ ∃x (∼ P(x))
T3. ∼ ∃x P(x) ≡ ∀x (∼ P(x))
T4. ∀x (P(x) ∧ Q(x)) ≡ (∀x P(x) ∧ ∀x Q(x))
T5. ∃x (P(x) ∨ Q(x)) ≡ (∃x P(x) ∨ ∃x Q(x))
T6. (∀x P(x) ∨ ∀x Q(x)) → (∀x (P(x) ∨ Q(x))
T7. ∃x (P(x) ∧ Q(x)) → (∃x P(x) ∧ ∃x Q(x))
T8. ∀x (P(x) → Q(x)) → (∀x P(x) → ∀x Q(x))
T9. ∃x (P(x) → Q(x)) ≡ (∀x P(x) → ∃x Q(x))
T10. ∃x ∀y P(x, y ) → ∀y ∃x P(x, y )

Adam Kasperski Logika pragmatyczna 2022/2023


Tautologie rachunku predykatów

Ta formuła nie jest tautologia˛

(∀x (P(x) ∨ Q(x)) → (∀x P(x) ∨ ∀x Q(x))

ponieważ jest fałszywa w nastepuj


˛ acej
˛ interpretacji:
U = {0, 1, 2, . . . , },
P(x) - x jest parzyste,
Q(x) - x jest nieparzyste.
Zdanie Każda liczba jest parzysta lub nieparzysta jest prawdziwe a
zdanie Każda liczba jest parzysta lub każda liczba jest nieparzysta
jest fałszywe.

Adam Kasperski Logika pragmatyczna 2022/2023


Tautologie rachunku predykatów

Ta formuła nie jest tautologia˛

∀y ∃x P(x, y ) → ∃x ∀y P(x, y )

ponieważ jest fałszywa w nastepuj


˛ acej
˛ interpretacji:
U = {0, 1, 2, . . . , },
P(x, y ) - x ≥ y

Zdanie Dla każdej liczby istnieje liczba niemniejsza jest prawdziwe a


zdanie istnieje liczba najwieksza
˛ jest fałszywe.

To zdanie bedzie
˛ prawdziwe jeżeli np. U = {0, 1, 2}.

Adam Kasperski Logika pragmatyczna 2022/2023


Tautologie rachunku predykatów

Tautologie pozwalaja˛ na przekształcanie formuł.

∼ ∀x (∃y (P(x) → Q(x, y )))

∃x (∼ ∃y (P(x) → Q(x, y )) T2
∃x ∀y ∼ (P(x) → Q(x, y )) T3
∃x ∀y ∼ (∼ P(x) ∨ Q(x, y )) prawo logiki
∃x ∀y (P(x)∧ ∼ Q(x, y )) prawo logiki

Adam Kasperski Logika pragmatyczna 2022/2023


Preneksowa postać normalna

Formuła jest w preneksowej postaci normalnej jeżeli jest po-


staci:

Q1 x1 Q2 x2 . . . Qn xn Φ(x1 , x2 , . . . , xn ),

gdzie Qi jest kwantyfikatorem ∃ lub ∀ a Φ jest w postaci normal-


nej koniunkcyjnej. Preneksowa postać normalna jest dogodna
do analizy komputerowej.

∀x ∃y ∀z ((∼ P(x) ∨ Q(x, z)) ∧ (P(z) ∨ Q(y , y ))

Adam Kasperski Logika pragmatyczna 2022/2023


Preneksowa postać normalna

Każda˛ formułe˛ można przekształcić do równoważnej postaci normal-


nej preneksowej stosujac˛ nastepuj
˛ ace ˛ operacje:
1 Przemianuj zmienne tak aby żadna zmienna nie wystepowała
˛ w
dwóch kwantyfikatorach (standaryzacja). Usuń wszystkie opera-
tory logiczne za wyjatkiem
˛ ∼, ∨, ∧ stosujac
˛ prawa logiki. Prze-
suń wszystkie operatory ∼ do wewnatrz
˛ kwantyfikatorów stosujac˛
tautologie T1 i T2.
2 Kolejno przesuwaj na zewnatrz
˛ kwantyfikatory stosujac
˛

A ∨ ∃x B(x) ≡ ∃x (A ∨ B(x)), A ∧ ∃x B(x) ≡ ∃x (A ∧ B(x))

A ∨ ∀x B(x) ≡ ∀x (A ∨ B(x)), A ∧ ∀x B(x) ≡ ∀x (A ∧ B(x))


gdzie x nie wystepuje
˛ w formule A.

Adam Kasperski Logika pragmatyczna 2022/2023


Preneksowa postać normalna

∀x ∃y P(x, y ) → ∀x (R(x) → ∃y P(x, y ))

∀x ∃y P(x, y ) → ∀u (R(u) → ∃v P(u, v ))) Standaryzacja


∼ ∀x ∃y P(x, y ) ∨ ∀u (∼ R(u) ∨ ∃v P(u, v )) Prawo logiki
∃x ∀y ∼ P(x, y ) ∨ ∀u (∼ R(u) ∨ ∃v P(u, v )) T2, T3
∃x ∀y ∀u ∼ P(x, y ) ∨ (∼ R(u) ∨ ∃v P(u, v )) Przesuwanie kw.
∃x ∀y ∀u ∼ P(x, y )∨ ∼ R(u) ∨ ∃v P(u, v ) Prawo logiki
∃x ∀y ∀u ∃v ∼ P(x, y )∨ ∼ R(u) ∨ P(u, v ) Przesuwanie kw.

Adam Kasperski Logika pragmatyczna 2022/2023


Tautologie rachunku predykatów

Pokazano, że nie istnieje ogólna metoda (algorytm) rozstrzyga-


jacy
˛ czy zadana formuła rachunku predykatów jest tautologia.˛ W
ogólnym przypadku problem ten jest wiec˛ bardzo trudny.
Tautologie˛ można czasami udowodnić korzystajac ˛ z praw logiki
oraz ze znanych tautologii. W przypadku, gdy wszystkie predy-
katy maja˛ nie wiecej
˛ niż jedna˛ zmienna˛ można skorzystać z ta-
belki.

Adam Kasperski Logika pragmatyczna 2022/2023


Tautologie rachunku predykatów

Czasami pokazanie prawdziwości formuły w zadanej interpretacji jest


bardzo trudne

U = {3, 4, 5, . . . , },
P(x) - x jest parzyste,
Q(y ) - y jest pierwsze,
R(x, y , z) - z jest suma˛ x i y
∀z (P(z) → ∃x ∃y (Q(x) ∧ Q(y ) ∧ R(x, y , z)))

Ta formuła to hipoteza Goldbacha każda liczba parzysta wieksza


˛ od 2
jest suma˛ dwóch liczb pierwszych (jej dowód ani kontrprzykład nie sa˛
znane)

Adam Kasperski Logika pragmatyczna 2022/2023


Tautologie rachunku predykatów

Niektóre tautologie można udowodnić korzystajac ˛ ze znanych


tautologii i praw logiki. Udowodnić tautologie˛ T9:

∃x (P(x) → Q(x)) ≡ (∀x P(x) → ∃x Q(x))

∃x (P(x) → Q(x)) Prawo logiki


∃x (∼ P(x) ∨ Q(x)) T5.
∃x (∼ P(x)) ∨ ∃x Q(x) T2.
∼ ∀x P(x) ∨ ∃x Q(x) Prawo logiki
∀x P(x) → ∃x Q(x)

Adam Kasperski Logika pragmatyczna 2022/2023


Tabelka dla predykatów jednoargumentowych

 P(x) ∼ P(x) ∃x P(x) ∀x P(x)


 1 zawsze 1
1 0 1 1
P(x) = 0 zawsze 0

T czasem 1 czasem 0 0 1 0 0
T T 1 0
P(x) Q(x) P(x) ∨ Q(x) P(x) ∧ Q(x) P(x) → Q(x) P(x) ≡ Q(x)
1 1 1 1 1 1
1 0 1 0 0 0
1 T 1 T T T
0 1 1 0 1 0
0 0 0 0 1 1
0 T T 0 1 T
T 1 1 T 1 T
T 0 T 0 T T
T T 1,T 0,T 1,T 0,1,T

Adam Kasperski Logika pragmatyczna 2022/2023


Udowodnić tautologie˛ T6.

(∀x P(x) ∨ ∀x Q(x)) → (∀x (P(x) ∨ Q(x))

α β γ
P(x) Q(x) ∀x P(x) ∀x Q(x) ∀x P(x) ∨ ∀x Q(x) P(x) ∨ Q(x) ∀x β α→γ
1 1 1 1 1 1 1 1
1 0 1 0 1 1 1 1
1 T 1 0 1 1 1 1
0 1 0 1 1 1 1 1
0 0 0 0 0 0 0 1
0 T 0 0 0 T 0 1
T 1 0 1 1 1 1 1
T 0 0 0 0 T 0 1
T T 0 0 0 1,T 1,0 1

Adam Kasperski Logika pragmatyczna 2022/2023


Tautologie rachunku predykatów

Udowodnić tautologie˛ T8:

∀x (P(x) → Q(x)) → (∀x P(x) → ∀x Q(x))

Tautologia może być fałszywa tylko wtedy, gdy ∀x P(x) jest praw-
dziwe a ∀x Q(x) jest fałszywe (dlaczego?).

P(x) Q(x) P(x) → Q(x) ∀x (P(x) → Q(x))


1 0 0 0
1 T T 0

W obu przypadkach poprzednik ∀x (P(x) → Q(x)) jest fałszywy,


zatem implikacja jest prawdziwa.

Adam Kasperski Logika pragmatyczna 2022/2023


Reguły wnioskowania

W dowodach, w których korzystamy z kwantyfikatorów można


stosować wszystkie reguły z rachunku zdań. Dodatkowo stosu-
jemy nastepuj
˛ ace
˛ reguły wnioskowania:

∃x P(x) ∀P(x)
O∃: O∀:
P(a) P(b)
P(b)
D∃:
∃x P(x)
a jest nowa˛ stała˛ niewystepuj
˛ ac ˛ a˛ w dowodzie,
b jest dowolna˛ stała.
˛

Adam Kasperski Logika pragmatyczna 2022/2023


Dowód założeniowy wprost

∀x (P(x) → Q(x)) → (∃x P(x) → ∃x Q(x))

1: ∀x (P(x) → Q(x)) Założenie


2: ∃x P(x) Założenie
3: P(a) O∃ 2
4: P(a) → Q(a) O∀ 1
5: Q(a) RO 3,4
6: ∃x Q(x) D∃ 4

Adam Kasperski Logika pragmatyczna 2022/2023


Dowód założeniowy nie wprost

∀x ∼ P(x) →∼ ∃x P(x)

1: ∀x ∼ P(x) Założenie
2: ∃x P(x) z.d.n.
3: P(a) O∃ 2
4: ∼ P(a) O∀ 1
Sprzeczność 3,4

Adam Kasperski Logika pragmatyczna 2022/2023


Dowody założeniowe - błedne
˛ wnioskowanie

∀x ∃y P(x, y ) → ∃x P(x, x)

1: ∀x ∃y P(x, y ) Zał. 1: ∀x ∃y P(x, y ) Zał.


2: ∃y P(a, y ) O∀ 1 2: ∀x P(x, a) Bład!
˛
3: P(a, a) Bład!
˛ 3: P(a, a) O∀ 2
4: ∃x P(x, x) D∃ 4 5: ∃x P(x, x) D∃ 4

Formuła nie jest tautologia. ˛ Nie jest prawdziwa na przykład w


interpretacji U = R i P(x, y ) - x jest wieksze
˛ od y .

Adam Kasperski Logika pragmatyczna 2022/2023


Dowody założenowe

Każdy uczony jest racjonalista.


˛ Niektórzy filozofowie nie sa˛ ra-
cjonalistami. Zatem niektórzy filozofowie nie sa˛ uczonymi
U - wszyscy ludzie.
P(x) - x jest uczonym.
Q(x) - x jest filozofem.
R(x) - x jest racjonalista.
˛

(∀x (P(x) → R(x)) ∧ ∃x (Q(x)∧ ∼ R(x))) → ∃x (Q(x)∧ ∼ P(x))

Adam Kasperski Logika pragmatyczna 2022/2023


Dowody założeniowe

1: ∀x (P(x) → R(x)) Zał.


2: ∃x (Q(x)∧ ∼ R(x)) Zał.
3: Q(a)∧ ∼ R(a) O∃ 2
4: P(a) → R(a) O∀ 1
5: Q(a) OK 3
6: ∼ R(a) OK 3
7: ∼ R(a) →∼ P(a) KP 4
8: ∼ P(a) RO 6,7
9: Q(a)∧ ∼ P(a) DK 5,8
10: ∃x (Q(x)∧ ∼ P(x)) D∃ 9

Adam Kasperski Logika pragmatyczna 2022/2023


Dowody założenowe

Jest ktoś kogo wszyscy kochaja.


˛ Zatem każdy kogoś kocha.
U - wszyscy ludzie.
P(x, y ) - x kocha y .

∃y ∀x P(x, y ) → ∀x ∃y P(x, y )

Adam Kasperski Logika pragmatyczna 2022/2023


Dowody założeniowe

1: ∃y ∀x P(x, y ) Zał.
2: ∼ ∀x ∃y P(x, y ) Z.d.n.
3: ∃x ∀y ∼ P(x, y ) DM 2
4: ∀x P(x, a) O∃ 1
5: ∀y ∼ P(b, y ) O∃ 3
6: P(b, a) O∀ 4
7: ∼ P(b, a) O∀ 5
Sprzeczność 6,7

Adam Kasperski Logika pragmatyczna 2022/2023


Dowody założeniowe

Wszyscy logicy sa˛ zabawni. Ktoś jest logikiem. Zatem każdy jest
zabawny.
U - wszyscy ludzie.
P(x) - x jest logikiem.
Q(x) - y - jest zabawny.

(∀x (P(x) → Q(x)) ∧ ∃x P(x)) → ∀x Q(x)

Adam Kasperski Logika pragmatyczna 2022/2023


Dowody założeniowe (kontrprzykład)

1: ∀x (P(x) → Q(x)) Zał.


2: ∃x P(x) Zał.
3: ∼ ∀x Q(x) Z.d.n.
4: P(a) O∃ 2
5: ∃x ∼ Q(x) DM 3
6: ∼ Q(b) O∃ 5
7: P(a) → Q(a) O∀ 1
8: P(b) → Q(b) O∀ 1
9: Q(a) RO 4,7
10: ∼ Q(b) →∼ P(b) KP 8
11: ∼ P(b) RO 6,10

Rozumowanie nie jest poprawne. Kontrprzykład: uniwersum U = {a, b}, a jest


zabawny i jest logikiem, b nie jest zabawny i nie jest logikiem. Założenia sa˛
spełnione a teza nie jest prawdziwa.

Adam Kasperski Logika pragmatyczna 2022/2023


Symbole funkcyjne

Jezyk
˛ rachunku predykatów można rozszerzyć o n-argumentowe sym-
bole funkcyjne f (x, y , . . . ), g(x, y , . . . ). W określonej interpretacji,
f (x, y , . . . ) jest obiektem z uniwersum U dla określonych zmiennych
x, y , . . . . Nie należy mylić symboli funkcyjnych z predykatami.

U - zbiór wszystkich ludzi.


P(x) - x jest meżczyzn
˛ a.
˛
Q(x, y ) - x i y sa˛ spokrewnieni.
f (x) - ojciec x.
Zdania w U:
∀x P(f (x)) - ojciec każdego człowieka jest meżczyzn
˛ a˛
∀x Q(f (x), f (f (x))) - ojciec i dziadek każdego człowieka sa˛ spo-
krewnieni

Adam Kasperski Logika pragmatyczna 2022/2023


Symbole funkcyjne

Definiujemy termy w nastepuj


˛ acy˛ sposób:
Wszystkie zmienne x, y , . . . , oraz stałe a, b, . . . sa˛ termami.
Jeżeli t1 , . . . tn sa˛ termami i f jest n-argumentowym symbolem
funkcyjnym, to f (t1 , . . . , tn ) jest termem.
Term nie zawierajacy
˛ zmiennych nazywamy termem ustalonym.

Przykłady termów:
x, y , a
f (x), g(x, y ), g(x, a)
f (f (x)), g(f (x), a), f (g(x, y )), f (f (a))
Termy a, f (f (a)) sa˛ ustalone.

Adam Kasperski Logika pragmatyczna 2022/2023


Algorytm rezolucji

Każdy kto kocha wszystkie zwierz˛eta jest przez kogoś kochany.


Nikt nie kocha kogoś kto zabija zwierz˛eta. Jan kocha wszystkie
zwierz˛eta. Zwierz˛e o imieniu Reks zostało zabite przez Jana lub
Roberta. Robert zabił Reksa.

Z (x) - x jest zwierz˛eciem.


L(x, y ) - x kocha y .
K (x, y ) - x zabił y .

Adam Kasperski Logika pragmatyczna 2022/2023


Algorytm rezolucji

Każdy kto kocha wszystkie zwierz˛eta jest przez kogoś kochany.

∀x (∀y (Z (y ) → L(x, y )) → ∃y L(y , x))


Postać preneksowa normalna:

∀x ∃y ∃z (Z (y ) ∨ L(z, x)) ∧ (∼ L(x, y ) ∨ L(z, x))


Usuwamy kwantyfikatory ∃:

∀x (Z (f (x)) ∨ L(g(x), x)) ∧ (∼ L(x, f (x)) ∨ L(g(x), x))


Tworzymy dwie klauzule po standaryzacji zmiennych (tautologia T4):

Z (f (x1 )) ∨ L(g(x1 ), x1 )
∼ L(x2 , f (x2 )) ∨ L(g(x2 ), x2 )

Adam Kasperski Logika pragmatyczna 2022/2023


Algorytm rezolucji

Usuwanie kwantyfikatora ∃x nazywamy skolemizacja. ˛ Zmienna˛


x zastepujemy
˛ symbolem funkcyjnym f zawierajacym
˛ wszystkie
zmienne kwantyfikowane ∀ które poprzedzaja˛ ∃x . Jeżeli ∃x wy-
stepuje
˛ na poczatku,
˛ to x zastepujemy
˛ dowolna˛ stała.
˛

∃x ∀y ∀u ∃v P(x, y , u, v )
zastepujemy
˛

∀y ∀u P(a, y , u, f (y , u))

Adam Kasperski Logika pragmatyczna 2022/2023


Algorytm rezolucji

Nikt nie kocha kogoś kto zabija zwierz˛eta.

∀x (∃y (Z (y ) ∧ K (x, y )) → ∀z ∼ L(z, x))


Preneksowa postać normalna:

∀x ∀y ∀z ∼ Z (y )∨ ∼ K (x, y )∨ ∼ L(z, x)
Klauzula po standaryzacji zmiennych

∼ Z (x3 )∨ ∼ K (x4 , x3 )∨ ∼ L(x5 , x4 )

Adam Kasperski Logika pragmatyczna 2022/2023


Algorytm rezolucji

Jan kocha wszystkie zwierz˛eta.

∀x L(Jan, x)
Klauzula po standaryzacji zmiennych

L(Jan, x6 )
Zwierz˛e o imieniu Reks zostało zabite przez Jana lub Roberta.

Klauzule

Z (Reks)
K (Jan, Reks) ∨ K (Robert, Reks)

Adam Kasperski Logika pragmatyczna 2022/2023


Algorytm rezolucji

1: Z (f (x1 )) ∨ L(g(x1 ), x1 ) zał.


2: ∼ L(x2 , f (x2 )) ∨ L(g(x2 ), x2 ) zał.
3: ∼ Z (x3 )∨ ∼ K (x4 , x3 )∨ ∼ L(x5 , x4 ) zał.
4: L(Jan, x6 ) zał.
5: Z (Reks) zał.
6: K (Jan, Reks) ∨ K (Robert, Reks) zał.
7: ∼ K (Robert, Reks) z.d.n.
8: K (Jan, Reks) 6,7
9: L(g(Jan), Jan) 2,4 [x2 ← Jan, x6 ← f (Jan)]
10: ∼ Z (Reks)∨ ∼ L(x7 , Jan) 3,8 [x3 ← Reks, x4 ← Jan]
11: ∼ Z (Reks) 9,10 [x7 ← g(Jan)]
12: sprzeczność 5,11

Adam Kasperski Logika pragmatyczna 2022/2023


Algorytm rezolucji

Niech C bedzie ˛ klauzula˛ zawierajac


˛ a˛ zmienne x1 , . . . , xn . Podstawie-
niem nazywamy jednoczesne zastapienie ˛ θ = [x1 ← t1 , . . . , xn ← tn ],
gdzie t1 , . . . , tn sa˛ termami.

∼ L(x2 , f (x2 )) ∨ L(g(x2 ), x2 ), θ1 = [x2 ← Jan]


∼ L(Jan, f (Jan)) ∨ L(g(Jan), Jan)

P(x1 , f (x1 )) ∨ Q(x2 , x3 ), θ1 = [x1 ← f (x2 ), x2 ← x1 , x3 ← a]

P(f (x2 ), f (f (x2 ))) ∨ Q(x1 , a)


Uwaga: Słowo jednoczesne jest istotne. Jeżeli bedziemy
˛ iteracyjnie
stosować podstawienie θ1 to otrzymamy P(f (x1 ), f (f (x1 ))) ∨ Q(x1 , a),
co jest niepoprawne.

Adam Kasperski Logika pragmatyczna 2022/2023


Algorytm rezolucji

Reguła rezolucji

l1 ∨ · · · ∨ l i ∨ · · · ∨ lk , m1 ∨ · · · ∨ m j ∨ · · · ∨ mk
l1 ∨ · · · ∨ li−1 ∨ li+1 · · · ∨ lk ∨ m1 , ∨ . . . , ∨mj−1 ∨ mj+1 · · · ∨ mk , θ

gdzie li i mj sa˛ komplementarnymi literałami po podstawieniu θ (t.j. li


jest negacja˛ mj ).

∼ L(x2 , f (x2 )) ∨ L(g(x2 ), x2 ), L(Jan, x6 )


L(g(Jan), Jan), [x2 ← Jan, x6 ← f (Jan)]

Adam Kasperski Logika pragmatyczna 2022/2023


Algorytm rezolucji

Faktoryzacja (upraszczanie)

l1 ∨ l i , ∨ · · · ∨ l j ∨ . . . lk
l1 ∨ · · · ∨ li−1 ∨ li+1 ∨ · · · ∨ l j · · · ∨ . . . lk , θ

gdzie li i lj sa˛ identyczne po podstawieniu θ

P(x1 , x2 ) ∨ Q(x1 ) ∨ P(f (x3 ), x4 )


P(f (x3 ), x2 ) ∨ Q(f (x3 )), [x1 ← f (x3 ), x4 ← x2 ]

Adam Kasperski Logika pragmatyczna 2022/2023


Algorytm rezolucji

1 Algorytm rezolucji generuje nowe klauzule stosujac ˛ regułe˛ rezo-


lucji i faktoryzacje˛ do klauzul poprzednio wygenerowanych.
2 Jeżeli zostanie wygenerowana klauzula pusta, to wejściowy zbiór
klauzul jest sprzeczny.
3 Jeżeli nie można wygenerować żadnej nowej klauzuli, to wej-
ściowy zbiór klauzul jest spełnialny.

Twierdzenie
Jeżeli wejściowy zbiór klauzul jest sprzeczny, to algorytm rezolucji
zwróci pusta˛ klauzule˛ w skończonej liczbie kroków.

Uwaga
Jeżeli wejściowy zbiór klauzul jest spełnialny, to algorytm może nie
zakończyć pracy (może generować nowe klauzule bez końca).

Adam Kasperski Logika pragmatyczna 2022/2023


Algorytm rezolucji

∃x ∀y P(x, y ) → ∀y ∃x P(x, y )

∼ ∀y ∃x P(x, y ) ≡ ∃y ∀x ∼ P(x, y )

1 : P(a, x1 ) zal.
2 :∼ P(x2 , b) z.d.n.
3 : sprz. 1, 2 [x1 ← b, x2 ← a]

Adam Kasperski Logika pragmatyczna 2022/2023


Algorytm rezolucji

∀y ∃x P(x, y ) → ∃x ∀y P(x, y )

∼ ∃x ∀y P(x, y ) ≡ ∀x ∃y ∼ P(x, y )

1 : P(f (x1 ), x1 ) zal.


2 :∼ P(x2 , f (x2 )) z.d.n.
Nie istnieje żadne podstawienie θ w 1 i 2 generujace
˛ pare˛ kom-
plementarnych literałów.

Adam Kasperski Logika pragmatyczna 2022/2023

You might also like