Containment Mappings
q1 contains q2 iff ? f: vars(q1) -> vars(q2) s.t.
- ? literals L ? body(q1), f(L) ? body(q2)
- f(head(q1)) = head(q2)
For example
- Q1: q(A, D) :- p(A, B) & r(C, D)
- Q2: q(E, F) :- p(E, G) & r(G, F) & s(E, F)
- f: A -> E D -> F B -> G C -> G