| Example | ||||||
|---|---|---|---|---|---|---|
S = { q(a,T),
~p(Y,Z) | q(Z,Y),
~s,
r(X) | p(X,a),
~q(a,b) | s }
|
| Example with contrived control | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
S = { r(X) | p(X,a),
~p(a,Y) | ~r(Y),
~p(b,Y) | ~r(Y),
~r(b),
r(a) }
|
Clause C| subsumes clause D| iff there is an instance C|θ of C| such that each literal of C|θ is a literal of D|.
| Example | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| Example - Which subsume which? |
|---|
|
|
θ subsumption insists that, in addition to the above restriction, the subsuming clause must have no more literals than the subsumed clause. When using binary resolution and factoring, θ subsumption must be used to maintain refutation completeness.
Subsumption is a critical component of any ATP system. Beware: some refinements of the resolution procedure are not compatible with subsumption checking.
Do tautology deletion, introspective subsumption, pure literal deletion
Let CanBeUsed = {}
Let ToBeUsed = Input clauses
While Refutation not found && ToBeUsed not empty
Select the ChosenClause from ToBeUsed
Move the ChosenClause to CanBeUsed
Infer all possible clauses using the ChosenClause and other clauses from CanBeUsed.
Do tautology deletion, introspective subsumption, and pure literal deletion on the inferred clauses
Do forward subsumption on the inferred clauses
Do backward subsumption on the inferred clauses
If an inferred clause subsumes the ChosenClause then
Discard all other inferred clauses
Add the remaining inferred clauses to ToBeUsed
| Example | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
S1 = { p(b) | r(Y) | p(Y),
t(Y,c) | r(a),
~p(S) | p(b),
~r(a) | ~q(a),
~r(b) | r(b),
q(a) | ~t(X,c),
~p(b),
~r(a),
~r(c) }
}
|
| Example |
|---|
S10 = { p(X) | ~p(f(X))
~p(a)
p(S) | q(S) | r(S)
~q(T) | p(a)
~r(T) | p(a) }
|
S = { ~m(b) | p(Y) | ~m(Y),
~p(a),
~p(a) | ~q(a),
t(Y,c) | p(a),
q(a) | ~t(X,c),
m(b),
m(S) | ~m(b),
~p(b) | p(b),
~p(c) }
S = { p(X) | ~p(f(X))
~p(a)
p(S) | q(S) | r(S)
~q(T) | p(a)
~r(T) | p(a) }