AR: clausale logica

38
AR: clausale logica AR: clausale logica De stap naar: De stap naar: resolutie resolutie

description

AR: clausale logica. De stap naar: resolutie. Veralgemeende vorm van de formules:.  x1 …  xk A1  A2 …  Am  B1  B2 …  Bn. Clausale vorm. Horn clauses is het bijzonder geval met m = 1 We veronderstellen dat S = T  {~F} alleen bestaat uit clausale formules. - PowerPoint PPT Presentation

Transcript of AR: clausale logica

Page 1: AR: clausale logica

AR: clausale logicaAR: clausale logica

De stap naar: De stap naar: resolutieresolutie

Page 2: AR: clausale logica

2

Clausale vormClausale vorm

Veralgemeende vorm van de formules:Veralgemeende vorm van de formules:

x1 … xk A1 A2 … Am B1 B2 … Bn

Horn clauses is het bijzonder geval met Horn clauses is het bijzonder geval met m = 1m = 1

We veronderstellen dat We veronderstellen dat S = T S = T {~F} {~F} alleen alleen bestaat uit clausale formules. bestaat uit clausale formules.

DoelDoel:: bewijs dat bewijs dat SS inconsistent is. inconsistent is.

Page 3: AR: clausale logica

3

Voorbeeld: Moore’s probleemVoorbeeld: Moore’s probleem

BlauwBlauw ofof RoodRood

Gegeven 3 blokken:Gegeven 3 blokken:

Bewijs dat er een Bewijs dat er een blauwblauw blok naast een blok naast een roodrood blok staat!blok staat!

Page 4: AR: clausale logica

4

Moore’s probleem (2):Moore’s probleem (2):

Dit zou een geval-analyse vereisen!Dit zou een geval-analyse vereisen!

In clausale vorm:In clausale vorm:

blauw(Blok1)blauw(Blok1)rood(Blok3)rood(Blok3)blauw(Blok2) blauw(Blok2) rood(Blok2) rood(Blok2)

naast(Blok1,Blok2)naast(Blok1,Blok2)naast(Blok2,Blok1)naast(Blok2,Blok1)naast(Blok2,Blok3)naast(Blok2,Blok3)naast(Blok3,Blok2)naast(Blok3,Blok2)

BewijsBewijs:: ofof false false naast(b1,b2) naast(b1,b2) blauw(b1) blauw(b1) rood(b2) rood(b2)

is inconsistent.is inconsistent.

b1 b1 b2 naast(b1,b2) b2 naast(b1,b2) blauw(b1) blauw(b1) rood(b2) rood(b2)

PROBLEEMPROBLEEM:: Modus ponens is niet geschikt voor Modus ponens is niet geschikt voor blauw(Blok2) blauw(Blok2) rood(Blok2) rood(Blok2)

Page 5: AR: clausale logica

5

hoog_gequalificeerd(x) hoog_gequalificeerd(x) phd(x) phd(x)vroeg_verdienen(x) vroeg_verdienen(x) ~phd(x) ~phd(x)rijk(x) rijk(x) hoog_gequalificeerd(x) hoog_gequalificeerd(x)rijk(x) rijk(x) vroeg_verdienen(x) vroeg_verdienen(x)

(1)(1)(2)(2)(3)(3)(4)(4)

Introductie van negatie in bodies Introductie van negatie in bodies is equivalent:is equivalent:

Voorbeeld:Voorbeeld:

Bewijs: Bewijs: rijk(Ik)rijk(Ik)

Waarom equivalent? Waarom equivalent? (2)(2) is equivalent met is equivalent met verdienen(x) verdienen(x) phd(x) phd(x) vanwegevanwege A A ~B ~B A A B B

Page 6: AR: clausale logica

6

Disjunctie versus negatie Disjunctie versus negatie in het algemeen:in het algemeen:

x1 … xk A1 A2 … Am B1 B2 … Bn

is equivalent aan:is equivalent aan:

x1 … xk A1 B1 B2 … Bn ~A2 … ~Am

of ook aan:of ook aan:

x1 … xk Ai B1 B2 … Bn ~A1 .. .. ~Am

BewijsBewijs: : A A ~B ~B A A B B en basis relaties tussen en basis relaties tussen , , and ~ and ~

A ~B A B

Page 7: AR: clausale logica

7

Het resolutie principeHet resolutie principe

