on colim.elim o pinclusion, and corollary on spectra

This commit is contained in:
spiceghello 2017-06-08 18:28:15 -06:00
parent e4168439c0
commit b2ab29c3c3
2 changed files with 60 additions and 19 deletions

View file

@ -399,8 +399,8 @@ namespace seq_colim
equiv.mk _ !is_equiv_seq_colim_rec equiv.mk _ !is_equiv_seq_colim_rec
end functor end functor
definition pseq_colim.elim' [constructor] {A : → Type*} {B : Type*} {f : Π{n}, A n →* A (n+1)} definition pseq_colim.elim' [constructor] {A : → Type*} {B : Type*} {f : Πn, A n →* A (n+1)}
(g : Πn, A n →* B) (p : Πn, g (n+1) ∘* f ~ g n) : pseq_colim @f →* B := (g : Πn, A n →* B) (p : Πn, g (n+1) ∘* f n ~ g n) : pseq_colim f →* B :=
begin begin
fapply pmap.mk, fapply pmap.mk,
{ intro x, induction x with n a n a, { intro x, induction x with n a n a,
@ -409,10 +409,38 @@ namespace seq_colim
{ esimp, apply respect_pt } { esimp, apply respect_pt }
end end
definition pseq_colim.elim [constructor] {A : → Type*} {B : Type*} {f : Π{n}, A n →* A (n+1)} definition pseq_colim.elim [constructor] {A : → Type*} {B : Type*} {f : Πn, A n →* A (n+1)}
(g : Πn, A n →* B) (p : Πn, g (n+1) ∘* f ~* g n) : pseq_colim @f →* B := (g : Πn, A n →* B) (p : Πn, g (n+1) ∘* f n ~* g n) : pseq_colim @f →* B :=
pseq_colim.elim' g p pseq_colim.elim' g p
definition pseq_colim.elim_pinclusion {A : → Type*} {B : Type*} {f : Πn, A n →* A (n+1)}
(g : Πn, A n →* B) (p : Πn, g (n+1) ∘* f n ~* g n) (n : ) :
pseq_colim.elim g p ∘* pinclusion f n ~* g n :=
begin
refine phomotopy.mk phomotopy.rfl _,
refine !idp_con ⬝ _,
esimp,
induction n with n IH,
{ esimp, esimp[inclusion_pt], exact !idp_con⁻¹ },
{ esimp, esimp[inclusion_pt],
rewrite ap_con, rewrite ap_con,
rewrite elim_glue,
rewrite [-ap_inv],
rewrite [-ap_compose'], esimp,
rewrite [(eq_con_inv_of_con_eq (!to_homotopy_pt))],
rewrite [IH],
rewrite [con_inv],
rewrite [-+con.assoc],
refine _ ⬝ whisker_right _ !con.assoc⁻¹,
rewrite [con.left_inv], esimp,
refine _ ⬝ !con.assoc⁻¹,
rewrite [con.left_inv], esimp,
rewrite [ap_inv],
rewrite [-con.assoc],
refine !idp_con⁻¹ ⬝ whisker_right _ !con.left_inv⁻¹,
}
end
definition prep0 [constructor] {A : → Type*} (f : pseq_diagram A) (k : ) : A 0 →* A k := definition prep0 [constructor] {A : → Type*} (f : pseq_diagram A) (k : ) : A 0 →* A k :=
pmap.mk (rep0 (λn x, f x) k) pmap.mk (rep0 (λn x, f x) k)
begin induction k with k p, reflexivity, exact ap (@f k) p ⬝ !respect_pt end begin induction k with k p, reflexivity, exact ap (@f k) p ⬝ !respect_pt end

View file

@ -477,11 +477,10 @@ namespace spectrum
} }
end end
definition spectrify.elim {N : succ_str} {X : gen_prespectrum N} {Y : gen_spectrum N} definition spectrify.elim_n {N : succ_str} {X : gen_prespectrum N} {Y : gen_spectrum N}
(f : X →ₛ Y) : spectrify X →ₛ Y := (f : X →ₛ Y) (n : N) : (spectrify X) n →* Y n :=
begin begin
fapply smap.mk, fapply pseq_colim.elim,
{ intro n, fapply pseq_colim.elim,
{ intro k, refine !equiv_gluen⁻¹ᵉ* ∘* apn k (f (n +' k)) }, { intro k, refine !equiv_gluen⁻¹ᵉ* ∘* apn k (f (n +' k)) },
{ intro k, refine !passoc ⬝* pwhisker_right _ !equiv_gluen_inv_succ ⬝* _, { intro k, refine !passoc ⬝* pwhisker_right _ !equiv_gluen_inv_succ ⬝* _,
refine !passoc ⬝* _, apply pwhisker_left, refine !passoc ⬝* _, apply pwhisker_left,
@ -495,10 +494,24 @@ namespace spectrum
refine apn_psquare k _, refine apn_psquare k _,
refine pwhisker_right _ _ ⬝* psquare_of_phomotopy !smap.glue_square, refine pwhisker_right _ _ ⬝* psquare_of_phomotopy !smap.glue_square,
exact !pmap_eta⁻¹* exact !pmap_eta⁻¹*
}}, }
end
definition spectrify.elim {N : succ_str} {X : gen_prespectrum N} {Y : gen_spectrum N}
(f : X →ₛ Y) : spectrify X →ₛ Y :=
begin
fapply smap.mk,
{ intro n, exact spectrify.elim_n f n },
{ intro n, exact sorry } { intro n, exact sorry }
end end
definition phomotopy_spectrify.elim {N : succ_str} {X : gen_prespectrum N} {Y : gen_spectrum N}
(f : X →ₛ Y) (n : N) : spectrify.elim_n f n ∘* spectrify_map n ~* f n :=
begin
refine pseq_colim.elim_pinclusion _ _ 0 ⬝* _,
exact !pid_pcompose
end
definition spectrify_fun {N : succ_str} {X Y : gen_prespectrum N} (f : X →ₛ Y) : spectrify X →ₛ spectrify Y := definition spectrify_fun {N : succ_str} {X Y : gen_prespectrum N} (f : X →ₛ Y) : spectrify X →ₛ spectrify Y :=
spectrify.elim ((@spectrify_map _ Y) ∘ₛ f) spectrify.elim ((@spectrify_map _ Y) ∘ₛ f)