Skip to main content

with_compact_heuristic

Function with_compact_heuristic 

Source
pub fn with_compact_heuristic<T>(f: impl FnOnce() -> T) -> T
Expand description

Runs f with the compact heuristic in force, whatever the configured one is.

Rewriting a temporary model – a comprehension generator submodel, say – picks representations too, but those are not modelling choices about the user’s problem: a representation is 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 advanced, and the interactive heuristic does not ask the user about throwaway variables.

A representation named on the domain itself (set (representation packed)) still wins – representation selection honours that before it consults the heuristic at all.