A1 A1 A2 A2 … … Am Am B1 B1 … … BB … … Bn BnC1 C1 ... ... BB … … Ck Ck D1 D1 D2 D2 … … Dl Dl

A1 A1 A2 A2 … … Am Am C1 C1 .. .. .. .. Ck Ck B1 B1 .. .. .. .. Bn Bn D1 D1 D2 D2 … … Dl Dl

Propositie geval:Propositie geval:

CorrectheidCorrectheid: duidelijk want:: duidelijk want: maak van alle andere disjuncten genegeerde maak van alle andere disjuncten genegeerde

body-body- atomen,atomen, pas dan veralgemeende modus ponens toe,pas dan veralgemeende modus ponens toe, breng al die genegeerde body-atomen terug als breng al die genegeerde body-atomen terug als

disjuncten in het hoofd.disjuncten in het hoofd.

Page 8: AR: clausale logica

8

Resolutie: predicaten logicaResolutie: predicaten logica

waarbij waarbij = = mgu(mgu(BB,,B’B’))..

Correctheid: Correctheid: door correctheid van het gegronde geval, door correctheid van het gegronde geval,

toegepast op alle instantiaties van deze regeltoegepast op alle instantiaties van deze regel

A1 A1 A2 A2 … … Am Am B1 B1 … … BB … … Bn BnC1 C1 ... ... B’B’ … … Ck Ck D1 D1 D2 D2 … … Dl Dl

(A1 (A1 A2 A2 … … Am Am C1 C1 .. .. .. .. Ck) Ck) (B1 (B1 .. .. .. .. Bn Bn D1 D1 D2 D2 … … Dl) Dl)

Page 9: AR: clausale logica

9

Kan ook in andere vormen:Kan ook in andere vormen: In In conjunctieve normaal vormconjunctieve normaal vorm::

met met = = mgu(mgu(BB,,B’B’))..

A1 A1 A2 A2 … … Am Am ~B1 ~B1 … … ~~BB … … ~Bn ~BnC1 C1 ... ... B’B’ … … Ck Ck ~D1 ~D1 ~D2 ~D2 … … ~Dl ~Dl

(A1 (A1 A2 A2 … … Am Am C1 C1 .. .. .. .. Ck) Ck) (~B1 (~B1 .. .. .. .. ~Bn ~Bn ~D1 ~D1 ~D2 ~D2 … … ~Dl) ~Dl)

Page 10: AR: clausale logica

10

Opnieuw Moore’s voorbeeldOpnieuw Moore’s voorbeeld

blauw(Blok2)blauw(Blok2) rood(Blok2) rood(Blok2)

rood(Blok2) rood(Blok2) naast( naast(Blok2Blok2,b2) ,b2) rood(b2)rood(b2)

blauw(Blok1)blauw(Blok1)rood(Blok3)rood(Blok3)blauw(Blok2) blauw(Blok2) rood(Blok2) rood(Blok2)

naast(Blok1,Blok2)naast(Blok1,Blok2)naast(Blok2,Blok1)naast(Blok2,Blok1)naast(Blok2,Blok3)naast(Blok2,Blok3)naast(Blok3,Blok2)naast(Blok3,Blok2)

rood(Blok2) rood(Blok2) naast(Blok2,naast(Blok2,Blok3Blok3))

rood(Blok3)rood(Blok3)

rood(Blok2)rood(Blok2)

naast(Blok2,Blok3)naast(Blok2,Blok3)

false false naast(b1, naast(b1,Blok2Blok2) ) blauw(b1)blauw(b1)

false false naast(b1,b2) naast(b1,b2) blauw(b1) blauw(b1) rood(b2)rood(b2)

false false naast(naast(Blok1Blok1,Blok2),Blok2)

blauw(Blok1)blauw(Blok1)

false false

naast(Blok1,Blok2)naast(Blok1,Blok2)

false false naast(b1,b2) naast(b1,b2) blauw(b1blauw(b1)) rood(b2) rood(b2)

Page 11: AR: clausale logica

11

Phd voorbeeldPhd voorbeeld

rijk(x)rijk(x) false false rijk(Ik)rijk(Ik)

false false

factoringfactoring

vroeg_verdienen(x) vroeg_verdienen(x) hoog_gequal(hoog_gequal(xx)) rijk(y) rijk(y) hoog_gequal(y)hoog_gequal(y)

