[ library(chr) | Reference Manual | Alphabetic Index ]
chr_resolve(+Constraint)
Uses the Prolog clauses to solve a constraint Constraint.
- +Constraint
- A constraint (callable term) defined by constraint handling                rules.
Description
   Uses the Prolog clauses to solve a constraint Constraint.  Used by
   advanced constraint handling rules users to program labeling procedures
   for the constraints defined by constraint handling rules.
Fail Conditions
   Fails if there are no Prolog clauses for the constraint or if the bodies
   of all clauses fail.
Resatisfiable
   Yes.
Exceptions
- (4) instantiation fault 
- Constraint is a free variable.
- (6) out of range 
- Constraint is term which is not a constraint (defined by    constraint handling rules).
Examples
   Example using the constraint handler for Booleans in file  bool.chr:
[eclipse]: chr_resolve(X).
instantiation fault in is_predicate(_g671 / _g639)
[eclipse]: chr_resolve(and(X,Y)).
out of range in chr_resolve(and(X,Y))
[eclipse]: chr_resolve(and(X,Y,Z)).
X = 0
Y = Y
Z = 0     More? (;)
X = 1
Y = Z
Z = Z
yes.
[eclipse]: chr_resolve(and(a,b,c)).
no (more) solution.
   The predicate chr_labeling/0 can be defined as:
labeling :-
   chr_get_constraint(C),
   chr_label_with(C),
   !,
   chr_resolve(C),
   labeling.
labeling.
See Also
chr_labeling / 0, chr_label_with / 1, chr_get_constraint / 1, chr_get_constraint / 2