Expand description
Solver orchestration, query scheduling, caching, and model validation.
Re-exportsยง
use std::io::BufRead;๐use std::io::BufReader;๐use std::io::Read;๐use std::process::Child;๐use std::process::ChildStdin;๐use std::process::Output;๐use std::sync::mpsc::Receiver;๐use std::sync::mpsc::RecvTimeoutError;๐use std::thread::JoinHandle;๐use wait_timeout::ChildExt;๐use fallback::checked_mul_guard_branch_model;๐use fallback::constraints_prefer_hard_arith_fallback_first;๐use normalize::NormalizationCache;๐use normalize::constraints_are_directly_unsat;๐use normalize::normalize_constraints_for_solver_cached;๐use normalize::sorted_bool_exprs_are_subset;๐use reasoning::CheckedXorResult;๐use reasoning::checked_xor_result;๐use reasoning::product_monotonic_unsat_normalized;๐use reasoning::remove_implied_monotonic_constraints;๐use smt::write_smt_assertions;๐use super::*;๐
Modulesยง
- fallback ๐
- Bounded fallback model generation for hard arithmetic constraints.
- normalize ๐
- Constraint and expression normalization for solver queries.
- reasoning ๐
- Lightweight reasoning passes over normalized solver constraints.
- smt ๐
- Query-level SMT-LIB assertion emission with common-subexpression bindings.
Structsยง
- Portfolio
Scheduler ๐ - Scheduled
Solver ๐ - SmtLib
Subprocess ๐Solver - Solver
Child ๐ - Solver
Command ๐ - Solver
Command ๐Run - Solver
Process ๐Result - Solver
RunSummary ๐ - Z3Session ๐
Enumsยง
- Branch
Feasibility ๐ - Portfolio
Scheduler ๐Signal - Solver
Config ๐Error - Errors that arise when parsing or constructing solver commands from configuration.
- Solver
Outcome ๐ - Solver
Process ๐Outcome
Constantsยง
- Z3_
QUERY_ ๐END
Functionsยง
- cache_
result ๐ - collect_
solver_ ๐vars - Collects variables as the SMT writer sees them, stopping at opaque hash leaves.
- fallback_
bounded_ ๐model - Searches a bounded Cartesian portfolio and returns only an evaluator-validated SAT witness.
- fallback_
single_ ๐var_ model - format_
solver_ ๐portfolio_ summaries - Formats solver portfolio outcome diagnostics.
- hard_
arith_ ๐fallback_ model - model_
symbols_ ๐for_ constraints - named_
solver_ ๐command - Returns the default command for a known solver name.
- next_
portfolio_ ๐launch_ wait - Returns how long the supervisor can wait before the next pending solver is due.
- normalize_
sat_ ๐constraints - Normalizes satisfiability constraints and removes soundly redundant constraints.
- parse_
and_ ๐validate_ model - parse_
model_ ๐values - parse_
model_ ๐with_ symbol - parse_
model_ ๐with_ symbols - portfolio_
launch_ ๐delay - Returns when the solver at
indexshould be started, relative to query start. - remove_
witnessed_ ๐isolated_ hash_ constraints - Removes independently satisfiable constraints over one opaque hash symbol.
- run_
solver_ ๐commands - Runs one or more solver commands and returns the first decisive SMT-LIB response.
- run_
solver_ ๐process - Runs one solver process to completion, timeout, or cooperative cancellation.
- scheduled_
portfolio ๐ - Returns the staged launch plan for a configured portfolio.
- solver_
command_ ๐for_ portfolio_ entry - Returns the command for one configured portfolio entry.
- solver_
commands_ ๐for_ config - Returns the subprocess commands for the configured SMT solver setup.
- solver_
exit_ ๐error - solver_
wait_ ๐duration - spawn_
solver_ ๐process - split_
solver_ ๐command - Splits a shell-like solver command into argv parts.
- summary_
for_ ๐cancelled_ solver_ result - Summarizes a solver result received after a portfolio winner was chosen.
- summary_
for_ ๐unstarted_ solver - Summarizes a solver that was never launched because the portfolio already won.
- validate_
solver_ ๐model_ output - validated_
hard_ ๐arith_ fallback_ model - Returns a hard-arithmetic fallback model only after validating it against original constraints.