Documentation

Lean.Elab.PreDefinition.Structural.FindRecArg

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

    Assemble the RecArgInfo for the ith parameter in the parameter list xs. This performs various sanity checks on the argument (is it even an inductive type etc).

    Instances For

      Collects the RecArgInfos for one function, and returns a report for why the others were not considered.

      The xs are the fixed parameters, value the body with the fixed prefix instantiated.

      Takes the optional user annotations into account (termArg?). If this is given and the argument is unsuitable, throw an error.

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

        Reorders the RecArgInfos of one function to put arguments that are indices of other arguments last. See issue #837 for an example where we can show termination using the index of an inductive family, but we don't get the desired definitional equalities.

        Instances For

          Given the RecArgInfos of all the recursive functions, find the inductive groups to consider.

          Instances For

            Filters the recArgInfos by those that describe an argument that's part of the recursive inductive group group.

            Because of nested inductives this function has the ability to change the recArgInfo. Consider

            inductive Tree where | node : List Tree → Tree
            

            then when we look for arguments whose type is part of the group Tree, we want to also consider the argument of type List Tree, even though that argument’s RecArgInfo refers to initially to List.

            Instances For
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[irreducible]
                def Lean.Elab.Structural.allCombinations.go {α : Type u_1} (xss : Array (Array α)) (i : Nat) (acc : Array α) :
                Equations
                Instances For
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For