Module chr

This module provides constraint handling rules rewriting to forward chaining rules from the module "delta". The following rule format is provided. The vertical bar ('|')/2 is according to the ISO core standard. The guard G can be omitted.

H ==> G | B.         % Propagation Rule
H \ J <=> G | B. % Simpagation Rule
J <=> G | B. % Simplification Rule

During translation what is called CHR head H respectively J becomes forward chaining body, and what is called CHR body B becomes forward chaining head. The translation of the above rules reads as follows:

post(B) <= posted(H), G.
post(B) <= posted(H), phaseout_posted(J), G.
post(B) <= phaseout_posted(J), G.

A current restriction is that the resulting forward chaining rules should produce ground facts. Further, the semantics is logical and not chronological as in the usual CHR implementations. Our implementation is not based on attribute variables as in [9].

The following constraint handling term expansion is provided:

H ==> B:
Propagation rules.
J <=> B:
Simpagation and simplification rules.