HepLean Documentation

Lean.Elab.Tactic.BVDecide.Frontend.Normalize

This module contains the implementation of bv_normalize which is effectively a custom bv_normalize simp set that is called like this: simp only [seval, bv_normalize]. The rules in bv_normalize fulfill two goals:

  1. Turn all hypothesis involving Bool and BitVec into the form x = true where x only consists of a operations on Bool and BitVec. In particular no Prop should be contained. This makes the reflection procedure further down the pipeline much easier to implement.
  2. Apply simplification rules from the Bitwuzla SMT solver.
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
            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
                @[reducible, inline]

                A pass in the normalization pipeline. Takes the current goal and produces a refined one or closes the goal fully, indicated by returning none.

                Equations
                Instances For

                  Repeatedly run a list of Pass until they either close the goal or an iteration doesn't change the goal anymore.

                  Responsible for applying the Bitwuzla style rewrite rules.

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

                    Substitute embedded constraints. That is look for hypotheses of the form h : x = true and use them to substitute occurences of x within other hypotheses

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

                      Normalize with respect to Associativity and Commutativity.

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

                        The normalization passes used by bv_normalize and thus bv_decide.

                        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