Semantic goal-directed forward reasoning is a three stage procedure. In the first stage a reference set of models is generated
from the negated theorem. In the second stage the assumption clause set is refined to a set which has an as small set of models
as possible in common with the negated theorem with respect to the reference set of models. In the last stage a refutation
is generated in the space consisting of the original problem along with the refined assumption. In order to form a refined
assumption, unlike traditional approaches like set of support, only clauses from assumptions are resolved with each other.