Exemple de Utilizare A Metodei Rezolut Iei In Logica Predicatelor

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

Exemple de utilizare a metodei rezoluţiei ı̂n

Logica Predicatelor
Chapter 1

Exemplu 1

1.1 Enunţ
1. Mary iubeşte doar băieţii cu bani.

2. Orice student care nu promovează nu e angajat.


3. John e un student.
4. Orice student care nu ı̂nvaţă nu promovează.
5. Oricine nu e angajat nu are bani.

6. Concluzie: Dacă John nu ı̂nvaţă, atunci Mary nu ı̂l iubeşte pe John.

1.2 Formalizare
1. Mary iubeşte doar băieţii cu bani.

∀x(M aryIubeste(x) → AreBani(x)) (1.1)

2. Orice student care nu promovează nu e angajat.

∀x(Student(x) ∧ ¬P romovat(x) → ¬Angajat(x)) (1.2)

3. John e un student.
Student(John) (1.3)

4. Orice student care nu ı̂nvaţă nu promovează.

∀x(Student(x) ∧ ¬Invata(x) → ¬P romovat(x)) (1.4)

5. Oricine nu e angajat nu are bani.

∀x(¬Angajat(x) → ¬AreBani(x)) (1.5)

1
6. Concluzie: Dacă John nu ı̂nvaţă, atunci Mary nu ı̂l iubeşte pe John.

¬Invata(John) → ¬M aryIubeste(John) (1.6)

Vrem să demonstrăm că

(1.1) ∧ (1.2) ∧ (1.3) ∧ (1.4) ∧ (1.5) → (1.6)

ceea ce e echivalent cu a demonstra ca următoarea formulă e invalidă:

(1.1) ∧ (1.2) ∧ (1.3) ∧ (1.4) ∧ (1.5) ∧ ¬(1.6)

1.3 Aducerea ı̂n formă clauzală


1.3.1 Formula iniţială

∀x(M aryIubeste(x) → AreBani(x)) ∧ ∀x(Student(x) ∧ ¬P romovat(x) → ¬Angajat(x))


∧ Student(John) ∧ ∀x(Student(x) ∧ ¬Invata(x) → ¬P romovat(x))
∧ ∀x(¬Angajat(x) → ¬AreBani(x)) ∧ ¬(¬Invata(John) → ¬M aryIubeste(John))

1.3.2 Redenumirea variabilelor

∀x(M aryIubeste(x) → AreBani(x)) ∧ ∀y(Student(y) ∧ ¬P romovat(y) → ¬Angajat(y))


∧ Student(John) ∧ ∀z(Student(z) ∧ ¬Invata(z) → ¬P romovat(z))
∧ ∀t(¬Angajat(t) → ¬AreBani(t)) ∧ ¬(¬Invata(John) → ¬M aryIubeste(John))

1.3.3 Eliminarea implicaţiilor

∀x(¬M aryIubeste(x) ∨ AreBani(x)) ∧ ∀y(¬(Student(y) ∧ ¬P romovat(y)) ∨ ¬Angajat(y))


∧ Student(John) ∧ ∀z(¬(Student(z) ∧ ¬Invata(z)) ∨ ¬P romovat(z))
∧ ∀t(¬¬Angajat(t) ∨ ¬AreBani(t)) ∧ ¬(¬¬Invata(John) ∨ ¬M aryIubeste(John))

2
1.3.4 Împingerea negaţiilor ı̂n subformule (aplicând legile
lui De Morgan)

∀x(¬M aryIubeste(x) ∨ AreBani(x)) ∧ ∀y(¬Student(y) ∨ ¬¬P romovat(y) ∨ ¬Angajat(y))


∧ Student(John) ∧ ∀z(¬Student(z) ∨ ¬¬Invata(z) ∨ ¬P romovat(z))
∧ ∀t(¬¬Angajat(t) ∨ ¬AreBani(t)) ∧ (¬¬¬Invata(John) ∧ ¬¬M aryIubeste(John))

Eventualele duble negatii se simplifica:

∀x(¬M aryIubeste(x) ∨ AreBani(x)) ∧ ∀y(¬Student(y) ∨ P romovat(y) ∨ ¬Angajat(y))


∧ Student(John) ∧ ∀z(¬Student(z) ∨ Invata(z) ∨ ¬P romovat(z))
∧ ∀t(Angajat(t) ∨ ¬AreBani(t)) ∧ ¬Invata(John) ∧ M aryIubeste(John)

