Documentation

Lean.Meta.Tactic.BVDecide.Normalize.Basic

This module contains the basic preprocessing pipeline framework for bv_normalize.

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

      The enum inductive that the match discriminates on.

      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
            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]
                  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

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

                      Instances For