This module provides the implementation of the bv_decide frontend itself.
Given:
- var2Cnf: The mapping from AIG to CNF variables.
- assignments: A model for the CNF as provided by a SAT solver.
- aigSize: The amount of nodes in the AIG that was used to produce the CNF.
- atomsAssignment: The mapping of the reflection monad from atom indices to- Expr.
Reconstruct bit by bit which value expression must have had which BitVec value and return all
expression - pair values.
Equations
- One or more equations did not get rendered due to their size.
Instances For
- bvExpr : Std.Tactic.BVDecide.BVLogicalExprThe reflected expression. 
- unusedHypotheses : Std.HashSet FVarIdSet of unused hypotheses for diagnostic purposes. 
- expr : ExprA cache for toExpr bvExpr.
Instances For
A counter example generated from the bitblaster.
- goal : MVarIdThe goal in which to interpret this counter example. 
- unusedHypotheses : Std.HashSet FVarIdThe set of unused but potentially relevant hypotheses. Useful for diagnosing spurious counter examples. 
- equations : Array (Expr × Std.Tactic.BVDecide.BVExpr.PackedBitVec)The actual counter example as a list of equations denoted as expr = valuepairs.
Instances For
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The result of a spurious counter example diagnosis.
- uninterpretedSymbols : Std.HashSet Expr
- unusedRelevantHypotheses : Std.HashSet FVarId
Instances For
Equations
Instances For
Equations
Instances For
Equations
- Lean.Elab.Tactic.BVDecide.Frontend.DiagnosisM.unusedHyps = do let __do_lift ← read pure __do_lift.unusedHypotheses
Instances For
Equations
- Lean.Elab.Tactic.BVDecide.Frontend.DiagnosisM.equations = do let __do_lift ← read pure __do_lift.equations
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
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
Diagnose spurious counter examples, currently this checks:
- Whether uninterpreted symbols were used
- Whether all hypotheses which contain any variable that was bitblasted were included
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
Equations
- One or more equations did not get rendered due to their size.
Instances For
Turn an LratCert into a proof that some reflectedExpr is UNSAT.
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
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
The result of calling bv_decide.
- If the normalization step was not enough to solve the goal this contains the LRAT proof certificate. 
Instances For
Try to close g using a bitblaster. Return either a CounterExample if one is found or a Result
if g is proven.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Call bvDecide' and throw a pretty error if a counter example ends up being produced.
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.