All predicatesShow sourcedisequality.pl -- Constraint solver for disequalities

This module contains the code of the constraint solver for disequalities following the description of the constructive unification / disunification from the paper Computing Stable Models of Normal Logic Programs Without Grounding by Marple et al. 2017. .=./2 is the predicate used for equality. .\=./2 is the predicate used for disequality.

author
- Joaquin Arias
Source .=.(A, B)
Constructive unification of a negatively constrained variable with a non- variable value will succeed if the non-variable value does not constructively unify with any element in the variable’s prohibited value list.
Source .\=.(A, B)
Source not_unify(+Term, +List)
True when Term cannot unify with any of the elements in List
Source loop_term(+Goal1, +Goal2)
Source loop_var_disequality(?A, ?B)[private]
???
Source (?X, +G)
Constraint that expresses that X is not a member of the list of ground elements in G.

Undocumented predicates

The following predicates are exported, but not or incorrectly documented.

Source get_neg_var(Arg1, Arg2)