42 lines
1.6 KiB
Text
42 lines
1.6 KiB
Text
|
import .spectrification .smash_adjoint
|
||
|
|
||
|
open pointed is_equiv equiv eq susp succ_str smash int
|
||
|
namespace spectrum
|
||
|
|
||
|
/- Smash product of a prespectrum and a type -/
|
||
|
|
||
|
definition smash_prespectrum (X : Type*) (Y : prespectrum) : prespectrum :=
|
||
|
prespectrum.mk (λ z, X ∧ Y z) begin
|
||
|
intro n, refine loop_psusp_pintro (X ∧ Y n) (X ∧ Y (n + 1)) _,
|
||
|
refine _ ∘* (smash_psusp X (Y n))⁻¹ᵉ*,
|
||
|
refine smash_functor !pid _,
|
||
|
refine psusp_pelim (Y n) (Y (n + 1)) _,
|
||
|
exact !glue
|
||
|
end
|
||
|
|
||
|
definition smash_prespectrum_fun {X X' : Type*} {Y Y' : prespectrum} (f : X →* X') (g : Y →ₛ Y') : smash_prespectrum X Y →ₛ smash_prespectrum X' Y' :=
|
||
|
smap.mk (λn, smash_functor f (g n)) begin
|
||
|
intro n,
|
||
|
refine susp_to_loop_psquare _ _ _ _ _,
|
||
|
refine pvconcat (psquare_transpose (phinverse (smash_psusp_natural f (g n)))) _,
|
||
|
refine vconcat_phomotopy _ (smash_functor_split f (g (S n))),
|
||
|
refine phomotopy_vconcat (smash_functor_split f (psusp_functor (g n))) _,
|
||
|
refine phconcat _ _,
|
||
|
let glue_adjoint := psusp_pelim (Y n) (Y (S n)) (glue Y n),
|
||
|
exact pid X' ∧→ glue_adjoint,
|
||
|
exact smash_functor_psquare (pvrefl f) (phrefl glue_adjoint),
|
||
|
refine smash_functor_psquare (phrefl (pid X')) _,
|
||
|
refine loop_to_susp_square _ _ _ _ _,
|
||
|
exact smap.glue_square g n
|
||
|
end
|
||
|
|
||
|
/- smash of a spectrum and a type -/
|
||
|
definition smash_spectrum (X : Type*) (Y : spectrum) : spectrum :=
|
||
|
spectrify (smash_prespectrum X Y)
|
||
|
|
||
|
definition smash_spectrum_fun {X X' : Type*} {Y Y' : spectrum} (f : X →* X') (g : Y →ₛ Y') : smash_spectrum X Y →ₛ smash_spectrum X' Y' :=
|
||
|
spectrify_fun (smash_prespectrum_fun f g)
|
||
|
|
||
|
|
||
|
end spectrum
|