Documentation

Lean.Elab.Tactic.BVDecide.Frontend.BVDecide.Reflect

This module contains the implementation of the reflection monad, used by all other components of this directory.

Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
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.

    The state of the reflection monad

    Instances For
      @[reducible, inline]

      The reflection monad, used to track BitVec variables that we see as we traverse the context.

      Equations
      Instances For

        A reified version of an Expr representing a BVExpr.

        Instances For

          A reified version of an Expr representing a BVPred.

          Instances For

            A reified version of an Expr representing a BVLogicalExpr.

            Instances For

              A reified version of an Expr representing a BVLogicalExpr that we know to be true.

              Instances For

                Run a reflection computation as a MetaM one.

                Equations
                Instances For

                  Retrieve the atoms as pairs of their width and expression.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    Retrieve a BitVec.Assignment representing the atoms we found so far.

                    Equations
                    Instances For

                      Look up an expression in the atoms, recording it if it has not previously appeared.

                      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 state of the lemma reflection monad.

                          Instances For
                            @[reducible, inline]

                            The lemma reflection monad. It extends the usual reflection monad M by adding the ability to add additional top level lemmas on the fly.

                            Equations
                            Instances For
                              Equations
                              • m.run state = do let __discrStateRefT'.run m state match __discr with | (res, state) => pure (res, state.lemmas)
                              Instances For