148 lines
5.7 KiB
Text
148 lines
5.7 KiB
Text
/-
|
||
Copyright (c) 2017 Floris van Doorn. All rights reserved.
|
||
Released under Apache 2.0 license as described in the file LICENSE.
|
||
Authors: Floris van Doorn
|
||
|
||
Cofiber sequence of a pointed map
|
||
-/
|
||
|
||
import .cohomology .pushout
|
||
|
||
open pointed eq cohomology sigma sigma.ops fiber cofiber chain_complex nat succ_str algebra prod group pushout int
|
||
|
||
namespace cohomology
|
||
|
||
definition pred_fun {A : ℕ → Type*} (f : Πn, A n →* A (n+1)) (n : ℕ) : A (pred n) →* A n :=
|
||
begin cases n with n, exact pconst (A 0) (A 0), exact f n end
|
||
|
||
definition type_chain_complex_snat' [constructor] (A : ℕ → Type*) (f : Πn, A n →* A (n+1))
|
||
(p : Πn (x : A n), f (n+1) (f n x) = pt) : type_chain_complex -ℕ :=
|
||
type_chain_complex.mk A (pred_fun f)
|
||
begin
|
||
intro n, cases n with n, intro x, reflexivity, cases n with n,
|
||
intro x, exact respect_pt (f 0), exact p n
|
||
end
|
||
|
||
definition chain_complex_snat' [constructor] (A : ℕ → Set*) (f : Πn, A n →* A (n+1))
|
||
(p : Πn (x : A n), f (n+1) (f n x) = pt) : chain_complex -ℕ :=
|
||
chain_complex.mk A (pred_fun f)
|
||
begin
|
||
intro n, cases n with n, intro x, reflexivity, cases n with n,
|
||
intro x, exact respect_pt (f 0), exact p n
|
||
end
|
||
|
||
definition is_exact_at_t_snat' [constructor] {A : ℕ → Type*} (f : Πn, A n →* A (n+1))
|
||
(p : Πn (x : A n), f (n+1) (f n x) = pt) (q : Πn x, f (n+1) x = pt → fiber (f n) x) (n : ℕ)
|
||
: is_exact_at_t (type_chain_complex_snat' A f p) (n+2) :=
|
||
q n
|
||
|
||
definition cofiber_sequence_helper [constructor] (v : Σ(X Y : Type*), X →* Y)
|
||
: Σ(Y Z : Type*), Y →* Z :=
|
||
⟨v.2.1, pcofiber v.2.2, pcod v.2.2⟩
|
||
|
||
definition cofiber_sequence_helpern (v : Σ(X Y : Type*), X →* Y) (n : ℕ)
|
||
: Σ(Z X : Type*), Z →* X :=
|
||
iterate cofiber_sequence_helper n v
|
||
|
||
section
|
||
universe variable u
|
||
parameters {X Y : pType.{u}} (f : X →* Y)
|
||
include f
|
||
|
||
definition cofiber_sequence_carrier (n : ℕ) : Type* :=
|
||
(cofiber_sequence_helpern ⟨X, Y, f⟩ n).1
|
||
|
||
definition cofiber_sequence_fun (n : ℕ)
|
||
: cofiber_sequence_carrier n →* cofiber_sequence_carrier (n+1) :=
|
||
(cofiber_sequence_helpern ⟨X, Y, f⟩ n).2.2
|
||
|
||
definition cofiber_sequence : type_chain_complex.{0 u} -ℕ :=
|
||
begin
|
||
fapply type_chain_complex_snat',
|
||
{ exact cofiber_sequence_carrier },
|
||
{ exact cofiber_sequence_fun },
|
||
{ intro n x, exact pcod_pcompose (cofiber_sequence_fun n) x }
|
||
end
|
||
|
||
end
|
||
|
||
section
|
||
universe variable u
|
||
parameters {X Y : pType.{u}} (f : X →* Y) (H : cohomology_theory.{u})
|
||
include f
|
||
|
||
definition cohomology_groups [reducible] : -3ℤ → AbGroup
|
||
| (n, fin.mk 0 p) := H n X
|
||
| (n, fin.mk 1 p) := H n Y
|
||
| (n, fin.mk k p) := H n (pcofiber f)
|
||
|
||
-- definition cohomology_groups_pequiv_loop_spaces2 [reducible]
|
||
-- : Π(n : -3ℤ), ptrunc 0 (loop_spaces2 n) ≃* cohomology_groups n
|
||
-- | (n, fin.mk 0 p) := by reflexivity
|
||
-- | (n, fin.mk 1 p) := by reflexivity
|
||
-- | (n, fin.mk 2 p) := by reflexivity
|
||
-- | (n, fin.mk (k+3) p) := begin exfalso, apply lt_le_antisymm H, apply le_add_left end
|
||
|
||
definition coboundary (n : ℤ) : H (pred n) X →g H n (pcofiber f) :=
|
||
H ^→ n (pcofiber_pcod f ∘* pcod (pcod f)) ∘g (Hsusp_neg H n X)⁻¹ᵍ
|
||
|
||
definition cohomology_groups_fun : Π(n : -3ℤ), cohomology_groups (S n) →g cohomology_groups n
|
||
| (n, fin.mk 0 p) := proof H ^→ n f qed
|
||
| (n, fin.mk 1 p) := proof H ^→ n (pcod f) qed
|
||
| (n, fin.mk 2 p) := proof coboundary n qed
|
||
| (n, fin.mk (k+3) p) := begin exfalso, apply lt_le_antisymm p, apply le_add_left end
|
||
|
||
-- definition cohomology_groups_fun_pcohomology_loop_spaces_fun2 [reducible]
|
||
-- : Π(n : -3ℤ), cohomology_groups_pequiv_loop_spaces2 n ∘* ptrunc_functor 0 (loop_spaces_fun2 n) ~*
|
||
-- cohomology_groups_fun n ∘* cohomology_groups_pequiv_loop_spaces2 (S n)
|
||
-- | (n, fin.mk 0 p) := by reflexivity
|
||
-- | (n, fin.mk 1 p) := by reflexivity
|
||
-- | (n, fin.mk 2 p) :=
|
||
-- begin
|
||
-- refine !pid_pcompose ⬝* _ ⬝* !pcompose_pid⁻¹*,
|
||
-- refine !ptrunc_functor_pcompose
|
||
-- end
|
||
-- | (n, fin.mk (k+3) p) := begin exfalso, apply lt_le_antisymm H, apply le_add_left end
|
||
|
||
open cohomology_theory
|
||
|
||
definition cohomology_groups_chain_0 (n : ℤ) (x : H n (pcofiber f)) : H ^→ n f (H ^→ n (pcod f) x) = 1 :=
|
||
begin
|
||
refine (Hcompose H n (pcod f) f x)⁻¹ ⬝ _,
|
||
refine Hhomotopy H n (pcod_pcompose f) x ⬝ _,
|
||
exact Hconst H n x
|
||
end
|
||
|
||
definition cohomology_groups_chain_1 (n : ℤ) (x : H (pred n) X) : H ^→ n (pcod f) (coboundary n x) = 1 :=
|
||
begin
|
||
refine (Hcompose H n (pcofiber_pcod f ∘* pcod (pcod f)) (pcod f) ((Hsusp_neg H n X)⁻¹ᵍ x))⁻¹ ⬝ _,
|
||
refine Hhomotopy H n (!passoc ⬝* pwhisker_left _ !pcod_pcompose ⬝* !pcompose_pconst) _ ⬝ _,
|
||
exact Hconst H n _
|
||
end
|
||
|
||
definition cohomology_groups_chain_2 (n : ℤ) (x : H (pred n) Y) : coboundary n (H ^→ (pred n) f x) = 1 :=
|
||
begin
|
||
exact sorry
|
||
-- refine ap (H ^→ n (pcofiber_pcod f ∘* pcod (pcod f))) _ ⬝ _,
|
||
--Hsusp_neg_inv_natural H n (pcofiber_pcod f ∘* pcod (pcod f)) _
|
||
end
|
||
|
||
definition cohomology_groups_chain : Π(n : -3ℤ) (x : cohomology_groups (S (S n))),
|
||
cohomology_groups_fun n (cohomology_groups_fun (S n) x) = 1
|
||
| (n, fin.mk 0 p) := cohomology_groups_chain_0 n
|
||
| (n, fin.mk 1 p) := cohomology_groups_chain_1 n
|
||
| (n, fin.mk 2 p) := cohomology_groups_chain_2 n
|
||
| (n, fin.mk (k+3) p) := begin exfalso, apply lt_le_antisymm p, apply le_add_left end
|
||
|
||
definition LES_of_cohomology_groups [constructor] : chain_complex -3ℤ :=
|
||
chain_complex.mk (λn, cohomology_groups n) (λn, pmap_of_homomorphism (cohomology_groups_fun n)) cohomology_groups_chain
|
||
|
||
definition is_exact_LES_of_cohomology_groups : is_exact LES_of_cohomology_groups :=
|
||
begin
|
||
intro n,
|
||
exact sorry
|
||
end
|
||
|
||
end
|
||
|
||
end cohomology
|