rijk(rijk(xx) ) rijk(x) rijk(x)

vroeg_verdienen(x)vroeg_verdienen(x) rijk( rijk(xx) ) rijk(y) rijk(y) vroeg_verdienen(y)vroeg_verdienen(y)

hoog_gequal(y) hoog_gequal(y) phd(y)phd(y)vroeg_verdienen(x) vroeg_verdienen(x) phd(x)phd(x)

hoog_gequal(x) hoog_gequal(x) phd(x) phd(x)vroeg_verdienen(x) vroeg_verdienen(x) phd(x) phd(x)rijk(x) rijk(x) hoog_gequal(x) hoog_gequal(x)rijk(x) rijk(x) vroeg_verdienen(x) vroeg_verdienen(x)

(1)(1)(2)(2)(3)(3)(4)(4)

false false rijk(Ik) rijk(Ik)

Page 12: AR: clausale logica

12

Factoring: algemeenFactoring: algemeen

Zowel:Zowel:

met: met: is is mgu(mgu(BB,,B’B’))

A1 A1 A2 A2 … … Am Am B1 B1 … … BB … … B’B’ … … Bn Bn

(A1 (A1 A2 A2 … … Am Am B1 B1 … … BB … … … … Bn) Bn)

als:als:

met: met: is is mgu(mgu(AA,,A’A’) ) . .

A1 A1 … … A A … … A’A’ … … Am Am B1 B1 … … BnBn

(A1 (A1 … … A A … … … … Am Am B1 B1 … … Bn) Bn)

Page 13: AR: clausale logica

13

De nood aan factoringDe nood aan factoring

p p q q p p q q false false p p q qq q p p

(p (p q) q) (p (p ~q) ~q) (~p (~p q) q) (~p (~p ~q) ~q)

Zonder factoring is resolutie niet volledig !Zonder factoring is resolutie niet volledig ! VoorbeeldVoorbeeld: : bewijsbewijs {(p {(p ~p) ~p) (q (q ~q)} ~q)} inconsistentinconsistent

Normalizatie:Normalizatie:

Clausale vorm:Clausale vorm:

p p p p q q q q

p p q q q q p p

Je kan nooitJe kan nooit false false krijgen !!!!krijgen !!!!

Page 14: AR: clausale logica

14

Reden?Reden? De lengte van een formule = het aantal atomen De lengte van een formule = het aantal atomen

(false niet meegerekend):(false niet meegerekend):

A1 A1 A2 A2 … … Am Am B1 B1 … … BB … … Bn BnC1 C1 ... ... B’B’ … … Ck Ck D1 D1 D2 D2 … … Dl Dl

(A1 (A1 A2 A2 … … Am Am C1 C1 .. .. .. .. Ck) Ck) (B1 (B1 .. .. .. .. Bn Bn D1 D1 D2 D2 … … Dl) Dl)

LengteLengte

NNMM

N + M - 2N + M - 2

In het vorige voorbeeld hadden alle formules In het vorige voorbeeld hadden alle formules lengte 2lengte 2

Je kan NOOIT Je kan NOOIT false false ( (lengte 0lengte 0) krijgen !) krijgen !

Page 15: AR: clausale logica

15

De resolutie procedureDe resolutie procedureS:=:= initial theory (inconsistent te bewijzen);initial theory (inconsistent te bewijzen);ConsistentConsistent:= false;:= false;InconsistentInconsistent:= false;:= false;

WhileWhile not(not(ConsistentConsistent) and not() and not(InconsistentInconsistent) do) doIfIf false false SS ThenThen Inconsistent Inconsistent := true:= trueElseElse

IfIf SS contains no paircontains no pair ((FF,,GG)) resolvable and notresolvable and not yet resolvedyet resolved

ThenThen ConsistentConsistent:= true:= trueElseElse SELECT SELECT a pair (a pair (FF,,GG) from ) from SS, resolvable, resolvable

and not yet resolved;and not yet resolved; HH:= factor( resolvent (:= factor( resolvent (FF,,GG) );) ); S:= S S:= S HHEnd-whileEnd-while

Page 16: AR: clausale logica

16

Gedrag onder Gedrag onder Horn Horn clauseclause resolutie : resolutie :

false false ... ... … … ... ...

false false

false false ... ... … … ... ...

false false ... ... … … ... ...

......

Lineaire resolutie !Lineaire resolutie !

