Documentation

Lean.Meta.Match.MatcherInfo

  • hName? : Option Name

    some h if the discriminant is annotated with h:

Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def Lean.Meta.Match.Overlaps.insert (o : Overlaps) (overlapping overlapped : Nat) :
      Equations
      Instances For
        Equations
        Instances For

          Information about the parameter structure for the alternative of a matcher or splitter.

          • numFields : Nat

            Actual fields (not including discr eqns)

          • numOverlaps : Nat

            Overlap assumption (for splitters only)

          • hasUnitThunk : Bool

            Whether this alternative has an artificial Unit parameter

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

                Information about the structure of a matcher declaration

                • numParams : Nat

                  Number of parameters

                • numDiscrs : Nat

                  Number of discriminants

                • altInfos : Array AltParamInfo

                  Parameter structure information for each alternative

                • uElimPos? : Option Nat

                  uElimPos? is some pos when the matcher can eliminate in different universe levels, and pos is the position of the universe level parameter that specifies the elimination universe. It is none if the matcher only eliminates into Prop.

                • discrInfos : Array DiscrInfo

                  discrInfos[i] = { hName? := some h } if the i-th discriminant was annotated with h :.

                • overlaps : Overlaps

                  (Conservative approximation of) which alternatives may overlap another.

                Instances For
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    Equations
                    Instances For
                      Equations
                      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
                            Instances For
                              Equations
                              Instances For
                                Equations
                                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
                                      def Lean.Meta.Match.addMatcherInfo {m : TypeType} [Monad m] [MonadEnv m] (matcherName : Name) (info : MatcherInfo) :
                                      Equations
                                      Instances For
                                        def Lean.Meta.getMatcherInfo? {m : TypeType} [Monad m] [MonadEnv m] (declName : Name) :
                                        Equations
                                        Instances For
                                          @[export lean_is_matcher]
                                          def Lean.Meta.isMatcherCore (env : Environment) (declName : Name) :
                                          Equations
                                          Instances For
                                            def Lean.Meta.isMatcher {m : TypeType} [Monad m] [MonadEnv m] (declName : Name) :
                                            Equations
                                            Instances For
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                def Lean.Meta.isMatcherApp {m : TypeType} [Monad m] [MonadEnv m] (e : Expr) :
                                                Equations
                                                Instances For

                                                  Tag extension for declarations that should be inlined like matchers during LCNF conversion, but are not matchers themselves (e.g. the .het auxiliaries from mkCasesOnSameCtor).

                                                  Equations
                                                  Instances For
                                                    Equations
                                                    Instances For
                                                      def Lean.Meta.isMatcherLike {m : TypeType} [Monad m] [MonadEnv m] (declName : Name) :
                                                      Equations
                                                      Instances For