This module contains the implementation of counterexample recovery and explanation.
def
Lean.Meta.Tactic.BVDecide.reconstructCounterExample
(var2Cnf : Std.HashMap Std.Tactic.BVDecide.BVBit Nat)
(assignment : Array (Bool × Nat))
(aigSize : Nat)
(atomsAssignment : Std.HashMap Nat (Nat × Expr × Bool))
:
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
- One or more equations did not get rendered due to their size.
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 = valuepairs.
Instances For
Equations
- One or more equations did not get rendered due to their size.