Documentation

Lean.Elab.Tactic.BVDecide.Frontend.Normalize.Basic

This module contains the basic preprocessing pipeline framework for bv_normalize.

The various kinds of matches supported by the match to cond infrastructure.

  • simpleEnum (info : InductiveVal) (ctors : Array ConstructorVal) : MatchKind

    It is a full match statement on an enum inductive with one constructor handled per arm. The ctors are listed in the order they occur in the match statement in ctors.

  • enumWithDefault (info : InductiveVal) (ctors : Array ConstructorVal) : MatchKind

    It is a match statement on an enum inductive with a default arm, all explicitly handled ctors are listed in ctors in the order they occur in the match statement.

Instances For

    Contains the result of the type analysis to be used in the structures and enums pass.

    • interestingStructures : Std.HashSet Name

      Structures that are interesting for the structures pass.

    • interestingEnums : Std.HashSet Name

      Inductives enums that are interesting for the enums pass.

    • interestingMatchers : Std.HashMap Name MatchKind

      func.match_x auxiliary declarations that we consider interesting.

    • uninteresting : Std.HashSet Name

      Other types that we've seen that are not interesting, currently only used as a cache.

    Instances For
      • rewriteCache : Std.HashSet FVarId

        Contains FVarId that we already know are in bv_normalize simp normal form and thus don't need to be processed again when we visit the next time.

      • acNfCache : Std.HashSet FVarId

        Contains FVarId that we already know have been run through the AC normal form and thus don't don't need to be processed again when we visit the next time.

      • typeAnalysis : TypeAnalysis

        Analysis results for the structure and enum pass if required.

      Instances For
        @[reducible, inline]
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[inline]
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[inline]
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[inline]
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[inline]
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[inline]
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[inline]
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[inline]
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[inline]
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[inline]
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

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

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

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