Thu Sep 24 11:23:37 CEST 2009
1. convert to normal form (confluent rewrite system)
2. collect constraints into propagators (i.e. collect linear equations)
3. perform constraint propagation (find a distribution strategy)
Putting it like this makes it look a lot more structured. Especially
the first one is something I didn't think about. The third one
appeared after reading chapter 12 in CTM.
The first one can maybe be done directly with syntax-rules.
Normalizing the relations is simple: move stuff to the other side
until there is a comparison to 0. The next simplification is
conversion to sum of products. This expands every + nested inside an
How can conversion to normal form be formulated as an alternative
- (map negate) . +
It's actually quite simple:
1. recursively reduce all multiplications
2. flatten all additions