Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
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 RecArgInfo
s 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
Instances For
Equations
- Lean.Elab.Structural.allCombinations.go xss i acc = if h : i < xss.size then Array.flatMap (fun (x : α) => Lean.Elab.Structural.allCombinations.go xss (i + 1) (acc.push x)) xss[i] else #[acc]
Instances For
Equations
- One or more equations did not get rendered due to their size.