1.3.5 Mutarea cuantificatorilor ı̂n partea stângă a ecuaţiei

∀x ∀y ∀z ∀t ((¬M aryIubeste(x) ∨ AreBani(x))


∧ (¬Student(y) ∨ P romovat(y) ∨ ¬Angajat(y)) ∧ Student(John)
∧ (¬Student(z) ∨ Invata(z) ∨ ¬P romovat(z))
∧ (Angajat(t) ∨ ¬AreBani(t)) ∧ ¬Invata(John) ∧ M aryIubeste(John))

1.3.6 Distribuirea disjuncţiei peste conjuncţie pentru obţinerea


formei Prenex CNF
In cazul de faţă avem deja formula ı̂n forma Prenex Normal Conjunctivă:

∀x ∀y ∀z ∀t ((¬M aryIubeste(x) ∨ AreBani(x))


∧ (¬Student(y) ∨ P romovat(y) ∨ ¬Angajat(y)) ∧ Student(John)
∧ (¬Student(z) ∨ Invata(z) ∨ ¬P romovat(z))
∧ (Angajat(t) ∨ ¬AreBani(t)) ∧ ¬Invata(John) ∧ M aryIubeste(John))

1.3.7 Înlocuirea variabilelor libere cu constante


Nu este cazul, nu avem variabile libere.

3
1.3.8 Eliminarea cuantificatorilor existenţiali utilizând reg-
ula lui Skolem
Nu este cazul, nu avem cuantificatori existentiali in formula de faţă.

1.3.9 Reprezentare in forma clauzală

{ ¬M aryIubeste(x) ∨ AreBani(x), ¬Student(y) ∨ P romovat(y) ∨ ¬Angajat(y),


Student(John), ¬Student(z) ∨ Invata(z) ∨ ¬P romovat(z),
Angajat(t) ∨ ¬AreBani(t), ¬Invata(John), M aryIubeste(John) }

1.4 Rezolvare prin metoda rezoluţiei

1. ¬M aryIubeste(x) ∨ AreBani(x)

Premisă

2. Student(y) ∨ P romovat(y) ∨ ¬Angajat(y)

Premisă

3. Student(John)

Premisă

4. ¬Student(z) ∨ Invata(z) ∨ ¬P romovat(z)

Premisă

5. Angajat(t) ∨ ¬AreBani(t)

Premisă

6. ¬Invata(John)

Premisă

7. M aryIubeste(John)

Premisă

8. Invata(y) ∨ ¬Angajat(y)

Din 2 şi 4, prin rezoluţie şi aplicând substituţia {z/y}, se elimină


literalii Student(y) si ¬Student(y)

4
9. Invata(John) ∨ ¬P romovat(John)

Din 3 şi 4, prin rezoluţie şi aplicând substituţia {z/John}, se


elimină literalii Student(John) si ¬Student(John)

10. AreBani(John)

Din 1 şi 7, prin rezoluţie şi aplicând substituţia {x/John}, se


elimină literalii M aryIubeste(John) si ¬M aryIubeste(John)

11. Invata(y) ∨ ¬AreBani(y)

Din 5 şi 8, prin rezoluţie şi aplicând substituţia {t/y}, se elimină


literalii Angajat(y) si ¬Angajat(y)

12. Invata(John)

Din 10 şi 11, prin rezoluţie şi aplicând substituţia {y/John}, se


elimină perechea de literali complementari AreBani(John) si
¬AreBani(John)

13. 

Din 6 şi 12, prin rezoluţie se elimină perechile de literali


Invata(John) si ¬Invata(John), AreBani(John) si ¬AreBani(John)

Am obţinut clauza vidă, deci formula de la care am pornit, si care


conţine printre premise negata concluziei 1.6, este invalidă. Asta
ı̂nseamnă că formula 1.2, adică implicaţia iniţială, este validă.

5
Chapter 2

Exemplu 2

2.1 Enunţ
1. Fiecare pasăre doarme ı̂ntr-un copac.

2. Fiecare cufundar e o pasăre si fiecare cufundar e un animal acvatic


3. Orice copac ı̂n care doarme o pasăre acvaticăe lângă un lac.
4. Orice doarme ı̂ntr-un loc aflat lângă un lac mănâncă peşte.
5. Concluzie: Toţi cufundarii mănâncă peşte.

2.2 Formalizare
1. Fiecare pasăre doarme ı̂ntr-un copac.

