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.
|
2017-02-17 04:00:55 +00:00
|
|
|
Authors: Egbert Rijke, Steve Awodey
|
2016-10-20 20:23:55 +00:00
|
|
|
|
|
|
|
Exact couple, derived couples, and so on
|
|
|
|
-/
|
|
|
|
|
2017-02-17 04:00:55 +00:00
|
|
|
import algebra.group_theory hit.set_quotient types.sigma types.list types.sum .quotient_group .subgroup .ses
|
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
|
2017-02-17 03:26:06 +00:00
|
|
|
equiv is_equiv
|
2016-10-20 20:23:55 +00:00
|
|
|
|
2016-11-24 04:54:57 +00:00
|
|
|
definition is_differential {B : AbGroup} (d : B →g B) := Π(b:B), d (d b) = 1
|
2016-10-20 20:23:55 +00:00
|
|
|
|
2016-11-24 04:54:57 +00:00
|
|
|
definition image_subgroup_of_diff {B : AbGroup} (d : B →g B) (H : is_differential d) : subgroup_rel (ab_kernel d) :=
|
2016-11-03 20:42:12 +00:00
|
|
|
subgroup_rel_of_subgroup (image_subgroup d) (kernel_subgroup d)
|
|
|
|
begin
|
2016-11-24 04:54:57 +00:00
|
|
|
intro g p,
|
2016-11-03 20:42:12 +00:00
|
|
|
induction p with f, induction f with h p,
|
2016-11-24 04:54:57 +00:00
|
|
|
rewrite [p⁻¹],
|
2016-11-03 20:42:12 +00:00
|
|
|
esimp,
|
2016-11-24 04:54:57 +00:00
|
|
|
exact H h
|
2016-11-03 20:42:12 +00:00
|
|
|
end
|
2016-10-20 20:23:55 +00:00
|
|
|
|
2017-04-20 20:18:18 +00:00
|
|
|
definition diff_im_in_ker {B : AbGroup} (d : B →g B) (H : is_differential d) : Π(b : B), image_subgroup d b → kernel_subgroup d b :=
|
|
|
|
begin
|
|
|
|
intro b p,
|
|
|
|
induction p with q, induction q with b' p, induction p, exact H b'
|
|
|
|
end
|
|
|
|
|
2016-11-24 04:54:57 +00:00
|
|
|
definition homology {B : AbGroup} (d : B →g B) (H : is_differential d) : AbGroup :=
|
|
|
|
@quotient_ab_group (ab_kernel d) (image_subgroup_of_diff d H)
|
2016-10-20 20:23:55 +00:00
|
|
|
|
2017-04-27 22:07:30 +00:00
|
|
|
definition homology_ugly {B : AbGroup} (d : B →g B) (H : is_differential d) : AbGroup :=
|
|
|
|
(quotient_ab_group (image_subgroup (ab_subgroup_of_subgroup_incl (diff_im_in_ker d H))))
|
2017-04-27 21:09:20 +00:00
|
|
|
|
2017-04-27 22:07:30 +00:00
|
|
|
definition homology_iso_ugly {B : AbGroup} (d : B →g B) (H : is_differential d) : (homology d H) ≃g (homology_ugly d H) :=
|
2017-04-07 19:05:10 +00:00
|
|
|
begin
|
2017-04-27 22:07:30 +00:00
|
|
|
-- fapply quotientgroupiso ...
|
|
|
|
exact sorry
|
|
|
|
end
|
|
|
|
|
|
|
|
definition SES_iso_C {A B C C' : AbGroup} (ses : SES A B C) (k : C ≃g C') : SES A B C' :=
|
|
|
|
begin
|
|
|
|
fapply SES.mk,
|
|
|
|
exact SES.f ses,
|
|
|
|
exact k ∘g SES.g ses,
|
|
|
|
exact SES.Hf ses,
|
|
|
|
fapply @is_surjective_compose _ _ _ k (SES.g ses),
|
|
|
|
exact is_surjective_of_is_equiv k,
|
|
|
|
exact SES.Hg ses,
|
|
|
|
fapply is_exact.mk,
|
|
|
|
repeat exact sorry
|
|
|
|
end
|
2017-04-27 21:09:20 +00:00
|
|
|
|
2017-04-27 22:07:30 +00:00
|
|
|
definition SES_of_differential_ugly {B : AbGroup} (d : B →g B) (H : is_differential d) : SES (ab_image d) (ab_kernel d) (homology_ugly d H) :=
|
|
|
|
begin
|
|
|
|
exact SES_of_inclusion (ab_subgroup_of_subgroup_incl (diff_im_in_ker d H)) (is_embedding_ab_subgroup_of_subgroup_incl (diff_im_in_ker d H)),
|
|
|
|
end
|
2017-04-27 21:09:20 +00:00
|
|
|
|
2017-04-27 22:07:30 +00:00
|
|
|
definition SES_of_differential {B : AbGroup} (d : B →g B) (H : is_differential d) : SES (ab_image d) (ab_kernel d) (homology d H) :=
|
|
|
|
begin
|
|
|
|
exact SES_of_inclusion (ab_subgroup_of_subgroup_incl (diff_im_in_ker d H)) (is_embedding_ab_subgroup_of_subgroup_incl (diff_im_in_ker d H)),
|
|
|
|
end
|
2017-04-07 19:05:10 +00:00
|
|
|
|
2016-11-24 04:54:57 +00:00
|
|
|
structure exact_couple (A B : AbGroup) : Type :=
|
2016-10-20 20:23:55 +00:00
|
|
|
( 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)
|
|
|
|
|
2016-11-24 04:54:57 +00:00
|
|
|
definition differential {A B : AbGroup} (EC : exact_couple A B) : B →g B :=
|
2016-11-10 21:49:09 +00:00
|
|
|
(exact_couple.j EC) ∘g (exact_couple.k EC)
|
2016-10-20 20:23:55 +00:00
|
|
|
|
2016-11-24 04:54:57 +00:00
|
|
|
definition differential_is_differential {A B : AbGroup} (EC : exact_couple A B) : is_differential (differential EC) :=
|
2016-11-03 20:42:12 +00:00
|
|
|
begin
|
2016-11-24 04:54:57 +00:00
|
|
|
induction EC,
|
|
|
|
induction exact_jk,
|
2016-11-03 20:42:12 +00:00
|
|
|
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
|
|
|
|
|
2016-11-24 04:54:57 +00:00
|
|
|
variables {A B : AbGroup} (EC : exact_couple A B)
|
2016-11-03 20:42:12 +00:00
|
|
|
|
2016-11-24 04:54:57 +00:00
|
|
|
definition derived_couple_A : AbGroup :=
|
|
|
|
ab_subgroup (image_subgroup (exact_couple.i EC))
|
2016-11-03 20:42:12 +00:00
|
|
|
|
2016-11-24 04:54:57 +00:00
|
|
|
definition derived_couple_B : AbGroup :=
|
2016-11-10 21:49:09 +00:00
|
|
|
homology (differential EC) (differential_is_differential EC)
|
2016-11-03 20:42:12 +00:00
|
|
|
|
2016-11-10 21:49:09 +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
|
|
|
|
2016-11-10 21:49:09 +00:00
|
|
|
definition derived_couple_j : derived_couple_A EC →g derived_couple_B EC :=
|
2016-11-03 20:42:12 +00:00
|
|
|
begin
|
2016-11-10 21:49:09 +00:00
|
|
|
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
|