work a bit on Eilenberg-MacLane spaces

This commit is contained in:
Floris van Doorn 2017-07-17 21:56:14 +01:00
parent 4d7963d226
commit a5c80f79c6
3 changed files with 87 additions and 0 deletions

View file

@ -34,3 +34,7 @@ this has the additional advantage that if f and/or g are defined using induction
- unfold [foo] also does various (sometimes unwanted) reductions (as if you called esimp)
- The Emacs flycheck mode has a hard time with nonrelative paths to files in the same directory. This means that for importing files from the Lean 2 HoTT library use absolute paths (e.g. `import algebra.group`) and for importing files in the Spectral repository use relative paths (e.g. for a file in the `homotopy` folder use `import ..algebra.subgroup`)
- The induction tactic doesn't fail if it fails to solve the type class constraint. This means that it will accept the tactics until the end of the tactic proof, when it raises the error that the term has unsolved metavariables
- Sometimes the lean-server doesn't give information anymore (and then it causes tab complete to hang). In this case, execute `M-x lean-server-restart-all-processes`. You can stop tab-complete from hanging by pressing `C-g` multiple times, once for each time you pressed TAB.

View file

@ -583,4 +583,77 @@ namespace EM
--EM_spectrum (πₛ[s] (spi X Y)) k ≃* spi X (λx, EM_spectrum (πₛ[s] (Y x))) k
/- fiber of EM_functor -/
open fiber
definition is_trunc_fiber_EM1_functor {G H : Group} (φ : G →g H) : is_trunc 1 (pfiber (EM1_functor φ)) :=
!is_trunc_fiber
definition is_conn_fiber_EM1_functor {G H : Group} (φ : G →g H) : is_conn -1 (pfiber (EM1_functor φ)) :=
begin
apply is_conn_fiber, apply is_conn_of_is_conn_succ
end
definition is_trunc_fiber_EMadd1_functor {G H : AbGroup} (φ : G →g H) (n : ) :
is_trunc (n+1) (pfiber (EMadd1_functor φ n)) :=
begin
apply is_trunc_fiber
end
definition is_conn_fiber_EMadd1_functor {G H : AbGroup} (φ : G →g H) (n : ) :
is_conn (n.-1) (pfiber (EMadd1_functor φ n)) :=
begin
apply is_conn_fiber, apply is_conn_of_is_conn_succ, apply is_conn_EMadd1,
apply is_conn_EMadd1
end
definition is_trunc_fiber_EM_functor {G H : AbGroup} (φ : G →g H) (n : ) :
is_trunc n (pfiber (EM_functor φ n)) :=
begin
apply is_trunc_fiber
end
definition is_conn_fiber_EM_functor {G H : AbGroup} (φ : G →g H) (n : ) :
is_conn (n.-2) (pfiber (EM_functor φ n)) :=
begin
apply is_conn_fiber, apply is_conn_of_is_conn_succ
end
section --move
open chain_complex succ_str
-- definition isomorphism_kernel_of_trivial {N : succ_str} (X : chain_complex N) {n : N}
-- (H1 : is_exact_at X n) (H2 : is_exact_at X (S n))
-- (HX1 : is_contr (X n)) (HG2 : pgroup (X (S n)))
-- : Group_of_pgroup (X (S n)) ≃g kernel (homomorphism.mk (cc_to_fn X _) _) :=
-- _
end
-- definition is_equiv_of_trivial (X : chain_complex N) {n : N}
-- (H1 : is_exact_at X n) (H2 : is_exact_at X (S n))
-- [HX1 : is_contr (X n)] [HX2 : is_contr (X (S (S (S n))))]
-- [pgroup (X (S n))] [pgroup (X (S (S n)))] [is_mul_hom (cc_to_fn X (S n))]
-- : is_equiv (cc_to_fn X (S n)) :=
-- begin
-- apply is_equiv_of_is_surjective_of_is_embedding,
-- { apply is_embedding_of_trivial X, apply H2},
-- { apply is_surjective_of_trivial X, apply H1},
-- end
definition homotopy_group_fiber_EM1_functor {G H : Group} (φ : G →g H) :
π₁ (pfiber (EM1_functor φ)) ≃g kernel φ :=
sorry
definition homotopy_group_fiber_EMadd1_functor {G H : AbGroup} (φ : G →g H) (n : ) :
πg[n+1] (pfiber (EMadd1_functor φ n)) ≃g kernel φ :=
sorry
/- TODO: move-/
definition cokernel {G H : AbGroup} (φ : G →g H) : AbGroup :=
quotient_ab_group (image_subgroup φ)
definition trunc_fiber_EM1_functor {G H : Group} (φ : G →g H) :
ptrunc 0 (pfiber (EM1_functor φ)) ≃* sorry :=
sorry
end EM

View file

@ -600,6 +600,16 @@ namespace is_conn
open unit trunc_index nat is_trunc pointed.ops
definition is_conn_zero {A : Type} (a₀ : trunc 0 A) (p : Πa a' : A, ∥ a = a' ∥) : is_conn 0 A :=
is_conn_succ_intro a₀ (λa a', is_conn_minus_one _ (p a a'))
definition is_conn_zero_pointed {A : Type*} (p : Πa a' : A, ∥ a = a' ∥) : is_conn 0 A :=
is_conn_zero (tr pt) p
definition is_conn_fiber (n : ℕ₋₂) {A B : Type} (f : A → B) (b : B) [is_conn n A] [is_conn (n.+1) B] :
is_conn n (fiber f b) :=
is_conn_equiv_closed_rev _ !fiber.sigma_char _
definition is_conn_fun_compose {n : ℕ₋₂} {A B C : Type} (g : B → C) (f : A → B)
(H : is_conn_fun n g) (K : is_conn_fun n f) : is_conn_fun n (g ∘ f) :=
sorry