splitting an operator
play

Splitting an operator An algebraic modularity result and its - PowerPoint PPT Presentation

Splitting an operator An algebraic modularity result and its application to logic programming Joost Vennekens Logic David Gilis Programming Marc Denecker KU Leuven, Belgium Abstraction Theory Slides by Peter Baumgartner MPII


  1. Splitting an operator An algebraic modularity result and its application to logic programming Joost Vennekens Logic David Gilis Programming Marc Denecker ↓ KU Leuven, Belgium Abstraction Theory Slides by Peter Baumgartner ↓ MPII Saarbr¨ ucken, Germany Stratification Splitting an operator – Vennekens - Gilis - Denecker – p.1

  2. Various Logic Program Semantics Assign “meaning” to a program / knowledge base: perfect model, stable models, well-founded model Normal (logic) programs: negation in rule body allowed. win ( X ) ← move ( X , Y ) , not win ( Y ) (1) move ( c , d ) ← (2) move ( a , b ) ← (3) move ( b , a ) ← (4) True Undefined False The well-founded model: win ( c ) win ( a ) win ( d ) win ( b ) Two stable models: True False True False (i) (ii) win ( c ) win ( d ) win ( c ) win ( d ) win ( a ) win ( b ) win ( b ) win ( a ) Splitting an operator – Vennekens - Gilis - Denecker – p.2

  3. More About Well-Founded Models See [VanGelder/Ross/Schlipf 89, Przymusinski 91] Generally accepted for “reasonable” sceptical reasoning “well-behaved”: always exists, stratification not required unique model goal-oriented procedure exists quadratic complexity undef is assigned to atoms which negatively depend on themselves, and for which no independent “well-founded” derivation exists XSB-Prolog system (Warren et. al., top-down system) SModels (Niemel¨ a et. al., bottom-up system, also for stable model semantics) Splitting an operator – Vennekens - Gilis - Denecker – p.3

  4. “Building in” Information into Programs Program P q ← r ← not s p ← not q , s p ← not p True Undefined False Partial interpretation J p , r q s Quotient program P q ← r ← true J p ← false , s p ← undef I is a partial model of P J iff for all Head ← Body in P J : - If I ( Body ) = true then I ( Head ) = true - If I ( Head ) = false then I ( Body ) = false True Undefined False Least partial model LPM ( P J ) q , r p s - I minimizes true atoms, and - I maximizes false atoms Splitting an operator – Vennekens - Gilis - Denecker – p.4

  5. Well-Founded Models as Fixpoint Iteration false ⊆ -increasing undef ⊆ -increasing true Step 0 Step 1 Step n Maintain two sets to represent I i : The “ true ” atoms The “ true or undef ” atoms Set I 0 = “all undef ” and do I i + 1 = LPM ( P I i ) until fixpoint, where seqeuence ( J 0 = “all false ”) , J 1 , . . . , J n − 1 , ( J n = J n + 1 = LPM ( P I i )) obtained with operator associated to ( Head ← Body ) ∈ P I i : (i) If J k ( Body ) = true then J k + 1 ( Head ) = true (ii) If J k + 1 ( Head ) = false then J k ( Body ) = false iff If J k ( Body ) � = false then J k + 1 ( Head ) � = false � �� � � �� � J k ( Body ) ∈{ true , undef } J k + 1 ( Head ) ∈{ true , undef } Splitting an operator – Vennekens - Gilis - Denecker – p.5

  6. Computing Well-Founded Models, Step 0 � → Step 1 P a ← c ← not b , a b ← not c e ← not d f ← e f ← not a false d a , b , c , d , undef b , c , e , f e , f a true Step 0 Step 1 Splitting an operator – Vennekens - Gilis - Denecker – p.6

  7. Computing Well-Founded Models, Step 0 � → Step 1 (i) build P / a , b , c , d , e , f P a ← a ← c ← not b , a c ← undef , a b ← not c b ← undef e ← not d e ← undef f ← e f ← e f ← not a f ← undef false d a , b , c , d , undef b , c , e , f e , f a true Step 0 Step 1 Splitting an operator – Vennekens - Gilis - Denecker – p.6

  8. Computing Well-Founded Models, Step 0 � → Step 1 (i) build P / a , b , c , d , e , f P a ← a ← c ← not b , a c ← undef , a b ← not c b ← undef e ← not d e ← undef f ← e f ← e f ← not a f ← undef (ii) derive new true atoms a false d a , b , c , d , undef b , c , e , f e , f a true Step 0 Step 1 Splitting an operator – Vennekens - Gilis - Denecker – p.6

  9. Computing Well-Founded Models, Step 0 � → Step 1 (i) build P / a , b , c , d , e , f P a ← a ← c ← not b , a c ← undef , a b ← not c b ← undef e ← not d e ← undef f ← e f ← e f ← not a f ← undef (ii) derive new true atoms a (iii) derive new true or undef atoms b , c , e , f a false d a , b , c , d , undef b , c , e , f e , f a true Step 0 Step 1 Splitting an operator – Vennekens - Gilis - Denecker – p.6

  10. Computing Well-Founded Models, Step 0 � → Step 1 (i) build P / a , b , c , d , e , f P a ← a ← c ← not b , a c ← undef , a b ← not c b ← undef e ← not d e ← undef f ← e f ← e f ← not a f ← undef (ii) derive new true atoms a (iii) derive new true or undef atoms b , c , e , f a (iv) conclude new false atoms d false d a , b , c , d , undef b , c , e , f e , f a true Step 0 Step 1 Splitting an operator – Vennekens - Gilis - Denecker – p.6

  11. Computing Well-Founded Models, Step 1 � → Step 2 P a ← c ← not b , a b ← not c e ← not d f ← e f ← not a false d d b , c undef b , c , e , f a , e , f a true Step 1 Step 2 Splitting an operator – Vennekens - Gilis - Denecker – p.7

  12. Computing Well-Founded Models, Step 1 � → Step 2 (i) build P / a b , c , e , f P d a ← a ← c ← not b , a c ← undef , a b ← not c b ← undef e ← not d e ← true f ← e f ← e f ← not a f ← false false d d b , c undef b , c , e , f a , e , f a true Step 1 Step 2 Splitting an operator – Vennekens - Gilis - Denecker – p.7

  13. Computing Well-Founded Models, Step 1 � → Step 2 (i) build P / a b , c , e , f P d a ← a ← c ← not b , a c ← undef , a b ← not c b ← undef e ← not d e ← true f ← e f ← e f ← not a f ← false (ii) derive new true atoms a , e , f false d d b , c undef b , c , e , f a , e , f a true Step 1 Step 2 Splitting an operator – Vennekens - Gilis - Denecker – p.7

  14. Computing Well-Founded Models, Step 1 � → Step 2 (i) build P / a b , c , e , f P d a ← a ← c ← not b , a c ← undef , a b ← not c b ← undef e ← not d e ← true f ← e f ← e f ← not a f ← false (ii) derive new true atoms a , e , f (iii) derive new true or undef atoms a , e , f b , c false d d b , c undef b , c , e , f a , e , f a true Step 1 Step 2 Splitting an operator – Vennekens - Gilis - Denecker – p.7

  15. Computing Well-Founded Models, Step 1 � → Step 2 (i) build P / a b , c , e , f P d a ← a ← c ← not b , a c ← undef , a b ← not c b ← undef e ← not d e ← true f ← e f ← e f ← not a f ← false (ii) derive new true atoms a , e , f (iii) derive new true or undef atoms a , e , f b , c (iv) conclude new false atoms d false d d b , c undef b , c , e , f a , e , f a true Step 1 Step 2 Splitting an operator – Vennekens - Gilis - Denecker – p.7

  16. Abstraction Theory (Denecker, Marek and Truszczynski) Recall Fitting operator for logic programs: (i) If I k ( Body ) = true then I k + 1 ( Head ) = true (ii) If If I k ( Body ) � = false then I k + 1 ( Head ) � = false Fitting: Semantics as fixpoints of certain derived operators Abstraction Theory Operator (i) alone is sufficient, (ii) is derived (minor issue) Other major knowledge representation formalisms (Autoepistemic Logic, Default Logic) can be described by operators comparable to (i) with same monotonicity properties Conclusion: Develop theory on an abstract level. Applications: – Comparable (new) semantics for AEL and DL Logic as in logic programming – Abstract results on stratification Splitting an operator – Vennekens - Gilis - Denecker – p.8

  17. Ordering Interpretations ⊤ Ordering of truth values: ≥ k f t ≥ k knowledge (precision, information) ordering ⊥ ≥ t truth ordering ≥ t Maintain two sets ( X , Y ) ∈ 2 Σ × 2 Σ to represent an interpretation: The “ true ” atoms X The “ true or undef ” atoms Y Further notions: ( X , X ) is exact ( X , Y ) is consistent iff X ⊆ Y Ordering interpretations, bilattices ( 2 Σ × 2 Σ , ≤ k ) and ( 2 Σ × 2 Σ , ≤ t ): ( X , Y ) ≤ k ( X ′ , Y ′ ) iff X ⊆ X ′ and Y ′ ⊆ Y (Knowledge ordering) ( X , Y ) ≤ t ( X ′ , Y ′ ) iff X ⊆ X ′ and Y ⊆ Y ′ (Truth ordering) Splitting an operator – Vennekens - Gilis - Denecker – p.9

  18. Evaluation of Formulas   φ is true in the interpretation defined by ( X , Y ) t H ( X , Y ) ( φ ) = otherwise f   if p ∈ X ( p an atom)  t H ( X , Y ) ( p ) = otherwise f   if H ( X , Y ) ( φ ) = t and/or H ( X , Y ) ( φ ) = t  t H ( X , Y ) ( φ ∧ / ∨ ψ ) = otherwise f   if H ( Y , X ) ( φ ) = f  t H ( X , Y ) ( ¬ φ ) = otherwise f  Splitting an operator – Vennekens - Gilis - Denecker – p.10

  19. Associating Operators to Programs Let P be a Program. Define operator U P : 2 Σ × 2 Σ � → 2 Σ : U P ( X , Y ) = { p ∈ Σ | there is ( p ← q , ¬ r ) ∈ P with H X , Y ( q ∧ ¬ r ) = t } Note: H X , Y ( q ∧ ¬ r ) = t iff q is true and r is false in ( X , Y ) Special case Well known two-valued operator T P : 2 Σ � → 2 Σ : X � → U P ( X , X ) Properties Fixpoints of T P need not exist, take P = { p ← ¬ p } Fixpoints of T P are two-valued supported models E.g. fixpoints of T { p ← p } are {} and { p } If P is definite then T P is monotone; LFP is minimal model Splitting an operator – Vennekens - Gilis - Denecker – p.11

Recommend


More recommend