Documentation

Mathlib.Lean.Elab.InfoTree

Additions to Lean.Elab.InfoTree.Main #

Collects all suggestions from all TryThisInfos in trees. trees is visited in order and suggestions in each tree are collected in post-order.

Equations
    Instances For

      Visits a node in a tree.

      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