This module implements the logic to call CaDiCal (or CLI interface compatible SAT solvers) and extract an LRAT UNSAT proof or a model from its output.
The result of calling a SAT solver.
- sat
(assignment : Array (Bool × Nat))
: SolverResult
The solver returned SAT with some literal assignment.
- unsat : SolverResult
The solver returned UNSAT.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Parse the witness format of a SAT solver. The rough grammar for this is: line = "v" (" " lit)\n terminal_line = "v" (" " lit) (" " 0)\n witness = "s SATISFIABLE\n" line+ terminal_line
Equations
Instances For
Run a process with args
until it terminates or the cancellation token in CoreM
tells us to abort
or timeout
seconds have passed.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Elab.Tactic.BVDecide.External.runInterruptible.killAndWait child = do child.kill discard child.wait
Instances For
Call the SAT solver in solverPath
with problemPath
as CNF input and ask it to output an LRAT
UNSAT proof (binary or non-binary depending on binaryProofs
) into proofOutput
. To avoid runaway
solvers the solver is run with timeout
in seconds as a maximum time limit to solve the problem.
Note: This function currently assume that the solver has the same CLI as CaDiCal.
Equations
- One or more equations did not get rendered due to their size.