Page 17: AR: clausale logica

17

Gedrag onderGedrag onder AlgemeneAlgemene resolutie : resolutie :

Algemene resolutie !Algemene resolutie !

… … ... ... … … ... ...

… … ... ...

… … ... ... … … ... ...

… … ... ... … … ... ...

… … ... ...

false false

Page 18: AR: clausale logica

18

Lineaire resolutie:Lineaire resolutie: De belangrijkste verschillen met Horn clauses:De belangrijkste verschillen met Horn clauses:

Bij Bij Horn clausesHorn clauses waren de bewijzen altijd LINEAIR waren de bewijzen altijd LINEAIR !! we starten met de “goal”we starten met de “goal” dan gebruiken we een Horn clause om een dan gebruiken we een Horn clause om een

nieuwe nieuwe goal te berekenengoal te berekenen enz.enz.

Clausale resolutie is NIET lineairClausale resolutie is NIET lineair Ook: Ook: factoringfactoring is soms nodig is soms nodig

Lineair resolutie Lineair resolutie (een bewijs is een lineaire (een bewijs is een lineaire opeenvolging van resolutie stappen, startend opeenvolging van resolutie stappen, startend van de goal)van de goal) is één van de belangrijkste is één van de belangrijkste strategieen om resolutie efficient te maken.strategieen om resolutie efficient te maken.

Page 19: AR: clausale logica

19

Non-determinisme in de Non-determinisme in de resolutie procedureresolutie procedure

SELECT SELECT a paira pair ((FF,,GG)) : maakt het een : maakt het een ERGERG non- non-deterministische procedure.deterministische procedure.

Het controle probleem voor resolutie is Het controle probleem voor resolutie is bijzonder moeilijk.bijzonder moeilijk.Een bewijs is niet meer 1 (lineaire) tak in een boom, Een bewijs is niet meer 1 (lineaire) tak in een boom,

maar een subgraaf van de graaf van alle resoluties.maar een subgraaf van de graaf van alle resoluties.

Is het correct? Is het volledig? ?Is het correct? Is het volledig? ?

Bestaat er een strategie die volledig is??? Bestaat er een strategie die volledig is???

Page 20: AR: clausale logica

20

Correctheid / Volledigheid ?Correctheid / Volledigheid ?

Volledigheid:Volledigheid: Er bestaat een volledige strategie Er bestaat een volledige strategie (standaard vb: de Herbrand stellingenbewijzer).(standaard vb: de Herbrand stellingenbewijzer).

Correctheid:Correctheid:Als de procedure Als de procedure InconsistentInconsistent teruggeeft teruggeeft::

Dan is Dan is false false toegevoegd toegevoegd Dan is Dan is false false een logisch gevolg van een logisch gevolg van SS

((want de resolutie stap is correct).want de resolutie stap is correct). Dus in alle modellen van Dus in alle modellen van SS is ook is ook false false waarwaar Dus Dus SS heeft geen modellen heeft geen modellen

Page 21: AR: clausale logica

21

… … ...... … … ......… … ......

… … ......… … ......

Correctheid / Volledigheid (2) ?Correctheid / Volledigheid (2) ?Als de procedure Als de procedure ConsistentConsistent teruggeeft teruggeeft::

Dan zijn ALLE MOGELIJKE resolutie stappen Dan zijn ALLE MOGELIJKE resolutie stappen uitgevoerd, zonder uitgevoerd, zonder false false te bereiken. te bereiken.

Stel toch inconsistent.Stel toch inconsistent. Er bestaat een Er bestaat een VOLLEDIGE strategieVOLLEDIGE strategie: die levert : die levert na eindige tijd wél na eindige tijd wél false false

Maar die doet (een deel van) dezelfde resolutie Maar die doet (een deel van) dezelfde resolutie stappen !!stappen !! Oorspronkelijke gaf ook Oorspronkelijke gaf ook false

… … ...... … … ......… … ......

… … ......

… … ...... … … ......

… … … … false false

Page 22: AR: clausale logica

AR voor volledige AR voor volledige predicaten logicapredicaten logica

Normalizatie naar clausale formNormalizatie naar clausale form

Page 23: AR: clausale logica

23

Wat is er meer nodig voor Wat is er meer nodig voor volledige predicaten logica?volledige predicaten logica?

NIETS!NIETS!

