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.
verifier
is expected to have typeα → LratCert → Bool
unsat_of_verifier_eq_true
is 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.