Documentation

Lean.Elab.PreDefinition.Structural.FindRecArg

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
      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).

        Equations
        • One or more equations did not get rendered due to their size.
        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.

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

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

              Equations
              • One or more equations did not get rendered due to their size.
              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.

                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
                    @[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