Documentation

Lean.Elab.Tactic.BVDecide.External

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.

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
        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
            Instances For
              def Lean.Elab.Tactic.BVDecide.External.satQuery (solverPath problemPath proofOutput : System.FilePath) (timeout : Nat) (binaryProofs : Bool) (mode : Frontend.SolverMode) :

              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
                Instances For