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
    Equations
    • One or more equations did not get rendered due to their size.
    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
          • One or more equations did not get rendered due to their size.
          Instances For
            Equations
            • One or more equations did not get rendered due to their size.
            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.

              Instances For