1 / 38

AR: clausale logica

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.

nikkos
Download Presentation

AR: clausale logica

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AR: clausale logica De stap naar: resolutie

  2. 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. • Doel: bewijs dat S inconsistent is.

  3. BlauwofRood Voorbeeld: Moore’s probleem • Gegeven 3 blokken: • Bewijs dat er een blauw blok naast een rood blok staat!

  4. In clausale vorm: blauw(Blok1) rood(Blok3) blauw(Blok2)  rood(Blok2) naast(Blok1,Blok2) naast(Blok2,Blok1) naast(Blok2,Blok3) naast(Blok3,Blok2) • Bewijs: • offalse  naast(b1,b2)  blauw(b1)  rood(b2)is inconsistent. b1 b2 naast(b1,b2)  blauw(b1)  rood(b2) Dit zou een geval-analyse vereisen! Moore’s probleem (2): • PROBLEEM: Modus ponens is niet geschikt voorblauw(Blok2)  rood(Blok2)

  5. hoog_gequalificeerd(x)  phd(x) vroeg_verdienen(x)  ~phd(x) rijk(x)  hoog_gequalificeerd(x) rijk(x)  vroeg_verdienen(x) (1) (2) (3) (4) • Bewijs: rijk(Ik) • Waarom equivalent? • (2) is equivalent met verdienen(x)  phd(x) vanwegeA  ~B  A  B Introductie van negatie in bodies is equivalent: • Voorbeeld:

  6. is equivalent aan: x1 … xk A1  B1 B2 … Bn  ~A2  …  ~Am • of ook aan: x1 … xk Ai  B1 B2 … Bn  ~A1 .. ..  ~Am • Bewijs: A  ~B  A  B en basis relaties tussen ,  and ~ A  ~B  A  B Disjunctie versus negatie in het algemeen: x1 … xk A1  A2 …  Am B1 B2 … Bn

  7. A1  A2  …  Am  B1  … B …  Bn C1  ... B …  Ck  D1  D2  …  Dl A1  A2  …  Am  C1  .. ..  Ck  B1  .. ..  Bn  D1  D2  …  Dl Het resolutie principe • Propositie geval: • Correctheid: duidelijk want: • maak van alle andere disjuncten genegeerde body- atomen, • pas dan veralgemeende modus ponens toe, • breng al die genegeerde body-atomen terug als disjuncten in het hoofd.

  8. A1  A2  …  Am  B1  … B …  Bn C1  ... B’ …  Ck  D1  D2  …  Dl (A1  A2  …  Am  C1  .. ..  Ck)  (B1  .. ..  Bn  D1  D2  …  Dl)  Resolutie: predicaten logica • waarbij = mgu(B,B’). • Correctheid: • door correctheid van het gegronde geval, toegepast op alle instantiaties van deze regel

  9. Kan ook in andere vormen: • In conjunctieve normaal vorm: • met = mgu(B,B’). A1  A2  …  Am  ~B1  … ~B …  ~Bn C1  ... B’ …  Ck  ~D1  ~D2  …  ~Dl (A1  A2  …  Am  C1  .. ..  Ck)  (~B1  .. ..  ~Bn  ~D1  ~D2  …  ~Dl) 

  10. blauw(Blok1) rood(Blok3) blauw(Blok2)  rood(Blok2) naast(Blok1,Blok2) naast(Blok2,Blok1) naast(Blok2,Blok3) naast(Blok3,Blok2) blauw(Blok2) rood(Blok2) rood(Blok3) rood(Blok2)  naast(Blok2,b2) rood(b2) naast(Blok2,Blok3) rood(Blok2) naast(Blok2,Blok3) rood(Blok2) false  naast(b1,b2)  blauw(b1) rood(b2) false  naast(b1,Blok2) blauw(b1) blauw(Blok1) naast(Blok1,Blok2) false naast(Blok1,Blok2) false  Opnieuw Moore’s voorbeeld false  naast(b1,b2) blauw(b1) rood(b2)

  11. false  rijk(Ik) hoog_gequal(x)  phd(x) vroeg_verdienen(x)  phd(x) rijk(x)  hoog_gequal(x) rijk(x)  vroeg_verdienen(x) (1) (2) (3) (4) vroeg_verdienen(x) phd(x) hoog_gequal(y) phd(y) vroeg_verdienen(x) hoog_gequal(x) rijk(y) hoog_gequal(y) vroeg_verdienen(x) rijk(x) rijk(y) vroeg_verdienen(y) rijk(x)  rijk(x) factoring rijk(x) false rijk(Ik) false  Phd voorbeeld

  12. Zowel: • met: is mgu(B,B’) A1  A2  …  Am  B1  … B …  B’ …  Bn (A1  A2  …  Am  B1  … B …  …  Bn)  • als: • met: is mgu(A,A’) . A1  …  A  …  A’…  Am  B1  …  Bn (A1  …  A  …  …  Am  B1  …  Bn)  Factoring: algemeen

  13. q q p q p  q q  p false p q p p p  q q p De nood aan factoring • Zonder factoring is resolutie niet volledig ! • Voorbeeld: bewijs{(p  ~p)  (q  ~q)}inconsistent • Normalizatie: (p  q) (p  ~q) (~p  q) (~p  ~q) • Clausale vorm: Je kan nooitfalse krijgen !!!!

  14. Lengte A1  A2  …  Am  B1  … B …  Bn C1  ... B’ …  Ck  D1  D2  …  Dl (A1  A2  …  Am  C1  .. ..  Ck)  (B1  .. ..  Bn  D1  D2  …  Dl)  Je kan NOOIT false  (lengte 0) krijgen ! Reden? • De lengte van een formule = het aantal atomen (false niet meegerekend): N M N + M - 2 • In het vorige voorbeeld hadden alle formules lengte 2

  15. Whilenot(Consistent) and not(Inconsistent) do Else Else SELECT a pair (F,G) from S, resolvable and not yet resolved; De resolutie procedure S:=initial theory (inconsistent te bewijzen); Consistent:= false; Inconsistent:= false; Iffalse SThenInconsistent := true IfScontains no pair(F,G)resolvable and not yet resolved ThenConsistent:= true H:= factor( resolvent (F,G) ); S:= S H End-while

  16. false  ... …  ... false  ... …  ... false  ... …  ... ... Gedrag onder Horn clause resolutie : Lineaire resolutie ! false 

  17. …  ... …  ... …  ... …  ... …  ... …  ... …  ... …  ... false  Gedrag onderAlgemene resolutie : Algemene resolutie !

  18. Bij Horn clauseswaren de bewijzen altijd LINEAIR ! Lineaire resolutie: • De belangrijkste verschillen met Horn clauses: • we starten met de “goal” • dan gebruiken we een Horn clause om een nieuwe goal te berekenen • enz. • Clausale resolutie is NIET lineair • Ook: factoring is soms nodig • Lineair resolutie (een bewijs is een lineaire opeenvolging van resolutie stappen, startend van de goal) is één van de belangrijkste strategieen om resolutie efficient te maken.

  19. Bestaat er een strategie die volledig is??? Non-determinisme in de resolutie procedure • SELECT a pair(F,G): maakt het een ERG non-deterministische procedure. • Het controle probleem voor resolutie is bijzonder moeilijk. • Een bewijs is niet meer 1 (lineaire) tak in een boom, maar een subgraaf van de graaf van alle resoluties. • Is het correct? Is het volledig? ?

  20. Correctheid / Volledigheid ? • Volledigheid: Er bestaat een volledige strategie (standaard vb: de Herbrand stellingenbewijzer). • Correctheid: • Als de procedure Inconsistent teruggeeft: • Dan is false  toegevoegd • Dan is false  een logisch gevolg van S(want de resolutie stap is correct). • Dus in alle modellen van S is ook false  waar • Dus S heeft geen modellen

  21. …  ... …  ... …  ... …  ... …  ... …  ... …  ... …  ... …  … false  …  ... …  ... …  ... Oorspronkelijke gaf ook false  Correctheid / Volledigheid (2) ? • Als de procedure Consistent teruggeeft: • Dan zijn ALLE MOGELIJKE resolutie stappen uitgevoerd, zonder false  te bereiken. • Stel toch inconsistent. • Er bestaat een VOLLEDIGE strategie: die levert na eindige tijd wél false  • Maar die doet (een deel van) dezelfde resolutie stappen !!

  22. AR voor volledige predicaten logica Normalizatie naar clausale form

  23. NIETS! Wat is er meer nodig voor volledige predicaten logica? • Clausale logica is equivalent aan volledige predicaten logica: • elke theorie T in FOL (first order predicate logic) kan automatisch omgezet worden in een clausale theorie T’, zo dat: Tis inconsistentasaT’is inconsistent

  24. Idee: p  q p  q breng alle ~ zo ver mogelijk naar binnen gebruik de distributiviteit van  en  p  q  q  p q  ~p • Uiteindelijk: p1 …  pn  ~q1  … ~qm p1 …  pn  q1  …  qm Propositioneel: via conjunctieve normal form: • Elke formule is equivalent aan een formule van de vorm: (A1  ...  An)  (B1  …  Bm)  …  (C1  …  Ck) • waarin alle Ai, Bi, …, Ci ofwel atomair of ~atomair.

  25. Prenix normaal vorm (Q1 x) (Q2 y) …(Qn z) F heeft geen quantoren!  or  Dit vereist soms nieuwe namen voor variabelen. Vb.:x p(x) x q(x) x z p(x)  q(z) Merk:x bewolkt(x)  x zonnig(x)is niet equivalent met x bewolkt(x)  zonnig(x) • Conjunctieve normaal vorm: (Q1 x) (Q2 y) …(Qn z) ( ..  .. )  ( ..  .. )  ..  ( ..  .. ) Predicaten geval: hoofd-stappen • Die 2 stappen worden vermengd.

  26. Skolem normaal vorm: transformeer naar: ( x) ( y) …( z) ( ..  .. )  ( ..  .. )  ..  ( ..  .. ) • ‘Everyone has a heart’ x person(x) y heart(y)  has(x,y) • Niet correct: x person(x)  heart(H)  has(x,H) • Correct: x person(x)  heart(H(x))  has(x,H(x)) Skolem functies: zoveel argumenten als omsluitende -variabelen Predicaten geval: vervolg • x rich(x) wordt rich(Sk) , met Sk een nieuwe constante (‘skolem constante’) die nog niet in het alphabet voorkomt. • Moeilijker: indien  genest voorkomt binnen :

  27. S = {x y (p(x)  ~q(y)  ~r(y)) , z (r(A)  q(z)) , x y ~s(x,y) } S = {p(x)  q(y)  r(y) , r(A)  q(z)) , false  s(x,y) } Predicaten geval: vervolg • Clausale vorm: • Disjuncties: x y z (p(x)  ~q(y)  ~r(y)) (r(A)  q(z)) ~s(x,y)

  28. 4. Breng quantoren naar voor. PRENEX NORMAAL VORM 5. Elimineer  . SKOLEMS INTRODUCEREN 6. Disjuncties naar binnen. CONJUNCTIEVE VORM 7. Laat  weg. VERZAMELING DISJUNC. 9. ~atomen naar andere kant. CLAUSALE VORM Expliciete Procedure: 1. Elimineer  en  . 2. Breng de negaties naar binnen: ~(~p)  p, ~(p  q)  ~p  ~q,(analoog voor) ~x x ~ , ~x x ~ 3. Standardizeer variabele namen (maak verschillend). 8. Laat  weg.

  29. x loyaalaan(x,f(x)) loyaalaan(x,f(x)) Marcus voorbeeld: • Feiten 1. , 2. , 4. en 8. waren al o.k.: • ex.:heerser(Cesar) • 3.x Pompeier(x)  Romein(x) : o.k. ! • 6.x yloyaalaan(x,y) • 7. xy man(x)  heerser(y)  probeerverm(x,y)  ~loyaalaan(x,y) xy~(man(x)  heerser(y)  probeerverm(x,y)) ~loyaalaan(x,y) xy~man(x)~heerser(y)~probeerverm(x,y) ~loyaalaan(x,y) false  man(x)heerser(y)probeerverm(x,y)  loyaalaan(x,y)

  30. Axioma’s in Normaal vorm: • 1. man(Marcus) • 2. Pompeier(Marcus) • 3. Romein(x)  Pompeier(x) • 4. heerser(Cesar) • 5. loyaalaan(x,Cesar)  haat(x,Cesar) Romein(x) • 6. loyaalaan(x,f(x)) • 7. false  man(x)  heerser(y)  probeerverm(x,y)  loyaalaan(x,y) • 8. probeerverm(Marcus,Cesar) Te bewijzen: haat(Marcus,Cesar) Negatie: ~haat(Marcus,Cesar) Normaal Vorm: false haat(Marcus,Cesar)

  31. 5. loyaalaan(x,Cesar)  haat(x,Cesar)  Romein(x) {x/Marcus} loyaalaan(Marcus,Cesar) Romein(Marcus) 3. Romein(x) Pompeier(x) {x/Marcus} loyaalaan(Marcus,Cesar) Pompeier(Marcus) 2. {} Pompeier(Marcus) loyaalaan(Marcus,Cesar) Resolutie bewijs (1): false haat(Marcus,Cesar)

  32. 7. false  man(x)  heerser(y)  probeerverm(x,y)  loyaalaan(x,y) {x/Marcus,y/Cesar} false man(Marcus) heerser(Cesar)  probeerverm(Marcus,Cesar) man(Marcus) 1. {} false  heerser(Cesar)  probeerverm(Marcus,Cesar) 4. heerser(Cesar) {} 8. false  probeerverm(Marcus,Cesar) probeerverm(Marcus,Cesar) {} false  Resolutie bewijs (2) loyaalaan(Marcus,Cesar)

  33. u v Een voorbeeld uit groepentheorie: • Stel:  een groepsoperatie. • Noteer prefix: p(x,y,z)xy = z • Definitie van een monoide, met linker-neutraal en linker-invers element: •  is overal gedefinieerd: xyz p(x,y,z) (1) •  is associatief: (x y)  z = x (y  z) xyzuvw (p(x,y,u)  p(y,z,v))  (p(u,z,w)  p(x,v,w)) (2)

  34. Een voorbeeld uit groepentheorie (2): •  heeft een linker-neutraal en linker-invers element: x(y p(x,y,y) yz p(z,y,x) (3) • De stelling: er bestaat ook een rechter-invers ! x(y p(x,y,y) yz p(y,z,x) (4) • Automatisch te bewijzen met resolutie.

  35. xy p(x,y,m(x,y)) Normalisatie: • Stappen: 1,2,3,4: o.k. • Stap 5: skolemisatie: (1) xyz p(x,y,z) • Stappen: 6,7: o.k. • Stap 8: clausale vorm: p(x,y,m(x,y))

  36. Normalisatie (vervolg): • Stap 1: elimineer  en  : (2) xyzuvw (p(x,y,u)  p(y,z,v))  (p(u,z,w)  p(x,v,w)) xyzuvw (p(x,y,u)  p(y,z,v))  ((p(u,z,w)  p(x,v,w))  (p(x,v,w)  p(u,z,w))) xyzuvw (p(x,y,u)  p(y,z,v))  ((~p(u,z,w)  p(x,v,w)) (~p(x,v,w)  p(u,z,w))) xyzuvw ~(p(x,y,u)  p(y,z,v))  ((~p(u,z,w)  p(x,v,w)) (~p(x,v,w)  p(u,z,w)))

  37. A  (B  C) A  B A  C Normalisatie (vervolg): xyzuvw ~(p(x,y,u)  p(y,z,v))  ((~p(u,z,w)  p(x,v,w)) (~p(x,v,w)  p(u,z,w))) • Stap 2: breng negaties naar binnen: xyzuvw (~p(x,y,u) ~p(y,z,v))  ((~p(u,z,w)  p(x,v,w)) (~p(x,v,w)  p(u,z,w))) • Stappen:3,4,5 o.k. • Stap 6: breng disjuncties naar binnen: A (B  C) = (A  B)  (A  C) xyzuvw ((~p(x,y,u)  ~p(y,z,v)) (~p(u,z,w)  p(x,v,w)))  ((~p(x,y,u)  ~p(y,z,v))  (~p(x,v,w)  p(u,z,w)))

  38. ~p(x,y,u)  ~p(y,z,v)  ~p(u,z,w)  p(x,v,w) ~p(x,y,u)  ~p(y,z,v)  ~p(x,v,w)  p(u,z,w) Normalisatie (vervolg): xyzuvw ((~p(x,y,u)  ~p(y,z,v))  (~p(u,z,w)  p(x,v,w)))  ((~p(x,y,u)  ~p(y,z,v))  (~p(x,v,w)  p(u,z,w))) xyzuvw ((~p(x,y,u)  ~p(y,z,v)) (~p(u,z,w)  p(x,v,w)))  ((~p(x,y,u)  ~p(y,z,v))(~p(x,v,w)  p(u,z,w))) • + verwijder redundante haakjes: ( ) xyzuvw (~p(x,y,u)  ~p(y,z,v)  ~p(u,z,w)  p(x,v,w))  (~p(x,y,u)  ~p(y,z,v)  ~p(x,v,w)  p(u,z,w)) • Stappen 7,8: elimineer  en :

More Related