conjure_oxide

Module rules

Source
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 levelUsage
9001Total evaluation
9000Partial evaluation
8800Trivial simplifications: removing nesting, removing empty / unit constraints
8400Transformation into canonical forms: (distributivity, associativity, commutativity, etc.)
8000Simplifications
6000Modelling enhancing reformulations
4000Solver Specific
2000Non 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