Package-level declarations

Types

Link copied to clipboard
open class NoUnifyException(term1: Term, term2: Term, other: Throwable?) : TuPrologException

Signals that term1 and term2 could not be unified, as an exception rather than the Term/Substitution-level failure sentinel (it.unibo.tuprolog.core.Substitution.failed) that it.unibo.tuprolog.unify.Unificator's own operations use to represent unification failure.

Link copied to clipboard
class OccurCheckException(term1: Term, term2: Term, innerVar: Var, innerTerm: Term, other: Throwable?) : NoUnifyException

A NoUnifyException specifically signaling that unifying term1 with term2 failed because innerVar occurs within innerTerm (occurs-check violation): binding innerVar to innerTerm would produce a cyclic/infinite term. See the occurCheckEnabled parameter of it.unibo.tuprolog.unify.Unificator's operations, which (when true) reject such bindings — by returning it.unibo.tuprolog.core.Substitution.failed rather than throwing this exception.