Čtení: 40 minHodnotí se: test 2 (15 b), zkouška

4 Logika prvního řádu a rezoluce

Po přečtení umíš
  • zapsat větu v logice prvního řádu bez typických chyb
  • převést formuli do CNF včetně skolemizace
  • unifikovat dva termy
  • dokázat tvrzení rezolucí zamítáním

4.1 Ukázka: Sokrates

Všichni lidé jsou smrtelní a Sokrates je člověk. Chceme dokázat, že je smrtelný. Rezoluce dokazuje sporem: přidá opak a hledá prázdnou klauzuli.

  1. ¬Man(x)∨Mortal(x)\neg Man(x) \vee Mortal(x)
  2. Man(Sokrates)Man(Sokrates)
  3. ¬Mortal(Sokrates)\neg Mortal(Sokrates) (negace tvrzení)
  4. Z 1 a 3 s x/Sokratesx / Sokrates: ¬Man(Sokrates)\neg Man(Sokrates)
  5. Ze 4 a 2: prázdná klauzule ⊥\bot

Spor, tedy tvrzení platí.

4.2 Zápis vět

Varování 4.2 (Dvě klasické chyby)

Všichni se píšou s implikací: ∀x Cat(x)⇒Mammal(x)\forall x\, Cat(x) \Rightarrow Mammal(x). S konjunkcí by to znamenalo, že všechno je kočka.

Existuje se píše s konjunkcí: ∃x Cat(x)∧Black(x)\exists x\, Cat(x) \wedge Black(x). S implikací to platí už díky čemukoli, co není kočka.

4.3 Převod na CNF

  1. Odstraň ⇒\Rightarrow a ⇔\Leftrightarrow.
  2. Přesuň negace k atomům: ¬∀x p\neg\forall x\, p je ∃x ¬p\exists x\, \neg p.
  3. Přejmenuj proměnné, aby se neopakovaly.
  4. Skolemizuj: existenční proměnnou nahraď funkcí všeobecných proměnných, které jsou nad ní.
  5. Zahoď ∀\forall.
  6. Distribuuj ∨\vee přes ∧\wedge.
Varování 4.3 (Skolemizace závisí na vnějších proměnných)

∀x ∃y Loves(x,y)\forall x\, \exists y\, Loves(x, y) dá Loves(x,F(x))Loves(x, F(x)), ne Loves(x,A)Loves(x, A). Konstanta by tvrdila, že všichni milují stejného.

4.4 Unifikace

Definice 4.4 (Nejobecnější unifikátor)

Substituce θ\theta s nejméně omezeními, po které jsou dva výrazy stejné.

Výrazy Výsledek
Knows(John,x)Knows(John, x), Knows(John,Jane)Knows(John, Jane) {x/Jane}\{x / Jane\}
Knows(John,x)Knows(John, x), Knows(y,Mother(y))Knows(y, Mother(y)) {y/John,x/Mother(John)}\{y / John, x / Mother(John)\}
Knows(John,x)Knows(John, x), Knows(x,Elizabeth)Knows(x, Elizabeth) selhání

Třetí případ selže jen kvůli stejnému jménu proměnné. Po standardizaci na Knows(z,Elizabeth)Knows(z, Elizabeth) vyjde {z/John,x/Elizabeth}\{z / John, x / Elizabeth\}. Proto se před rezolucí proměnné v klauzulích přejmenují.

4.5 Rezoluce a faktorizace

Definice 4.5 (Rezoluční pravidlo)

