feat(hott): rename ppi_gen to ppi
This commit is contained in:
parent
9e3611fe3e
commit
27cde0aeae
3 changed files with 25 additions and 17 deletions
|
@ -84,12 +84,20 @@ namespace pointed
|
||||||
end pointed
|
end pointed
|
||||||
|
|
||||||
/- pointed maps -/
|
/- pointed maps -/
|
||||||
structure ppi_gen {A : Type*} (P : A → Type) (x₀ : P pt) :=
|
structure ppi {A : Type*} (P : A → Type) (x₀ : P pt) :=
|
||||||
(to_fun : Π a : A, P a)
|
(to_fun : Π a : A, P a)
|
||||||
(resp_pt : to_fun (Point A) = x₀)
|
(resp_pt : to_fun (Point A) = x₀)
|
||||||
|
|
||||||
definition ppi {A : Type*} (P : A → Type*) : Type :=
|
definition ppi_const [constructor] {A : Type*} (P : A → Type*) : ppi P pt :=
|
||||||
ppi_gen P pt
|
ppi.mk (λa, pt) idp
|
||||||
|
|
||||||
|
definition pppi' [reducible] {A : Type*} (P : A → Type*) : Type :=
|
||||||
|
ppi P pt
|
||||||
|
|
||||||
|
definition pppi [constructor] [reducible] {A : Type*} (P : A → Type*) : Type* :=
|
||||||
|
pointed.MK (pppi' P) (ppi_const P)
|
||||||
|
|
||||||
|
notation `Π*` binders `, ` r:(scoped P, pppi P) := r
|
||||||
|
|
||||||
-- We could try to define pmap as a special case of ppi
|
-- We could try to define pmap as a special case of ppi
|
||||||
-- definition pmap (A B : Type*) := @ppi A (λa, B)
|
-- definition pmap (A B : Type*) := @ppi A (λa, B)
|
||||||
|
@ -98,24 +106,24 @@ structure pmap (A B : Type*) :=
|
||||||
(resp_pt : to_fun (Point A) = Point B)
|
(resp_pt : to_fun (Point A) = Point B)
|
||||||
|
|
||||||
namespace pointed
|
namespace pointed
|
||||||
definition ppi.mk [constructor] [reducible] {A : Type*} {P : A → Type*} (f : Πa, P a)
|
definition pppi.mk [constructor] [reducible] {A : Type*} {P : A → Type*} (f : Πa, P a)
|
||||||
(p : f pt = pt) : ppi P :=
|
(p : f pt = pt) : pppi P :=
|
||||||
ppi_gen.mk f p
|
ppi.mk f p
|
||||||
|
|
||||||
definition ppi.to_fun [unfold 3] [coercion] [reducible] {A : Type*} {P : A → Type*} (f : ppi P)
|
definition pppi.to_fun [unfold 3] [coercion] [reducible] {A : Type*} {P : A → Type*} (f : pppi' P)
|
||||||
(a : A) : P a :=
|
(a : A) : P a :=
|
||||||
ppi_gen.to_fun f a
|
ppi.to_fun f a
|
||||||
|
|
||||||
definition ppi.resp_pt [unfold 3] [reducible] {A : Type*} {P : A → Type*} (f : ppi P) :
|
definition pppi.resp_pt [unfold 3] [reducible] {A : Type*} {P : A → Type*} (f : pppi P) :
|
||||||
f pt = pt :=
|
f pt = pt :=
|
||||||
ppi_gen.resp_pt f
|
ppi.resp_pt f
|
||||||
|
|
||||||
abbreviation respect_pt [unfold 3] := @pmap.resp_pt
|
abbreviation respect_pt [unfold 3] := @pmap.resp_pt
|
||||||
notation `map₊` := pmap
|
notation `map₊` := pmap
|
||||||
infix ` →* `:28 := pmap
|
infix ` →* `:28 := pmap
|
||||||
attribute pmap.to_fun ppi_gen.to_fun [coercion]
|
attribute pmap.to_fun ppi.to_fun [coercion]
|
||||||
-- notation `Π*` binders `, ` r:(scoped P, ppi _ P) := r
|
-- notation `Π*` binders `, ` r:(scoped P, ppi _ P) := r
|
||||||
-- definition pmap.mk [constructor] {A B : Type*} (f : A → B) (p : f pt = pt) : A →* B :=
|
-- definition pmxap.mk [constructor] {A B : Type*} (f : A → B) (p : f pt = pt) : A →* B :=
|
||||||
-- ppi.mk f p
|
-- ppi.mk f p
|
||||||
-- definition pmap.to_fun [coercion] [unfold 3] {A B : Type*} (f : A →* B) : A → B := f
|
-- definition pmap.to_fun [coercion] [unfold 3] {A B : Type*} (f : A →* B) : A → B := f
|
||||||
|
|
||||||
|
@ -123,7 +131,7 @@ end pointed open pointed
|
||||||
|
|
||||||
/- pointed homotopies -/
|
/- pointed homotopies -/
|
||||||
definition phomotopy {A B : Type*} (f g : A →* B) : Type :=
|
definition phomotopy {A B : Type*} (f g : A →* B) : Type :=
|
||||||
ppi_gen (λa, f a = g a) (respect_pt f ⬝ (respect_pt g)⁻¹)
|
ppi (λa, f a = g a) (respect_pt f ⬝ (respect_pt g)⁻¹)
|
||||||
|
|
||||||
-- structure phomotopy {A B : Type*} (f g : A →* B) : Type :=
|
-- structure phomotopy {A B : Type*} (f g : A →* B) : Type :=
|
||||||
-- (homotopy : f ~ g)
|
-- (homotopy : f ~ g)
|
||||||
|
@ -135,12 +143,12 @@ namespace pointed
|
||||||
infix ` ~* `:50 := phomotopy
|
infix ` ~* `:50 := phomotopy
|
||||||
definition phomotopy.mk [reducible] [constructor] (h : f ~ g)
|
definition phomotopy.mk [reducible] [constructor] (h : f ~ g)
|
||||||
(p : h pt ⬝ respect_pt g = respect_pt f) : f ~* g :=
|
(p : h pt ⬝ respect_pt g = respect_pt f) : f ~* g :=
|
||||||
ppi_gen.mk h (eq_con_inv_of_con_eq p)
|
ppi.mk h (eq_con_inv_of_con_eq p)
|
||||||
|
|
||||||
definition to_homotopy [coercion] [unfold 5] [reducible] (p : f ~* g) : Πa, f a = g a := p
|
definition to_homotopy [coercion] [unfold 5] [reducible] (p : f ~* g) : Πa, f a = g a := p
|
||||||
definition to_homotopy_pt [unfold 5] [reducible] (p : f ~* g) :
|
definition to_homotopy_pt [unfold 5] [reducible] (p : f ~* g) :
|
||||||
p pt ⬝ respect_pt g = respect_pt f :=
|
p pt ⬝ respect_pt g = respect_pt f :=
|
||||||
con_eq_of_eq_con_inv (ppi_gen.resp_pt p)
|
con_eq_of_eq_con_inv (ppi.resp_pt p)
|
||||||
|
|
||||||
|
|
||||||
end pointed
|
end pointed
|
||||||
|
|
|
@ -335,7 +335,7 @@ namespace pointed
|
||||||
(h : f ~* g) : P h :=
|
(h : f ~* g) : P h :=
|
||||||
begin
|
begin
|
||||||
induction h with h p,
|
induction h with h p,
|
||||||
refine transport (λp, P (ppi_gen.mk h p)) _ (H h (con_eq_of_eq_con_inv p)),
|
refine transport (λp, P (ppi.mk h p)) _ (H h (con_eq_of_eq_con_inv p)),
|
||||||
apply to_left_inv !eq_con_inv_equiv_con_eq p
|
apply to_left_inv !eq_con_inv_equiv_con_eq p
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ ppi.mk (λa, pt) idp
|
||||||
definition my_pconst [constructor] (A B : Type*) : ppi (λ(a : A), B) :=
|
definition my_pconst [constructor] (A B : Type*) : ppi (λ(a : A), B) :=
|
||||||
!my_ppi_const
|
!my_ppi_const
|
||||||
|
|
||||||
example {A : Type*} (P : A → Type*) (a : A) : ppi_gen.to_fun (my_ppi_const P) a = pt :=
|
example {A : Type*} (P : A → Type*) (a : A) : ppi.to_fun (my_ppi_const P) a = pt :=
|
||||||
begin esimp, end
|
begin esimp, end
|
||||||
|
|
||||||
example {A B : Type*} (a : A) : my_pconst A B a = pt :=
|
example {A B : Type*} (a : A) : my_pconst A B a = pt :=
|
||||||
|
|
Loading…
Reference in a new issue