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

                  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