§5.11 dévissage: exactness of the nine-term LES #
Part of the §5.11 dévissage development (split from GQ2/Devissage.lean).
Exactness of the nine-term LES #
Each spot is stated as y ∈ ker(out) ↔ y ∈ range(in) (equivalently at the ends, injectivity /
surjectivity), the usual snake-lemma bookkeeping.
theorem
GQ2.FoxH.H2wMap_g_surjective
{C : Type u_1}
[Group C]
{A : Type u_3}
{A'' : Type u_4}
[AddCommGroup A]
[DistribMulAction C A]
[Finite A]
[AddCommGroup A'']
[DistribMulAction C A'']
[Finite A'']
[Finite C]
(g : A →+ A'')
(hg : ∀ (c : C) (a : A), g (c • a) = c • g a)
(hsurj : Function.Surjective ⇑g)
(t : Marking C)
:
Function.Surjective ⇑(H2wMap t g hg)
Exactness at the right end: H²wMap g is surjective.
theorem
GQ2.FoxH.H2w_exact_mid
{C : Type u_1}
[Group C]
{A' : Type u_2}
{A : Type u_3}
{A'' : Type u_4}
[AddCommGroup A']
[DistribMulAction C A']
[Finite A']
[AddCommGroup A]
[DistribMulAction C A]
[Finite A]
[AddCommGroup A'']
[DistribMulAction C A'']
[Finite A'']
[Finite C]
(f : A' →+ A)
(g : A →+ A'')
(hf : ∀ (c : C) (a : A'), f (c • a) = c • f a)
(hg : ∀ (c : C) (a : A), g (c • a) = c • g a)
(hsurj : Function.Surjective ⇑g)
(hexact : f.range = g.ker)
(t : Marking C)
(y : H2w t)
:
Exactness at H²w(A): ker(H²wMap g) = range(H²wMap f).
theorem
GQ2.FoxH.H0w_exact_mid
{C : Type u_1}
[Group C]
{A' : Type u_2}
{A : Type u_3}
{A'' : Type u_4}
[AddCommGroup A']
[DistribMulAction C A']
[AddCommGroup A]
[DistribMulAction C A]
[AddCommGroup A'']
[DistribMulAction C A'']
(f : A' →+ A)
(g : A →+ A'')
(hf : ∀ (c : C) (a : A'), f (c • a) = c • f a)
(hg : ∀ (c : C) (a : A), g (c • a) = c • g a)
(hinj : Function.Injective ⇑f)
(hexact : f.range = g.ker)
(t : Marking C)
(a : ↥(H0w t))
:
Exactness at H⁰w(A): ker(H⁰wMap g) = range(H⁰wMap f).
theorem
GQ2.FoxH.H0w_exact_right
{C : Type u_1}
[Group C]
{A' : Type u_2}
{A : Type u_3}
{A'' : Type u_4}
[AddCommGroup A']
[DistribMulAction C A']
[Finite A']
[AddCommGroup A]
[DistribMulAction C A]
[Finite A]
[AddCommGroup A'']
[DistribMulAction C A'']
[Finite C]
(f : A' →+ A)
(g : A →+ A'')
(hf : ∀ (c : C) (a : A'), f (c • a) = c • f a)
(hg : ∀ (c : C) (a : A), g (c • a) = c • g a)
(hinj : Function.Injective ⇑f)
(hsurj : Function.Surjective ⇑g)
(hexact : f.range = g.ker)
(t : Marking C)
(ht : t.TameRel)
(hw : t.WildRel)
(a'' : ↥(H0w t))
:
Exactness at H⁰w(A''): ker δ⁰ = range(H⁰wMap g).
theorem
GQ2.FoxH.H1w_exact_left
{C : Type u_1}
[Group C]
{A' : Type u_2}
{A : Type u_3}
{A'' : Type u_4}
[AddCommGroup A']
[DistribMulAction C A']
[Finite A']
[AddCommGroup A]
[DistribMulAction C A]
[Finite A]
[AddCommGroup A'']
[DistribMulAction C A'']
[Finite C]
(f : A' →+ A)
(g : A →+ A'')
(hf : ∀ (c : C) (a : A'), f (c • a) = c • f a)
(hg : ∀ (c : C) (a : A), g (c • a) = c • g a)
(hinj : Function.Injective ⇑f)
(hsurj : Function.Surjective ⇑g)
(hexact : f.range = g.ker)
(t : Marking C)
(ht : t.TameRel)
(hw : t.WildRel)
(h : H1w t)
:
Exactness at H¹w(A'): ker(H¹wMap f) = range δ⁰.
theorem
GQ2.FoxH.H1w_exact_mid
{C : Type u_1}
[Group C]
{A' : Type u_2}
{A : Type u_3}
{A'' : Type u_4}
[AddCommGroup A']
[DistribMulAction C A']
[Finite A']
[AddCommGroup A]
[DistribMulAction C A]
[Finite A]
[AddCommGroup A'']
[DistribMulAction C A'']
[Finite A'']
[Finite C]
(f : A' →+ A)
(g : A →+ A'')
(hf : ∀ (c : C) (a : A'), f (c • a) = c • f a)
(hg : ∀ (c : C) (a : A), g (c • a) = c • g a)
(hinj : Function.Injective ⇑f)
(hsurj : Function.Surjective ⇑g)
(hexact : f.range = g.ker)
(t : Marking C)
(ht : t.TameRel)
(hw : t.WildRel)
(h : H1w t)
:
Exactness at H¹w(A): ker(H¹wMap g) = range(H¹wMap f).
theorem
GQ2.FoxH.H1w_exact_right
{C : Type u_1}
[Group C]
{A' : Type u_2}
{A : Type u_3}
{A'' : Type u_4}
[AddCommGroup A']
[DistribMulAction C A']
[Finite A']
[AddCommGroup A]
[DistribMulAction C A]
[Finite A]
[AddCommGroup A'']
[DistribMulAction C A'']
[Finite A'']
[Finite C]
(f : A' →+ A)
(g : A →+ A'')
(hf : ∀ (c : C) (a : A'), f (c • a) = c • f a)
(hg : ∀ (c : C) (a : A), g (c • a) = c • g a)
(hinj : Function.Injective ⇑f)
(hsurj : Function.Surjective ⇑g)
(hexact : f.range = g.ker)
(t : Marking C)
(ht : t.TameRel)
(hw : t.WildRel)
(h : H1w t)
:
Exactness at H¹w(A''): ker δ¹ = range(H¹wMap g).
theorem
GQ2.FoxH.H2w_exact_left
{C : Type u_1}
[Group C]
{A' : Type u_2}
{A : Type u_3}
{A'' : Type u_4}
[AddCommGroup A']
[DistribMulAction C A']
[Finite A']
[AddCommGroup A]
[DistribMulAction C A]
[Finite A]
[AddCommGroup A'']
[DistribMulAction C A'']
[Finite A'']
[Finite C]
(f : A' →+ A)
(g : A →+ A'')
(hf : ∀ (c : C) (a : A'), f (c • a) = c • f a)
(hg : ∀ (c : C) (a : A), g (c • a) = c • g a)
(hinj : Function.Injective ⇑f)
(hsurj : Function.Surjective ⇑g)
(hexact : f.range = g.ker)
(t : Marking C)
(ht : t.TameRel)
(hw : t.WildRel)
(y : H2w t)
:
Exactness at H²w(A'): ker(H²wMap f) = range δ¹.