Skip to main content

Module solver

Module solver 

Source
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ยง

PortfolioScheduler ๐Ÿ”’
ScheduledSolver ๐Ÿ”’
SmtLibSubprocessSolver ๐Ÿ”’
SolverChild ๐Ÿ”’
SolverCommand ๐Ÿ”’
SolverCommandRun ๐Ÿ”’
SolverProcessResult ๐Ÿ”’
SolverRunSummary ๐Ÿ”’
Z3Session ๐Ÿ”’

Enumsยง

BranchFeasibility ๐Ÿ”’
PortfolioSchedulerSignal ๐Ÿ”’
SolverConfigError ๐Ÿ”’
Errors that arise when parsing or constructing solver commands from configuration.
SolverOutcome ๐Ÿ”’
SolverProcessOutcome ๐Ÿ”’

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 index should 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.