Group Cohomology trivial Cohomology of even of odd of solvable
groupCohomology.trivialCohomology_of_even_of_odd_of_solvable
Plain-language statement
If H²ⁿ⁺²(H,M) and H²ᵐ⁺¹(H,M) are both zero for every subgroup H of G then M is acyclic.
Exact Lean statement
theorem groupCohomology.trivialCohomology_of_even_of_odd_of_solvable [Finite G] [Group.IsSolvable G]
(M : Rep R G) (n m : ℕ)
-- todo: don't quantify over all types
(h_even : ∀ (H : Type) [Group H] {φ : H →* G} (_ : Function.Injective φ),
IsZero (groupCohomology (M ↓ φ) (2 * n + 2)))
(h_odd : ∀ (H : Type) [Group H] {φ : H →* G} (_ : Function.Injective φ),
IsZero (groupCohomology (M ↓ φ) (2 * m + 1))) :
M.TrivialCohomology where
isZero HFormal artifact
Lean source
theorem groupCohomology.trivialCohomology_of_even_of_odd_of_solvable [Finite G] [Group.IsSolvable G] (M : Rep R G) (n m : ℕ) -- todo: don't quantify over all types (h_even : ∀ (H : Type) [Group H] {φ : H →* G} (_ : Function.Injective φ), IsZero (groupCohomology (M ↓ φ) (2 * n + 2))) (h_odd : ∀ (H : Type) [Group H] {φ : H →* G} (_ : Function.Injective φ), IsZero (groupCohomology (M ↓ φ) (2 * m + 1))) : M.TrivialCohomology where isZero H := by classical induction H using solvable_ind with | bot => intro n exact isZero_groupCohomology_succ_of_subsingleton .. | ind K H h12 h1 h2 h3 => have IH : ∀ i, IsZero (groupCohomology (M ↓ H.subtype ↓ (QuotientGroup.mk' (K.subgroupOf H)).ker.subtype) (i + 1)) := by refine fun i ↦ .of_iso (h3 (n := i)) <| groupCohomology.mapIso ((MulEquiv.subgroupCongr <| QuotientGroup.ker_mk' _).trans <| Subgroup.subgroupOfEquivOfLe h12) (LinearEquiv.refl _ _) (by simp) _ have : ∀ n, IsIso ((infl (QuotientGroup.mk'_surjective (K.subgroupOf H)) (n + 1)).app (M ↓ H.subtype)) := by intro n apply (config := { allowSynthFailures := true }) isIso_of_mono_of_epi · exact inflation_restriction_mono (R := R) (QuotientGroup.mk'_surjective (K.subgroupOf H)) n (M := M ↓ H.subtype) (fun i _ ↦ IH i) · exact (inflation_restriction_exact (QuotientGroup.mk'_surjective _) n fun i _ ↦ IH i).epi_f ((IH _).eq_zero_of_tgt _) have : ∀ n : ℕ, groupCohomology ((M ↓ H.subtype) ↑ (QuotientGroup.mk'_surjective (K.subgroupOf H))) (n + 1) ≅ groupCohomology (M ↓ H.subtype) (n + 1) := fun n ↦ asIso ((infl (QuotientGroup.mk'_surjective (K.subgroupOf H)) (n + 1)).app (M ↓ H.subtype)) specialize h_even H H.subtype_injective specialize h_odd H H.subtype_injective have zero1 := IsZero.of_iso h_even <| this (2 * n + 1) have zero2 := IsZero.of_iso h_odd <| this (2 * m) intro k refine .of_iso (Rep.isZero_ofEven_odd ?_ ?_ zero1 zero2 _) <| this k |>.symm <;> simp [parity_simps]- Project
- Class Field Theory
- License
- Apache-2.0
- Commit
- f18cd7fd1575
- Source
- ClassFieldTheory/Cohomology/TrivialityCriterion.lean:44-82
Reuse this declaration
Bring the exact result into your workflow
The import identifies the source module. Your project still needs the pinned package dependency shown on this page.
What this badge means
This completion status comes from the project or community source. It has not yet been represented here as an independent rebuild and axiom audit.
Continue in this project
Related declarations
Continuous algebra Map of density
continuous_algebraMap_of_density
Plain-language statement
Maddy's Lemma : Density implies continuity.
Source project: Class Field Theory
Person-level attribution pending.
Exists valuation algebra Map eq valuation pow
exists_valuation_algebraMap_eq_valuation_pow
Plain-language statement
Andrew's Lemma : Density for algebraic extensions.
Source project: Class Field Theory
Person-level attribution pending.
Exists of surjective
groupCohomology.exists_of_surjective
Plain-language statement
Given map f: M ⟶ N and q : ℕ, if H^{q+1}(M) ⟶ H^{q+1}(N) is surjective, then any z : Z^{q+1}(N) can be written as f(z') + d(y) for some z' : Z^{q+1}(M) and y : C^q(M). Note that d is spelled as toCocycles.
Source project: Class Field Theory
Person-level attribution pending.