
chr_resolve(+Constraint)

   Uses the Prolog clauses to solve a constraint Constraint.



Arguments
   +Constraint         A constraint (callable term) defined by constraint handling                rules.

Type
   library(chr)

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 --- Constraint is a free variable.
     6 --- 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
