Documentation

Lean.Elab.Tactic.BVDecide.Frontend.BVDecide

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
    Instances For
      Instances For

        A counter example generated from the bitblaster.

        Instances For
          @[reducible, inline]
          Equations
            Instances For

              The result of a spurious counter example diagnosis.

              Instances For
                @[reducible, inline]
                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

                        Turn an LratCert into a proof that some reflectedExpr is UNSAT.

                        Equations
                          Instances For

                            Add an auxiliary declaration. Only used to create constants that appear in our reflection proof.

                            Equations
                              Instances For

                                The result of calling bv_decide.

                                • lratCert : Option LratCert

                                  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.

                                      Equations
                                        Instances For