Clausale logica is Clausale logica is equivalentequivalent aan volledige aan volledige predicaten logica:predicaten logica: elke theorie elke theorie TT in FOL (first order predicate in FOL (first order predicate

logic) kan automatisch omgezet worden in logic) kan automatisch omgezet worden in een clausale theorie een clausale theorie T’T’, zo dat:, zo dat:

T is inconsistent asa T’ is inconsistent

Page 24: AR: clausale logica

24

Propositioneel: via conjunctieve Propositioneel: via conjunctieve normal form:normal form:

Elke formule is equivalent aan een formule van Elke formule is equivalent aan een formule van de vorm:de vorm:(A1 (A1 ... ... An) An) (B1 (B1 … … Bm) Bm) … … (C1 (C1 … … Ck) Ck)

waarin alle waarin alle AiAi, , BiBi, …, , …, CiCi ofwel ofwel atomairatomair of of ~atomair~atomair.. Idee:Idee:

p p q q p p q q breng alle ~ zo ver mogelijk naar binnenbreng alle ~ zo ver mogelijk naar binnengebruik de distributiviteit van gebruik de distributiviteit van en en

p p q q q q p pq q ~p ~p

Uiteindelijk:Uiteindelijk:

p1 p1 … … pn pn ~q1 ~q1 … ~qm … ~qm p1 p1 … … pn pn q1 q1 … … qm qm

Page 25: AR: clausale logica

25

Predicaten geval: hoofd-stappenPredicaten geval: hoofd-stappen

Dit vereist soms nieuwe namen voor variabelen.Dit vereist soms nieuwe namen voor variabelen.Vb.:Vb.: x p(x) x p(x) x q(x) x q(x) x x z p(x) z p(x) q(z)q(z) Merk:Merk: x bewolkt(x) x bewolkt(x) x zonnig(x)x zonnig(x) is is niet niet equivalentequivalent metmet x bewolkt(x) x bewolkt(x) zonnig(x) zonnig(x)

Prenix normaal vormPrenix normaal vorm

(Q1 x) (Q2 y) …(Qn z) F(Q1 x) (Q2 y) …(Qn z) F

or or heeft geen quantoren!

Conjunctieve normaal vorm:Conjunctieve normaal vorm:

(Q1 x) (Q2 y) …(Qn z) ( .. (Q1 x) (Q2 y) …(Qn z) ( .. .. ) .. ) ( .. ( .. .. ) .. ) .. .. ( .. ( .. .. ) .. )

Die 2 stappen worden vermengd.Die 2 stappen worden vermengd.

Page 26: AR: clausale logica

26

Predicaten geval: vervolgPredicaten geval: vervolg

Skolem functiesSkolem functies: zoveel argumenten als omsluitende : zoveel argumenten als omsluitende -variabelen-variabelen

Skolem normaal vorm:Skolem normaal vorm: transformeer naar: transformeer naar:

(( x) ( x) ( y) …( y) …( z) ( .. z) ( .. .. ) .. ) ( .. ( .. .. ) .. ) .. .. ( .. ( .. .. ) .. )

x rich(x)x rich(x) wordt wordt rich(rich(SkSk)) , met , met SkSk een nieuwe een nieuwe constante (‘skolem constante’) die nog niet in constante (‘skolem constante’) die nog niet in het alphabet voorkomt.het alphabet voorkomt.

MoeilijkerMoeilijker: indien : indien genest voorkomt binnen genest voorkomt binnen :: ‘‘Everyone has a heart’Everyone has a heart’

x person(x) x person(x) y heart(y) y heart(y) has(x,y) has(x,y)

Niet correct:Niet correct: x person(x) x person(x) heart( heart(HH) ) has(x, has(x,HH)) Correct:Correct: x person(x) x person(x) heart( heart(H(x)H(x)) ) has(x, has(x,H(x)H(x)))

Page 27: AR: clausale logica

27

Predicaten geval: vervolgPredicaten geval: vervolg

Clausale vorm:Clausale vorm:

x x y y z z (p(x) (p(x) ~q(y) ~q(y) ~r(y)) ~r(y)) (r(A) (r(A) q(z)) q(z)) ~s(x,y) ~s(x,y)

S = {S = {x x y (p(x) y (p(x) ~q(y) ~q(y) ~r(y)) ~r(y)) , , z (r(A) z (r(A) q(z)) q(z)) , , x x y ~s(x,y) y ~s(x,y) } }

