test: Cut not_equal
This commit is contained in:
parent
229a8bbc3c
commit
2fcab52f65
7 changed files with 75 additions and 18 deletions
|
@ -12,6 +12,19 @@ import prolog.ast.terms.Operator
|
|||
import prolog.ast.terms.Term
|
||||
import prolog.logic.applySubstitution
|
||||
import prolog.logic.equivalent
|
||||
import prolog.logic.unifyLazy
|
||||
|
||||
/**
|
||||
* Unify Term1 with Term2. True if the unification succeeds.
|
||||
*/
|
||||
class Unify(private val term1: Term, private val term2: Term): Operator(Atom("="), term1, term2) {
|
||||
override fun satisfy(subs: Substitutions): Answers = sequence {
|
||||
val t1 = applySubstitution(term1, subs)
|
||||
val t2 = applySubstitution(term2, subs)
|
||||
|
||||
yieldAll(unifyLazy(t1, t2, subs))
|
||||
}
|
||||
}
|
||||
|
||||
class Equivalent(private val term1: Term, private val term2: Term) : Operator(Atom("=="), term1, term2) {
|
||||
override fun satisfy(subs: Substitutions): Answers = sequence {
|
||||
|
|
Reference in a new issue