Documentation

Mathlib.Lean.Elab.InfoTree

Additions to Lean.Elab.InfoTree.Main #

Collects all suggestions from all TryThisInfos in trees. Does not require context - works with context-free trees.

Equations
    Instances For
      def Lean.Elab.InfoTree.findSomeM? {m : TypeType} [Monad m] {α : Type} (f : ContextInfoInfoPersistentArray InfoTreem (Option α)) (t : InfoTree) (ctx? : Option ContextInfo := none) :
      m (Option α)

      Finds the first result of ← f ctx info children which is some a, descending the tree from the top. Merges and updates contexts as it descends the tree.

      f is only evaluated on nodes when some context is present. An initial context should be provided via the ctx? argument if invoking findSomeM? during a larger traversal of the infotree. A failure to provide ctx? := some ctx when t is not the outermost InfoTree is thus likely to cause findSomeM? to always return none.

      Equations
        Instances For
          partial def Lean.Elab.InfoTree.findSomeM?.go {m : TypeType} [Monad m] {α : Type} (f : ContextInfoInfoPersistentArray InfoTreem (Option α)) (ctx? : Option ContextInfo) :
          InfoTreem (Option α)

          Accumulates contexts and visits nodes if ctx? is not none.

          Finds the first result of f ctx info children which is some a, descending the tree from the top. Merges and updates contexts as it descends the tree.

          f is only evaluated on nodes when some context is present. An initial context should be provided via the ctx? argument if invoking findSome? during a larger traversal of the infotree. A failure to provide ctx? := some ctx when t is not the outermost InfoTree is thus likely to cause findSome? to always return none.

          Equations
            Instances For

              Returns the value of f ctx info children on the outermost .node info children which has context, having merged and updated contexts appropriately.

              If ctx? is some ctx, ctx is used as an initial context. A ctx? of none should only be used when operating on the first node of the entire infotree. Otherwise, it is likely that no context will be found.

              Equations
                Instances For

                  Get the parentDecls of every elaborated body.

                  This includes let rec/where definitions, but excludes decls without "bodies" (such as aliases, structures, declarations generated by attributes like @[ext], and so on) as we might find by considering every parentDeclCtx throughout the infotree.

                  Assumes that every body elaboration proceeds through Lean.Elab.Term.BodyInfo.

                  Equations
                    Instances For

                      Get the declarations elaborated in the infotree t which are theorems according to the environment. This includes e.g. instances of Prop classes in addition to declarations declared using the keyword theorem directly.

                      Equations
                        Instances For