∀x(P asare(x) → ∃y(Copac(y) ∧ Doarme(x, y)) (2.1)

2. Fiecare cufundar e o pasăre si fiecare cufundar e un animal acvatic

∀x(Cuf undar(x) → P asare(x) ∧ Acvatic(x)) (2.2)

3. Orice copac ı̂n care doarme o pasăre acvatică e lângă un lac.

∀x(Copac(x)∧∃y(P asare(y)∧Acvatic(y)∧Doarme(y, x)) → LangaLac(x))


(2.3)
4. Orice doarme ı̂ntr-un loc aflat lângă un lac mănâncă peşte.

∀x(∃y(Doarme(x, y) ∧ LangaLac(y)) → M anancaP este(x)) (2.4)

5. Concluzie: Toţi cufundarii mănâncă peşte.

∀x(Cuf undar(x) → M anancaP este(x)) (2.5)

6
Vrem să demonstrăm că

(2.1) ∧ (2.2) ∧ (2.3) ∧ (2.4) → (2.5)

ceea ce e echivalent cu a demonstra ca următoarea formulă e invalidă:

(2.1) ∧ (2.2) ∧ (2.3) ∧ (2.4) ∧ ¬(2.5)

2.3 Aducerea ı̂n formă clauzală


2.3.1 Formula iniţială

∀x(P asare(x) → ∃y(Copac(y) ∧ Doarme(x, y))


∧ ∀x(Cuf undar(x) → P asare(x) ∧ Acvatic(x))
∧ ∀x((Copac(x) ∧ ∃y(P asare(y) ∧ Acvatic(y) ∧ Doarme(y, x)) → LangaLac(x))
∧ ∀x(∃y(Doarme(x, y) ∧ LangaLac(y)) → M anancaP este(x))
∧ ¬(∀x(Cuf undar(x) → M anancaP este(x)))

2.3.2 Redenumirea variabilelor

∀x1(P asare(x1) → ∃x2(Copac(x2) ∧ Doarme(x1, x2))


∧ ∀x3(Cuf undar(x3) → P asare(x3) ∧ Acvatic(x3))
∧ ∀x4((Copac(x4) ∧ ∃x5(P asare(x5) ∧ Acvatic(x5) ∧ Doarme(x5, x4)) → LangaLac(x4))
∧ ∀x6(∃x7(Doarme(x6, x7) ∧ LangaLac(x7)) → M anancaP este(x6))
∧ ¬(∀x8(Cuf undar(x8) → M anancaP este(x8)))

2.3.3 Eliminarea implicaţiilor

∀x1(¬P asare(x1) ∨ (∃x2(Copac(x2) ∧ Doarme(x1, x2)))


∧ ∀x3(¬Cuf undar(x3) ∨ (P asare(x3) ∧ Acvatic(x3)))
∧ ∀x4(¬(Copac(x4) ∧ ∃x5(P asare(x5) ∧ Acvatic(x5) ∧ Doarme(x5, x4)) ∨ LangaLac(x4))
∧ ∀x6(¬(∃x7(Doarme(x6, x7) ∧ LangaLac(x7))) ∨ M anancaP este(x6))
∧ ¬(∀x8(¬Cuf undar(x8) ∨ M anancaP este(x8)))

7
2.3.4 Împingerea negaţiilor ı̂n subformule (aplicând legile
lui De Morgan)

∀x1(¬P asare(x1) ∨ (∃x2(Copac(x2) ∧ Doarme(x1, x2)))


∧ ∀x3(¬Cuf undar(x3) ∨ (P asare(x3) ∧ Acvatic(x3)))
∧ ∀x4(¬Copac(x4) ∨ ¬(∃x5(P asare(x5) ∧ Acvatic(x5) ∧ Doarme(x5, x4)) ∨ LangaLac(x4))
∧ ∀x6(∀x7¬(Doarme(x6, x7) ∧ LangaLac(x7))) ∨ M anancaP este(x6))
∧ ∃x8(¬(¬Cuf undar(x8) ∨ M anancaP este(x8)))

Atunci când avem formule negate care conţin cuantificatori existenţiali sau
universali, folosim faptul ca ¬∀xP (x) ≡ ∃x¬P (x) şi ¬∃xP (x) ≡ ∀x¬P (x).
Simplificăm dublele negaţii.

∀x1(¬P asare(x1) ∨ (∃x2(Copac(x2) ∧ Doarme(x1, x2)))


∧ ∀x3(¬Cuf undar(x3) ∨ (P asare(x3) ∧ Acvatic(x3)))
∧ ∀x4(¬Copac(x4) ∨ (∀x5¬(P asare(x5) ∧ Acvatic(x5) ∧ Doarme(x5, x4)) ∨ LangaLac(x4))
∧ ∀x6(∀x7(¬Doarme(x6, x7) ∨ ¬LangaLac(x7))) ∨ M anancaP este(x6))
∧ ∃x8(Cuf undar(x8) ∧ ¬M anancaP este(x8))

În final, obţinem formula de mai jos, ı̂n care negaţiile mai apar doar ı̂n
dreptul predicatelor:

∀x1(¬P asare(x1) ∨ (∃x2(Copac(x2) ∧ Doarme(x1, x2)))


∧ ∀x3(¬Cuf undar(x3) ∨ (P asare(x3) ∧ Acvatic(x3)))
∧ ∀x4(¬Copac(x4) ∨ (∀x5(¬P asare(x5) ∨ ¬Acvatic(x5) ∨ ¬Doarme(x5, x4)) ∨ LangaLac(x4))
∧ ∀x6(∀x7(¬Doarme(x6, x7) ∨ ¬LangaLac(x7))) ∨ M anancaP este(x6))
∧ ∃x8(Cuf undar(x8) ∧ ¬M anancaP este(x8))

2.3.5 Mutarea cuantificatorilor ı̂n partea stângă a ecuaţiei

∃x8 ∀x1 ∃x2 ∀x3 ∀x4 ∀x5 ∀x6 ∀x7 ((¬P asare(x1) ∨ ((Copac(x2) ∧ Doarme(x1, x2)))
∧ (¬Cuf undar(x3) ∨ (P asare(x3) ∧ Acvatic(x3)))
∧ (¬Copac(x4) ∨ ¬P asare(x5) ∨ ¬Acvatic(x5) ∨ ¬Doarme(x5, x4) ∨ LangaLac(x4))
∧ (¬Doarme(x6, x7) ∨ ¬LangaLac(x7) ∨ M anancaP este(x6))
∧ Cuf undar(x8) ∧ ¬M anancaP este(x8))

8
2.3.6 Distribuirea disjuncţiei peste conjuncţie pentru obţinerea
formei Prenex CNF

∀x1 ∃x2 ∀x3 ∀x4 ∀x5 ∀x6 ∀x7 ∃x8


((¬P asare(x1) ∨ Copac(x2)) ∧ (¬P asare(x1) ∨ Doarme(x1, x2))
∧ (¬Cuf undar(x3) ∨ P asare(x3)) ∧ (¬Cuf undar(x3) ∨ Acvatic(x3))
∧ (¬Copac(x4) ∨ ¬P asare(x5) ∨ ¬Acvatic(x5) ∨ ¬Doarme(x5, x4) ∨ LangaLac(x4))
∧ (¬Doarme(x6, x7) ∨ ¬LangaLac(x7) ∨ M anancaP este(x6)) ∧ Cuf undar(x8)
∧ ¬M anancaP este(x8))

2.3.7 Înlocuirea variabilelor libere cu constante


Nu este cazul, nu avem variabile libere.

2.3.8 Eliminarea cuantificatorilor existenţiali utilizând reg-


ula lui Skolem
Variabilele cuantificate existential sunt x2 si x8.

În formula originală, variabila x2 apare cuantificată existential ı̂n domeniul


variabilei x1 cuantificată universal, ı̂n subformula

∀x1(¬P asare(x1) ∨ (∃x2(Copac(x2) ∧ Doarme(x1, x2))

Astfel, conform regulii lui Skolem, putem să-l scriem pe x2 ca funcţie de x1,
astfel: x2 = f (x1), şi să-l ı̂nlocuim ı̂n această formă ı̂n formulă.

Totodată, ı̂n formula originală, x8 apare cuantificat existenţial ı̂n afara dome-
niului oricărei alte variabile ı̂n subformula

∃x8(Cuf undar(x8) ∧ ¬M anancaP este(x8))

Deci, tot conform regulii lui Skolem, x8 poate fi ı̂nlocuit cu o constantă nouă,
al cărei nume nu a fost folosit deja ı̂n formulă, astfel x8 = a.

Obţinem următoarea formulă:

∀x1 ∀x3 ∀x4 ∀x5 ∀x6 ∀x7 ((¬P asare(x1) ∨ Copac(f (x1)))
∧ (¬P asare(x1) ∨ Doarme(x1, f (x1))) ∧ (¬Cuf undar(x3) ∨ P asare(x3))
∧ (¬Cuf undar(x3) ∨ Acvatic(x3))
∧ (¬Copac(x4) ∨ ¬P asare(x5) ∨ ¬Acvatic(x5) ∨ ¬Doarme(x5, x4) ∨ LangaLac(x4))
∧ (¬Doarme(x6, x7) ∨ ¬LangaLac(x7) ∨ M anancaP este(x6)) ∧ Cuf undar(a)
∧ ¬M anancaP este(a))

9
2.3.9 Reprezentare in forma clauzală

{ ¬P asare(x1) ∨ Copac(f (x1)), ¬P asare(x1) ∨ Doarme(x1, f (x1)),


¬Cuf undar(x3) ∨ P asare(x3), ¬Cuf undar(x3) ∨ Acvatic(x3),
¬Copac(x4) ∨ ¬P asare(x5) ∨ ¬Acvatic(x5) ∨ ¬Doarme(x5, x4) ∨ LangaLac(x4),
¬Doarme(x6, x7) ∨ ¬LangaLac(x7) ∨ M anancaP este(x6),
Cuf undar(a), ¬M anancaP este(a) }

2.4 Rezolvare prin metoda rezoluţiei

1. ¬P asare(x1) ∨ Copac(f (x1))

Premisă

2. ¬P asare(x1) ∨ Doarme(x1, f (x1))

Premisă

3. ¬Cuf undar(x3) ∨ P asare(x3)

Premisă

4. ¬Cuf undar(x3) ∨ Acvatic(x3)

Premisă

5. ¬Copac(x4)∨¬P asare(x5)∨¬Acvatic(x5)∨¬Doarme(x5, x4)∨LangaLac(x4)

Premisă

6. ¬Doarme(x6, x7) ∨ ¬LangaLac(x7) ∨ M anancaP este(x6)

Premisă

7. Cuf undar(a)

Premisă

8. ¬M anancaP este(a)

Premisă

9. ¬P asare(x1) ∨ ¬Acvatic(x1) ∨ ¬Doarme(x1, f (x1)) ∨ LangaLac(f (x1))

Din 1 şi 5, prin rezoluţie şi aplicând substituţia {x5/x1, x4/f (x1)}, se
elimină literalii Copac(f (x1)) şi ¬Copac(f (x1))

10
10. ¬P asare(x1) ∨ ¬Acvatic(x1) ∨ LangaLac(f (x1))

Din 9 şi 2, prin rezoluţie, se elimină literalii Doarme(x1, f (x1)) şi


¬Doarme(x1, f (x1))

11. ¬P asare(x1) ∨ ¬LangaLac(f (x1)) ∨ M anancaP este(x1)

Din 2 şi 6, prin rezoluţie şi aplicând substituţia {x6/x1, x7/f (x1)}, se
elimină literalii Copac(f (x1)) şi ¬Copac(f (x1))

12. P asare(a)

Din 3 şi 7, prin rezoluţie şi aplicând substituţia {x3/a}, se elimină


literalii Cuf undar(a) şi ¬Cuf undar(a)

13. Acvatic(a)

Din 4 şi 7, prin rezoluţie şi aplicând substituţia {x3/a}, se elimină


literalii Cuf undar(a) şi ¬Cuf undar(a)

14. ¬P asare(a) ∨ ¬LangaLac(f (a))

Din 8 şi 11, prin rezoluţie şi aplicând substituţia {x1/a}, se elimină
literalii M anancaP este(a) şi ¬M anancaP este(a)

15. ¬P asare(a) ∨ LangaLac(f (a))

Din 10 şi 13, prin rezoluţie şi aplicând substituţia {x1/a}, se elimină
literalii Acvatic(a) şi ¬Acvatic(a)

16. ¬LangaLac(f (a))

Din 12 şi 14, prin rezoluţie se elimină literalii P asare(a) şi ¬P asare(a)

17. LangaLac(f (a))

Din 12 şi 15, prin rezoluţie se elimină literalii P asare(a) şi ¬P asare(a)

18. 

Din 12 şi 15, prin rezoluţie se elimină literalii LangaLac(f (a)) şi
¬LangaLac(f (a)) şi se obţine clauza vidă

Am obţinut clauza vidă, deci formula 2.2 de la care am pornit este


invalidă. Asta ı̂nseamnă că implicaţia iniţială este validă.

11

You might also like