Dependent product and sum of QPFs are QPFs #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Dependent sum of of an n
-ary functor. The sum can range over
data types like ℕ
or over Type.{u-1}
Equations
- mvqpf.sigma F v = Σ (α : A), F α v
Instances for mvqpf.sigma
Dependent product of of an n
-ary functor. The sum can range over
data types like ℕ
or over Type.{u-1}
Instances for mvqpf.pi
@[protected, instance]
def
mvqpf.sigma.inhabited
{n : ℕ}
{A : Type u}
(F : A → typevec n → Type u)
{α : typevec n}
[inhabited A]
[inhabited (F inhabited.default α)] :
inhabited (mvqpf.sigma F α)
Equations
- mvqpf.sigma.inhabited F = {default := ⟨inhabited.default _inst_1, inhabited.default _inst_2⟩}
@[protected, instance]
def
mvqpf.sigma.mvfunctor
{n : ℕ}
{A : Type u}
(F : A → typevec n → Type u)
[Π (α : A), mvfunctor (F α)] :
mvfunctor (mvqpf.sigma F)
Equations
- mvqpf.sigma.mvfunctor F = {map := λ (α β : typevec n) (f : α.arrow β) (_x : mvqpf.sigma F α), mvqpf.sigma.mvfunctor._match_1 F α β f _x}
- mvqpf.sigma.mvfunctor._match_1 F α β f ⟨a, x⟩ = ⟨a, mvfunctor.map f x⟩
@[protected]
def
mvqpf.sigma.repr
{n : ℕ}
{A : Type u}
(F : A → typevec n → Type u)
[Π (α : A), mvfunctor (F α)]
[Π (α : A), mvqpf (F α)]
⦃α : typevec n⦄ :
mvqpf.sigma F α → (mvqpf.sigma.P F).obj α
representation function for dependent sums
Equations
- mvqpf.sigma.repr F ⟨a, f⟩ = let x : (mvqpf.P (F a)).obj α := mvqpf.repr f in ⟨⟨a, x.fst⟩, x.snd⟩
@[protected, instance]
def
mvqpf.sigma.mvqpf
{n : ℕ}
{A : Type u}
(F : A → typevec n → Type u)
[Π (α : A), mvfunctor (F α)]
[Π (α : A), mvqpf (F α)] :
mvqpf (mvqpf.sigma F)
Equations
- mvqpf.sigma.mvqpf F = {P := mvqpf.sigma.P F (λ (α : A), _inst_2 α), abs := mvqpf.sigma.abs F (λ (α : A), _inst_2 α), repr := mvqpf.sigma.repr F (λ (α : A), _inst_2 α), abs_repr := _, abs_map := _}
@[protected]
def
mvqpf.pi.repr
{n : ℕ}
{A : Type u}
(F : A → typevec n → Type u)
[Π (α : A), mvfunctor (F α)]
[Π (α : A), mvqpf (F α)]
⦃α : typevec n⦄ :
mvqpf.pi F α → (mvqpf.pi.P F).obj α
representation function for dependent products
Equations
- mvqpf.pi.repr F f = ⟨λ (a : A), (mvqpf.repr (f a)).fst, λ (i : fin2 n) (a : (mvqpf.pi.P F).B (λ (a : A), (mvqpf.repr (f a)).fst) i), (mvqpf.repr (f a.fst)).snd i a.snd⟩
@[protected, instance]
def
mvqpf.pi.mvqpf
{n : ℕ}
{A : Type u}
(F : A → typevec n → Type u)
[Π (α : A), mvfunctor (F α)]
[Π (α : A), mvqpf (F α)] :
Equations
- mvqpf.pi.mvqpf F = {P := mvqpf.pi.P F (λ (α : A), _inst_2 α), abs := mvqpf.pi.abs F (λ (α : A), _inst_2 α), repr := mvqpf.pi.repr F (λ (α : A), _inst_2 α), abs_repr := _, abs_map := _}