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 toExpr
.
Reconstruct bit by bit which value expression must have had which BitVec
value and return all
expression - pair values.
Equations
Instances For
- bvExpr : Std.Tactic.BVDecide.BVLogicalExpr
The reflected expression.
- unusedHypotheses : Std.HashSet FVarId
Set of unused hypotheses for diagnostic purposes.
- expr : Expr
A cache for
toExpr bvExpr
.
Instances For
A counter example generated from the bitblaster.
- goal : MVarId
The goal in which to interpret this counter example.
- unusedHypotheses : Std.HashSet FVarId
The 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 = value
pairs.
Instances For
Instances For
Equations
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
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
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
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Turn an LratCert
into a proof that some reflectedExpr
is UNSAT.
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
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
Instances For
Call bvDecide'
and throw a pretty error if a counter example ends up being produced.