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 : α.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.17 + 1} , B := fun (x : PUnit.{?u.17 + 1} ) (j : Fin2 n) => ULift.{?u.17, 0} (PLift (i = j)) }
Instances For
Abstraction function of the QPF
instance
Equations
- MvQPF.Prj.abs i ⟨_x, f⟩ = f i { down := { down := ⋯ } }
Instances For
Representation function of the QPF
instance
Equations
- MvQPF.Prj.repr i x = ⟨PUnit.unit, fun (j : Fin2 n) (x_1 : (MvQPF.Prj.P i).B PUnit.unit j) => match x_1 with | { down := { down := h } } => h ▸ x⟩
Instances For
Equations
- MvQPF.Prj.mvqpf i = MvQPF.mk (MvQPF.Prj.P i) (MvQPF.Prj.abs i) (MvQPF.Prj.repr i) ⋯ ⋯