This module contains the logic around writing proofs of UNSAT, using LRAT proofs, as meta code.
The context for the bv_decide tactic.
- exprDef : Lean.Name
- certDef : Lean.Name
- reflectionDef : Lean.Name
- solver : System.FilePath
- lratPath : System.FilePath
Instances For
def
Lean.Elab.Tactic.BVDecide.Frontend.TacticContext.new
(lratPath : System.FilePath)
(config : Lean.Elab.Tactic.BVDecide.Frontend.BVDecideConfig)
:
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
@[reducible, inline]
An LRAT proof read from a file. This will get parsed using ofReduceBool.
Instances For
def
Lean.Elab.Tactic.BVDecide.Frontend.LratCert.ofFile
(lratPath : System.FilePath)
(trimProofs : Bool)
:
Instances For
def
Lean.Elab.Tactic.BVDecide.Frontend.runExternal
(cnf : Std.Sat.CNF Nat)
(solver lratPath : System.FilePath)
(trimProofs : Bool)
(timeout : Nat)
(binaryProofs : Bool)
:
Run an external SAT solver on the CNF to obtain an LRAT proof.
This will obtain an LratCert if the formula is UNSAT and throw errors otherwise.
Instances For
Add an auxiliary declaration. Only used to create constants that appear in our reflection proof.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Elab.Tactic.BVDecide.Frontend.LratCert.toReflectionProof
{α : Type u_1}
[Lean.ToExpr α]
(cert : Lean.Elab.Tactic.BVDecide.Frontend.LratCert)
(cfg : Lean.Elab.Tactic.BVDecide.Frontend.TacticContext)
(reflected : α)
(verifier unsat_of_verifier_eq_true : Lean.Name)
:
Turn an LratCert into a proof that some reflected expression is UNSAT by providing a verifier
function together with a correctness theorem for it.
verifieris expected to have typeα → LratCert → Boolunsat_of_verifier_eq_trueis expected to have type∀ (b : α) (c : LratCert), verifier b c = true → unsat b
Equations
- One or more equations did not get rendered due to their size.