/// Solvers require variable declarations to have ground domains. For integer domains that contain variables in them, we widen to a finite ground superset-domain and add constraints that enforce membership in the original (possibly variable-dependent) domain.
fn handle_variables_in_domains(expr: &Expr, symbols: &SymbolTable) -> ApplicationResult {