Expand description
This module contains the rewrite rules for Conjure Oxides and it’s solvers.
§Rule Semantics
§Priorities
Rule are applied in priority order (highest number first).
Rule priority levels are currently the following:
Priority level | Usage |
---|---|
9001 | Total evaluation |
9000 | Partial evaluation |
8800 | Trivial simplifications: removing nesting, removing empty / unit constraints |
8400 | Transformation into canonical forms: (distributivity, associativity, commutativity, etc.) |
8000 | Simplifications |
6000 | Modelling enhancing reformulations |
4000 | Solver Specific |
2000 | Non solver specific, non enhancing reformulations (e.g. restate a constraint using simpler constraints when needed for solver compatability) |
Functions§
- Simplify an expression to a constant if possible Returns:
None
if the expression cannot be simplified to a constant (e.g. if it contains a variable)Some(Const)
if the expression can be simplified to a constant