Projection functors are QPFs. The n
-ary projection functors on i
is an n
-ary
functor F
such that F (α₀..αᵢ₋₁, αᵢ, αᵢ₊₁..αₙ₋₁) = αᵢ
Equations
- MvQPF.Prj.inhabited i = { default := default }
def
MvQPF.Prj.map
{n : ℕ}
(i : Fin2 n)
⦃α : TypeVec.{u_1} n⦄
⦃β : TypeVec.{u_2} n⦄
(f : TypeVec.Arrow α β)
:
Equations
- MvQPF.Prj.map i f = f i
Instances For
Equations
- MvQPF.Prj.mvfunctor i = { map := MvQPF.Prj.map i }
Polynomial representation of the projection functor
Equations
- MvQPF.Prj.P i = { A := PUnit.{u + 1} , B := fun (x : PUnit.{u + 1} ) (j : Fin2 n) => ULift.{u, 0} (PLift (i = j)) }
Instances For
Abstraction function of the QPF
instance
Equations
- MvQPF.Prj.abs i x = match x with | { fst := _x, snd := f } => f i { down := { down := (_ : i = i) } }
Instances For
Representation function of the QPF
instance
Equations
- MvQPF.Prj.repr i x = { fst := PUnit.unit, snd := fun (j : Fin2 n) (x_1 : (MvQPF.Prj.P i).B PUnit.unit j) => match x_1 with | { down := { down := h } } => h ▸ x }