Z (x1∨⋯∨z)(x_1 \vee \dots \vee z) a (y1∨⋯∨¬z′)(y_1 \vee \dots \vee \neg z') při unifikátoru θ\theta literálů zz a z′z' odvoď (x1∨⋯∨y1∨… )θ(x_1 \vee \dots \vee y_1 \vee \dots)\theta.

Samotná rezoluce v logice prvního řádu není úplná. Holičův paradox ji přivede k nekonečnému běhu. Doplňuje ji faktorizace: sloučení unifikovatelných literálů v jedné klauzuli.

Rezoluce je jen semi-rozhodovací. Je-li tvrzení důsledkem, najde důkaz, ale jinak nemusí skončit.

ANL smyčka odvozuje rezolventy ze seznamů waiting a usable, dokud nenajde ⊥\bot.

4.6 Rovnost a SMT

Pro logiku s rovností se rovnosti převádějí na SAT s doplněnou tranzitivitou, nebo se línou cestou přidává jen to, co řešič poruší. SMT spojuje SAT řešič s teoriemi, třeba aritmetikou.

4.7 Kvíz

Kvíz

1. Jak zapíšeš „každý student má učitele“?
2. Skolemizace ∀x ∀y ∃z P(x,y,z)\forall x\, \forall y\, \exists z\, P(x, y, z) dá:
3. Unifikuje se P(x,x)P(x, x) s P(A,B)P(A, B) pro různé konstanty?
4. Co platí pro rezoluci v logice prvního řádu? Může být správně více možností, ale také žádná.
5. Proč negujeme dokazované tvrzení?
Ukázat řešeníPokud T∪{¬C}T \cup \{\neg C\} vede ke sporu, není model TT, ve kterém by CC neplatilo, tedy T⊨CT \models C.

4.8 Příklady na procvičení

Cvičení 4.6

Vyjádři „Existuje právník, jehož všichni zákazníci jsou lékaři“ pomocí Occupation(p,o)Occupation(p, o) a Customer(p1,p2)Customer(p_1, p_2).

Řešení

∃l Occupation(l,Lawyer)∧∀c (Customer(c,l)⇒Occupation(c,Doctor))\exists l\, Occupation(l, Lawyer) \wedge \forall c\, (Customer(c, l) \Rightarrow Occupation(c, Doctor)). Uvnitř je implikace, protože jde o všechny zákazníky.

Cvičení 4.7

Je ∀x P(x)∨¬P(x)\forall x\, P(x) \vee \neg P(x) pravdivá?

Řešení

Ano, pro každé xx platí jedna ze dvou možností, v každé struktuře.

Cvičení 4.8

Které formule říkají „žádná země z Jižní Ameriky nesousedí se zemí v Evropě“?

(a) ¬[∃c,d In(c,SA)∧In(d,E)∧Borders(c,d)]\neg[\exists c, d\, In(c, SA) \wedge In(d, E) \wedge Borders(c, d)]

(b) ∀c,d [In(c,SA)∧In(d,E)]⇒¬Borders(c,d)\forall c, d\, [In(c, SA) \wedge In(d, E)] \Rightarrow \neg Borders(c, d)

(c) ¬∀c In(c,SA)⇒∃d In(d,E)∧¬Borders(c,d)\neg\forall c\, In(c, SA) \Rightarrow \exists d\, In(d, E) \wedge \neg Borders(c, d)

Řešení

Správně jsou (a) a (b), které jsou navzájem ekvivalentní. Možnost (c) říká něco jiného.

4.9 Tahák

Tahák
  • ∀\forall s ⇒\Rightarrow, ∃\exists s ∧\wedge.
  • CNF: spojky, negace dovnitř, přejmenuj, skolemizuj, zahoď ∀\forall, distribuuj.
  • Skolem: funkce vnějších ∀\forall.
  • Unifikace: nejobecnější θ\theta, před ní standardizuj.
  • Důkaz: T∪{¬C}⊢⊥T \cup \{\neg C\} \vdash \bot.
  • Bez faktorizace neúplná, celkově semi-rozhodovací.

Zdroje

  • UMI přednáška 8: logika prvního řádu strany 6–8, rezoluce 9, převod na CNF 10–12, unifikace 13, ANL 14, příklady 15–19, nerozhodnutelnost 20, rovnost a SMT 22–29
  • UMI seminář 5: automatické uvažování