Spectral/algebra/exact_couple.hlean

70 lines
2.4 KiB
Text
Raw Normal View History

2016-10-20 20:23:55 +00:00
/-
Copyright (c) 2016 Egbert Rijke. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Egbert Rijke
Exact couple, derived couples, and so on
-/
2016-11-03 20:42:12 +00:00
import algebra.group_theory hit.set_quotient types.sigma types.list types.sum .quotient_group .subgroup
2016-10-20 20:23:55 +00:00
2016-11-03 20:42:12 +00:00
open eq algebra is_trunc set_quotient relation sigma sigma.ops prod prod.ops sum list trunc function group trunc
2016-10-20 20:23:55 +00:00
equiv
structure is_exact {A B C : CommGroup} (f : A →g B) (g : B →g C) :=
( im_in_ker : Π(a:A), g (f a) = 1)
2016-11-03 20:42:12 +00:00
( ker_in_im : Π(b:B), (g b = 1) → ∃(a:A), f a = b)
definition is_differential {B : CommGroup} (d : B →g B) := Π(b:B), d (d b) = 1
2016-10-20 20:23:55 +00:00
definition image_subgroup_of_diff {B : CommGroup} (d : B →g B) (H : is_differential d) : subgroup_rel (comm_kernel d) :=
2016-11-03 20:42:12 +00:00
subgroup_rel_of_subgroup (image_subgroup d) (kernel_subgroup d)
begin
intro g p,
induction p with f, induction f with h p,
rewrite [p⁻¹],
esimp,
exact H h
end
2016-10-20 20:23:55 +00:00
definition homology {B : CommGroup} (d : B →g B) (H : is_differential d) : CommGroup :=
@quotient_comm_group (comm_kernel d) (image_subgroup_of_diff d H)
2016-10-20 20:23:55 +00:00
structure exact_couple (A B : CommGroup) : Type :=
( i : A →g A) (j : A →g B) (k : B →g A)
( exact_ij : is_exact i j)
( exact_jk : is_exact j k)
( exact_ki : is_exact k i)
definition differential {A B : CommGroup} (EC : exact_couple A B) : B →g B :=
(exact_couple.j EC) ∘g (exact_couple.k EC)
2016-10-20 20:23:55 +00:00
definition differential_is_differential {A B : CommGroup} (EC : exact_couple A B) : is_differential (differential EC) :=
2016-11-03 20:42:12 +00:00
begin
induction EC,
2016-11-03 20:42:12 +00:00
induction exact_jk,
intro b,
exact (ap (group_fun j) (im_in_ker (group_fun k b))) ⬝ (respect_one j)
end
2016-10-20 20:23:55 +00:00
2016-11-03 20:42:12 +00:00
section derived_couple
variables {A B : CommGroup} (EC : exact_couple A B)
2016-11-03 20:42:12 +00:00
definition derived_couple_A : CommGroup :=
comm_subgroup (image_subgroup (exact_couple.i EC))
2016-11-03 20:42:12 +00:00
definition derived_couple_B : CommGroup :=
homology (differential EC) (differential_is_differential EC)
2016-11-03 20:42:12 +00:00
definition derived_couple_i : derived_couple_A EC →g derived_couple_A EC :=
(image_lift (exact_couple.i EC)) ∘g (image_incl (exact_couple.i EC))
2016-11-03 20:42:12 +00:00
definition derived_couple_j : derived_couple_A EC →g derived_couple_B EC :=
2016-11-03 20:42:12 +00:00
begin
exact sorry,
2016-11-03 20:42:12 +00:00
-- refine (comm_gq_map (comm_kernel (boundary CC)) (image_subgroup_of_bd (boundary CC) (boundary_is_boundary CC))) ∘g _,
end
2016-10-20 20:23:55 +00:00
2016-11-03 20:42:12 +00:00
end derived_couple