static ELEMENT_ENCODING: Cell<Option<crate::ast::sat_decision::ElementEncoding>> = const { Cell::new(None) };
static TABLE_ENCODING: Cell<Option<crate::ast::sat_decision::TableEncoding>> = const { Cell::new(None) };
static ALLDIFFERENT_ENCODING: Cell<Option<crate::ast::sat_decision::AllDifferentEncoding>> = const { Cell::new(None) };
static PB_ENCODING: Cell<Option<crate::ast::sat_decision::PbEncoding>> = const { Cell::new(None) };
static CARDINALITY_ENCODING: Cell<Option<crate::ast::sat_decision::CardinalityEncoding>> = const { Cell::new(None) };
static AMO_ENCODING: Cell<Option<crate::ast::sat_decision::AmoEncoding>> = const { Cell::new(None) };
/// Rewriting a temporary model -- a comprehension generator submodel, say -- picks representations
/// semantics-preserving, so whichever one a submodel gets, it enumerates the same values. Compact
/// takes the smallest and moves on, leaving the configured heuristic's state for the decisions that
/// do matter: `x` keeps enumerating combinations of the real model only, the random stream is not
/// A representation named on the domain itself (`set (representation packed)`) still wins -- representation
/// Options are printed 1-based. Prefers the next value from [`set_heuristic_responses`]; otherwise
"unknown rewrite config: {trimmed}; expected baseline, optimised, or baseline plus '+' separated prefilter/worklist options"
"unknown rewrite option '{other}'; expected baseline, optimised, or a '+' separated combination of: prefilter, worklist"
"unknown rewriter: {other}; expected baseline, optimised, or baseline plus '+' separated prefilter/worklist options"
/// Some rewrites build and solve a temporary model with a different backend from the outer model.
/// Representation applicability must follow the backend that will actually consume that temporary
/// Unlike [`current_solver_family`] this does not panic. Solver-family gating asks with this so
/// encoding it gets is a representation choice like any other. The SMT backend does have integers,
/// representation there too. Minion has one native integer and needs none of this. With no solver
pub fn set_cardinality_encoding(encoding: Option<crate::ast::sat_decision::CardinalityEncoding>) {
pub fn set_alldifferent_encoding(encoding: Option<crate::ast::sat_decision::AllDifferentEncoding>) {
pub fn alldifferent_encoding() -> Option<crate::ast::sat_decision::AllDifferentEncoding> {