This module contains roughly everything neede to turn mutual n-ary functions into a single unary function, as used by well-founded recursion.
Pass the first n
arguments of e
to the continuation, and apply the result to the
remaining arguments. If e
does not have enough arguments, it is eta-expanded as needed.
Unlike Meta.etaExpand
does not use withDefault
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Processes the expression and replaces calls to the preDefs
with calls to f
.
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
Creates a single unary function from the given preDefs
, using the machinery in the ArgPacker
module.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Collect the names of the varying variables (after the fixed prefix); this also determines the
arity for the well-founded translations, and is turned into an ArgsPacker
.
We use the term to determine the arity, but take the name from the type, for better names in the
fun : (n : Nat) → Nat | 0 => 0 | n+1 => fun n
idiom.
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.