SLIDE 37 Introduction Datalog, Trees, Automata Containment in Monadic Programs Containment in Transitive Programs Conclusion Transitive Programs Labelled Proof Trees Fix-Point Labelled Proof Trees Automata The Algorithm
Twelve diamond rules
1 S(X, X1) ∧ S⋄(X1, X2) ∧ S(X2, X3) ∧ S⋄(X3, X4) ∧ S(X4, Y ) ⇒ S∗(X, Y ) 2 S(X, X1) ∧ S⋄(X1, X2) ∧ S(X2, X3) ∧ S⋄(X3, Y ) ⇒ S∗(X, Y ) 3 S(X, X1) ∧ S⋄(X1, X2) ∧ S⋄(X2, X3) ∧ S(X3, Y ) ⇒ S∗(X, Y ) 4 S(X, X1) ∧ S⋄(X1, X2) ∧ S⋄(X2, Y ) ⇒ S∗(X, Y ) 5 S⋄(X, X1) ∧ S(X1, X2) ∧ S⋄(X2, X3) ∧ S(X3, Y ) ⇒ S∗(X, Y ) 6 S⋄(X, X1) ∧ S(X1, X2) ∧ S⋄(X2, Y ) ⇒ S∗(X, Y ) 7 S⋄(X, X1) ∧ S⋄(X1, X2) ∧ S(X2, Y ) ⇒ S∗(X, Y ) 8 S⋄(X, X1) ∧ S⋄(X1, Y ) ⇒ S∗(X, Y ) 9 S(X, X1) ∧ S⋄(X1, X2) ∧ S(X2, Y ) ⇒ S∗(X, Y ) 10 S(X, X1) ∧ S⋄(X1, Y ) ⇒ S∗(X, Y ) 11 S⋄(X, X1) ∧ S(X1, Y ) ⇒ S∗(X, Y ) 12 S⋄(X, Y ) ⇒ S∗(X, Y ) Vincent Jugé Complexity of Decision Problems in Computational Logic