S = {S = {p(x) p(x) q(y) q(y) r(y) r(y) , , r(A) r(A) q(z)) q(z)) , , false false s(x,y) s(x,y) } }

Disjuncties:Disjuncties:

Page 28: AR: clausale logica

28

Expliciete Procedure:Expliciete Procedure:1.1. Elimineer Elimineer en en . .

2.2. Breng de negaties naar binnen: Breng de negaties naar binnen:~(~p) ~(~p) p p,, ~(p ~(p q) q) ~p ~p ~q ~q,, (analoog voor(analoog voor ))~~x x x ~ x ~ ,, ~ ~x x x ~x ~

3.3. Standardizeer variabele namen (maak verschillend). Standardizeer variabele namen (maak verschillend).

PRENEX NORMAAL VORMPRENEX NORMAAL VORM44.. Breng quantoren naar voor. Breng quantoren naar voor.

SKOLEMS INTRODUCERENSKOLEMS INTRODUCEREN5.5. Elimineer Elimineer . .

CONJUNCTIEVE VORMCONJUNCTIEVE VORM6.6. Disjuncties naar binnen. Disjuncties naar binnen.

VERZAMELING DISJUNC.VERZAMELING DISJUNC.77.. Laat Laat weg. weg.8.8. Laat Laat weg. weg.

CLAUSALE VORMCLAUSALE VORM9.9. ~atomen naar andere kant. ~atomen naar andere kant.

Page 29: AR: clausale logica

29

Marcus voorbeeld:Marcus voorbeeld:

xxyy ~(~(man(x)man(x) heerser(y)heerser(y) probeerverm(x,y)probeerverm(x,y))) ~loyaalaan(x,y)~loyaalaan(x,y)xxyy ~~man(x)man(x) ~~heerser(y)heerser(y) ~~probeerverm(x,y)probeerverm(x,y) ~loyaalaan(x,y)~loyaalaan(x,y)false false man(x)man(x) heerser(y)heerser(y) probeerverm(x,y)probeerverm(x,y) loyaalaan(x,y)loyaalaan(x,y)

x loyaalaan(x,f(x))x loyaalaan(x,f(x))loyaalaan(x,f(x))loyaalaan(x,f(x))

Feiten Feiten 1.1. , , 2.2. , , 4.4. en en 8.8. waren al o.k.: waren al o.k.: ex.:ex.: heerser(Cesar)heerser(Cesar)

3.3. x Pompeier(x)x Pompeier(x) Romein(x) : o.k. ! Romein(x) : o.k. ! 6.6. xx yy loyaalaan(x,y)loyaalaan(x,y)

7.7. xxy man(x)y man(x) heerser(y)heerser(y) probeerverm(x,y)probeerverm(x,y) ~loyaalaan(x,y)~loyaalaan(x,y)

Page 30: AR: clausale logica

30

Axioma’s in Normaal vorm:Axioma’s in Normaal vorm: 1.1. man(Marcus) man(Marcus) 2.2. Pompeier(Marcus) Pompeier(Marcus) 3.3. Romein(x) Romein(x) Pompeier(x) Pompeier(x) 4.4. heerser(Cesar) heerser(Cesar) 5.5. loyaalaan(x,Cesar) loyaalaan(x,Cesar) haat(x,Cesar)haat(x,Cesar) Romein(x) Romein(x) 6.6. loyaalaan(x,f(x)) loyaalaan(x,f(x)) 7.7. false false man(x) man(x) heerser(y)heerser(y) probeerverm(x,y)probeerverm(x,y)

loyaalaan(x,y)loyaalaan(x,y) 8.8. probeerverm(Marcus,Cesar) probeerverm(Marcus,Cesar)

Te bewijzen: Te bewijzen: haat(Marcus,Cesar)haat(Marcus,Cesar)Negatie: Negatie: ~haat(Marcus,Cesar)~haat(Marcus,Cesar)Normaal Vorm: Normaal Vorm: false false haat(Marcus,Cesar)haat(Marcus,Cesar)

Page 31: AR: clausale logica

31

Resolutie bewijs (1):Resolutie bewijs (1):false false haat(Marcus,Cesar)haat(Marcus,Cesar)

loyaalaan(x,Cesar) loyaalaan(x,Cesar) haat(x,Cesar)haat(x,Cesar) Romein(x) Romein(x)

