Documentation

Lean.Meta.Tactic.BVDecide.Normalize.Basic

This module contains the basic preprocessing pipeline framework for bv_normalize.

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

      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
          Instances For
            @[instance_reducible]
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For

              The immutable context of the bv_normalize preprocessing pipeline.

              • The configuration that the tactic was called with.

              • restrictedTypes : Option (Array Name)

                The types that the structure and enum analysis is restricted to, as provided by the types clause. If this is none the analysis discovers the relevant types on its own.

              Instances For
                • rewriteSimpCache : Sym.Simp.Cache

                  Cache for the Simp component of the rewriter.

                • rewriteDSimpCache : Sym.DSimp.Cache

                  Cache for the DSimp component of the rewriter.

                • acCache : Sym.Simp.Cache

                  Cache for the Simp component of the AC pass.

                • typeAnalysis : TypeAnalysis

                  Analysis results for the structure and enum pass if required.

                • target : Target

                  The target we are operating on.

                • hypotheses : Array Hyp

                  The set of hypotheses we are operating on. These should be interpreted from withing the lctx of the goal. But they may not necessarily be fvars registered in the goal.

                • didChange : Bool

                  A didChange flag for our fixpoint simplification loop.

                Instances For
                  @[reducible, inline]
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    Equations
                    Instances For
                      Equations
                      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
                                          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
                                                        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. It operates on the current set of hypotheses stored in the PreProcessM monad. If it manages to find a way to close the associated goal it can indicate so by returning true. Otherwise it should always return false.

                                                                  Instances For
                                                                    @[inline]
                                                                    Equations
                                                                    Instances For

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

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