
disequality.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
.=.(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.
.\=.(A, B)
not_unify(+Term, +List)- True when Term cannot unify with any of the elements in List
loop_term(+Goal1, +Goal2)
loop_var_disequality(?A, ?B)[private]- ???
∉(?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.
get_neg_var(Arg1, Arg2)