loyaalaan(loyaalaan(MarcusMarcus,Cesar) ,Cesar) Romein(Romein(MarcusMarcus))

{x/Marcus}{x/Marcus}

5.5.

Romein(x)Romein(x) Pompeier(x) Pompeier(x)

loyaalaan(Marcus,Cesar) loyaalaan(Marcus,Cesar) Pompeier(Pompeier(MarcusMarcus))

{x/Marcus}{x/Marcus}

3.3.

Pompeier(Marcus)Pompeier(Marcus)

loyaalaan(Marcus,Cesar)loyaalaan(Marcus,Cesar)

{}{}2.2.

Page 32: AR: clausale logica

32

Resolutie bewijs (2)Resolutie bewijs (2)loyaalaan(Marcus,Cesar)loyaalaan(Marcus,Cesar)

false false man(x) man(x) heerser(y)heerser(y) probeerverm(x,y)probeerverm(x,y) loyaalaan(x,y)loyaalaan(x,y)

false false man(man(MarcusMarcus)) heerser(heerser(CesarCesar)) probeerverm(probeerverm(MarcusMarcus,,CesarCesar))

7.7.

{x/Marcus,y/Cesar}{x/Marcus,y/Cesar}

man(Marcus)man(Marcus)

false false heerser(Cesar)heerser(Cesar) probeerverm(Marcus,Cesar)probeerverm(Marcus,Cesar)

1.1.{}{}

heerser(Cesar)heerser(Cesar)

false false probeerverm(Marcus,Cesar)probeerverm(Marcus,Cesar)

4.4.

{}{}

probeerverm(Marcus,Cesar)probeerverm(Marcus,Cesar)

false false

8.8.

{}{}

Page 33: AR: clausale logica

33

Een voorbeeld uit Een voorbeeld uit groepentheorie:groepentheorie:

Stel: Stel: een groepsoperatie. een groepsoperatie. Noteer prefix: Noteer prefix: p(x,y,z)p(x,y,z) xx y = zy = z Definitie van een Definitie van een monoide, met linker-neutraal en linker-invers elementmonoide, met linker-neutraal en linker-invers element::

is overal gedefinieerd:is overal gedefinieerd:

xxyyz p(x,y,z)z p(x,y,z)

is associatief:is associatief: (x (x y) y) z = x z = x (y (y z) z)

uu vvxxyyzzuuvvww(p(x,y,(p(x,y,uu) ) p(y,z, p(y,z,vv)) )) (p( (p(uu,z,,z,ww) ) p(x, p(x,vv,,ww))))

(1)(1)

(2)(2)

Page 34: AR: clausale logica

34

Een voorbeeld uit Een voorbeeld uit groepentheorie (2):groepentheorie (2):

heeft een heeft een linker-neutraallinker-neutraal en en linker-inverslinker-invers element element::

