Function types of a given arity #
This provides Function.OfArity, such that OfArity α β 2 = α → α → β.
Note that it is often preferable to use (Fin n → α) → β in place of OfArity n α β.
Main definitions #
Function.OfArity α β n:n-ary functionα → α → ... → β. Defined inductively.Function.OfArity.const α b n:n-ary constant function equal tob.
@[reducible, inline]
The type of n-ary functions α → α → ... → β.
Note that this is not universe polymorphic, as this would require that when n=0 we produce either
Unit → β or ULift β.
Equations
- Function.OfArity α β n = Function.FromTypes (fun (x : Fin n) => α) β
Instances For
Constant n-ary function with value b.
Equations
- Function.OfArity.const α b n = Function.FromTypes.const (fun (x : Fin n) => α) b
Instances For
Equations
- Function.OfArity.inhabited = inferInstanceAs (Inhabited (Function.FromTypes (fun (x : Fin n) => α) β))
The definitional equality between heterogeneous functions with constant
domain and n-ary functions with that domain.
Equations
- Function.FromTypes.fromTypes_fin_const_equiv α β n = Equiv.refl (Function.FromTypes (fun (x : Fin n) => α) β)