xx ((y p(y p(xx,y,y) ,y,y) yyzz p( p(zz,y,,y,xx))

De stellingDe stelling: er bestaat ook een : er bestaat ook een rechter-inversrechter-invers ! !

(3)(3)

xx ((y p(y p(xx,y,y) ,y,y) yyzz p(y, p(y,zz,,xx)) (4)(4)

Automatisch te bewijzen met resolutie.Automatisch te bewijzen met resolutie.

Page 35: AR: clausale logica

35

Normalisatie:Normalisatie:

(1) (1) xxyyz p(x,y,z)z p(x,y,z)

StappenStappen: 1,2,3,4: o.k.: 1,2,3,4: o.k. Stap 5Stap 5: skolemisatie:: skolemisatie:

xxy p(x,y,m(x,y))y p(x,y,m(x,y))

StappenStappen: 6,7: o.k.: 6,7: o.k. Stap 8Stap 8: clausale vorm:: clausale vorm:

p(x,y,m(x,y))p(x,y,m(x,y))

Page 36: AR: clausale logica

36

Normalisatie (vervolg):Normalisatie (vervolg):

(2)(2) xxyyzzuuvvw w (p(x,y,u) (p(x,y,u) p(y,z,v)) p(y,z,v)) (p(u,z,w) (p(u,z,w) p(x,v,w)) p(x,v,w))

Stap 1Stap 1: elimineer : elimineer enen ::

xxyyzzuuvvw w (p(x,y,u) (p(x,y,u) p(y,z,v)) p(y,z,v)) ((((p(u,z,w) p(u,z,w) p(x,v,w) p(x,v,w)) ) ((p(x,v,w) p(x,v,w) p(u,z,w)p(u,z,w)))))

xxyyzzuuvvw w (p(x,y,u) (p(x,y,u) p(y,z,v)) p(y,z,v)) ((((~~p(u,z,w) p(u,z,w) p(x,v,w)) p(x,v,w)) ((~~p(x,v,w) p(x,v,w) p(u,z,w)))p(u,z,w)))xxyyzzuuvvw w ~~(p(x,y,u) (p(x,y,u) p(y,z,v)) p(y,z,v)) ((~p(u,z,w) ((~p(u,z,w) p(x,v,w)) p(x,v,w)) (~p(x,v,w) (~p(x,v,w) p(u,z,w)))p(u,z,w)))

Page 37: AR: clausale logica

37

Normalisatie (vervolg):Normalisatie (vervolg):xxyyzzuuvvw w ~(p(x,y,u) ~(p(x,y,u) p(y,z,v)) p(y,z,v)) ((~p(u,z,w) ((~p(u,z,w) p(x,v,w)) p(x,v,w)) (~p(x,v,w) (~p(x,v,w) p(u,z,w)))p(u,z,w)))

xxyyzzuuvvw w ( (~~p(x,y,u) p(x,y,u) ~~p(y,z,v)) p(y,z,v)) ((~p(u,z,w) ((~p(u,z,w) p(x,v,w)) p(x,v,w)) (~p(x,v,w) (~p(x,v,w) p(u,z,w)))p(u,z,w)))

Stap 2Stap 2: breng negaties naar binnen: breng negaties naar binnen::

StappenStappen:: 3,4,5 o.k.3,4,5 o.k. Stap 6Stap 6: breng disjuncties naar binnen:: breng disjuncties naar binnen:

xxyyzzuuvvw w (((~p(x,y,u) (~p(x,y,u) ~p(y,z,v)) ~p(y,z,v)) (~p(u,z,w) (~p(u,z,w) p(x,v,w)) p(x,v,w))) ) (((~p(x,y,u) (~p(x,y,u) ~p(y,z,v)) ~p(y,z,v)) (~p(x,v,w) (~p(x,v,w) p(u,z,w)) p(u,z,w))))

A A

(B (B C) C)

A A (B (B C) = (A C) = (A B) B) (A (A C) C)

A A BB

A A CC

Page 38: AR: clausale logica

38

Normalisatie (vervolg):Normalisatie (vervolg):

xxyyzzuuvvw w ((~p(x,y,u) ((~p(x,y,u) ~p(y,z,v)) ~p(y,z,v)) (~p(u,z,w) (~p(u,z,w) p(x,v,w))) p(x,v,w))) ((~p(x,y,u) ((~p(x,y,u) ~p(y,z,v)) ~p(y,z,v)) (~p(x,v,w) (~p(x,v,w) p(u,z,w))) p(u,z,w)))

xxyyzzuuvvw w ((((~p(x,y,u) ~p(x,y,u) ~p(y,z,v) ~p(y,z,v))) ((~p(u,z,w) ~p(u,z,w) p(x,v,w) p(x,v,w)))) ) ((((~p(x,y,u) ~p(x,y,u) ~p(y,z,v) ~p(y,z,v))) ((~p(x,v,w) ~p(x,v,w) p(u,z,w) p(u,z,w))))) ++ verwijder redundante haakjes: verwijder redundante haakjes: ( )( )

xxyyzzuuvvw w (~p(x,y,u) (~p(x,y,u) ~p(y,z,v) ~p(y,z,v) ~p(u,z,w) ~p(u,z,w) p(x,v,w)) p(x,v,w)) (~p(x,y,u) (~p(x,y,u) ~p(y,z,v) ~p(y,z,v) ~p(x,v,w) ~p(x,v,w) p(u,z,w)) p(u,z,w))

Stappen 7,8Stappen 7,8: elimineer : elimineer en en ::

~p(x,y,u) ~p(x,y,u) ~p(y,z,v) ~p(y,z,v) ~p(x,v,w) ~p(x,v,w) p(u,z,w)p(u,z,w)

~p(x,y,u) ~p(x,y,u) ~p(y,z,v) ~p(y,z,v) ~p(u,z,w) ~p(u,z,w) p(x,v,w) p(x,v,w)