@@ -24,15 +24,17 @@ Noether's generalization also holds for infinite Galois extensions.
24
24
25
25
## Main statements
26
26
27
- * `hilbert90`: for all $f: Aut_K(L) \to L^\times$ satisfying the 1-cocycle condition, there exists
28
- `β : Lˣ` such that $f(g)g(β) = β$ for all `g : Aut_K(L)`.
29
- * `groupCohomology.hilbert90`: $H^1(Aut_K(L), L^\times)$ is trivial.
27
+ * `groupCohomology.isMulOneCoboundary_of_isMulOneCocycle_of_aut_to_units`: Noether's generalization
28
+ of Hilbert's Theorem 90: for all $f: Aut_K(L) \to L^\times$ satisfying the 1-cocycle
29
+ condition, there exists `β : Lˣ` such that $g(β)/β = f(g)$ for all `g : Aut_K(L)`.
30
+ * `groupCohomology.H1ofAutOnUnitsUnique`: Noether's generalization of Hilbert's Theorem 90:
31
+ $H^1(Aut_K(L), L^\times)$ is trivial.
30
32
31
33
## Implementation notes
32
34
33
35
Given a commutative ring `k` and a group `G`, group cohomology is developed in terms of `k`-linear
34
- `G`-representations on `k`-modules. Thus stating Noether's generalization of Hilbert 90 in terms
35
- of `H¹` requires us to turn the natural action of `Aut_K(L)` on `Lˣ` into a morphism
36
+ `G`-representations on `k`-modules. Therefore stating Noether's generalization of Hilbert 90 in
37
+ terms of `H¹` requires us to turn the natural action of `Aut_K(L)` on `Lˣ` into a morphism
36
38
`Aut_K(L) →* (Additive Lˣ →ₗ[ℤ] Additive Lˣ)`. Thus we provide the non-`H¹` version too, as its
37
39
statement is clearer.
38
40
@@ -46,16 +48,17 @@ for all $1 ≤ n.$
46
48
-/
47
49
48
50
open BigOperators
51
+ namespace groupCohomology
49
52
namespace Hilbert90
50
53
51
- variable ( K L : Type *) [Field K] [Field L] [Algebra K L] [FiniteDimensional K L]
54
+ variable { K L : Type *} [Field K] [Field L] [Algebra K L] [FiniteDimensional K L]
52
55
53
56
/-- Given `f : Aut_K(L) → Lˣ`, the sum `∑ f(φ) • φ` for `φ ∈ Aut_K(L)`, as a function `L → L`. -/
54
57
noncomputable def aux (f : (L ≃ₐ[K] L) → Lˣ) : L → L :=
55
58
Finsupp.total (L ≃ₐ[K] L) (L → L) L (fun φ => φ)
56
59
(Finsupp.equivFunOnFinite.symm (fun φ => (f φ : L)))
57
60
58
- theorem aux_ne_zero (f : (L ≃ₐ[K] L) → Lˣ) : aux K L f ≠ 0 :=
61
+ theorem aux_ne_zero (f : (L ≃ₐ[K] L) → Lˣ) : aux f ≠ 0 :=
59
62
/- the set `Aut_K(L)` is linearly independent in the `L`-vector space `L → L`, by Dedekind's
60
63
linear independence of characters -/
61
64
have : LinearIndependent L (fun (f : L ≃ₐ[K] L) => (f : L → L)) :=
@@ -71,38 +74,38 @@ section
71
74
open Hilbert90
72
75
variable {K L : Type *} [Field K] [Field L] [Algebra K L] [FiniteDimensional K L]
73
76
74
- theorem hilbert90 (f : (L ≃ₐ[K] L) → Lˣ)
75
- (hf : ∀ (g h : (L ≃ₐ[K] L)), f (g * h) = g (f h) * f g) :
76
- ∃ β : Lˣ, ∀ g : (L ≃ₐ[K] L), f g * Units.map g β = β := by
77
+ /-- Noether's generalization of Hilbert's Theorem 90: given a finite extension of fields and a
78
+ function `f : Aut_K(L) → Lˣ` satisfying `f(gh) = g(f(h)) * f(g)` for all `g, h : Aut_K(L)`, there
79
+ exists `β : Lˣ` such that `g(β)/β = f(g)` for all `g : Aut_K(L).` -/
80
+ theorem isMulOneCoboundary_of_isMulOneCocycle_of_aut_to_units
81
+ (f : (L ≃ₐ[K] L) → Lˣ) (hf : IsMulOneCocycle f) :
82
+ IsMulOneCoboundary f := by
77
83
/- Let `z : L` be such that `∑ f(h) * h(z) ≠ 0`, for `h ∈ Aut_K(L)` -/
78
- obtain ⟨z, hz⟩ : ∃ z, aux K L f z ≠ 0 :=
79
- not_forall.1 (fun H => aux_ne_zero K L f <| funext fun x => H x)
80
- have : aux K L f z = ∑ h, f h * h z := by simp [aux, Finsupp.total, Finsupp.sum_fintype]
81
- /- Let `β = ∑ f(h) * h(z).` -/
82
- use Units.mk0 (aux K L f z) hz
84
+ obtain ⟨z, hz⟩ : ∃ z, aux f z ≠ 0 :=
85
+ not_forall.1 (fun H => aux_ne_zero f <| funext <| fun x => H x)
86
+ have : aux f z = ∑ h, f h * h z := by simp [aux, Finsupp.total, Finsupp.sum_fintype]
87
+ /- Let `β = ( ∑ f(h) * h(z))⁻¹ .` -/
88
+ use ( Units.mk0 (aux f z) hz)⁻¹
83
89
intro g
84
- /- Then the equality follows from the hypothesis `hf` (that `f` is a 1-cocycle). -/
85
- simp_rw [Units.ext_iff, this, Units.val_mul, Units.coe_map, Units.val_mk0, MonoidHom.coe_coe,
86
- map_sum, map_mul, Finset.mul_sum, ← mul_assoc, mul_comm (f _ : L), ← hf, mul_comm (f _ : L)]
87
- exact Fintype.sum_bijective (fun i => g * i) (Group.mulLeft_bijective g) _ _ (fun i => rfl)
90
+ /- Then the equality follows from the hypothesis that `f` is a 1-cocycle. -/
91
+ simp only [IsMulOneCocycle, IsMulOneCoboundary, AlgEquiv.smul_units_def,
92
+ map_inv, div_inv_eq_mul, inv_mul_eq_iff_eq_mul, Units.ext_iff, this,
93
+ Units.val_mul, Units.coe_map, Units.val_mk0, MonoidHom.coe_coe] at hf ⊢
94
+ simp_rw [map_sum, map_mul, Finset.sum_mul, mul_assoc, mul_comm _ (f _ : L), ← mul_assoc, ← hf g]
95
+ exact eq_comm.1 (Fintype.sum_bijective (fun i => g * i)
96
+ (Group.mulLeft_bijective g) _ _ (fun i => rfl))
88
97
89
98
end
90
- namespace groupCohomology
91
99
variable (K L : Type ) [Field K] [Field L] [Algebra K L] [FiniteDimensional K L]
92
100
93
- /-- Given a finite extension of fields `L/K`, the first group cohomology `H¹(Aut_K(L), Lˣ)` is
94
- trivial. -/
95
- noncomputable instance hilbert90 : Unique (H1 (Rep.ofAlgebraAutOnUnits K L)) where
101
+ /-- Noether's generalization of Hilbert's Theorem 90: given a finite extension of fields `L/K`, the
102
+ first group cohomology `H¹(Aut_K(L), Lˣ)` is trivial. -/
103
+ noncomputable instance H1ofAutOnUnitsUnique : Unique (H1 (Rep.ofAlgebraAutOnUnits K L)) where
96
104
default := 0
97
105
uniq := fun a => Quotient.inductionOn' a fun x => (Submodule.Quotient.mk_eq_zero _).2 <| by
98
- rcases _root_.hilbert90 (Additive.toMul ∘ x.1 ) (fun g h => Units.ext_iff.1
99
- ((mem_oneCocycles_iff x.1 ).1 x.2 g h)) with ⟨β, hβ⟩
100
- use Additive.ofMul (β⁻¹ : Lˣ)
101
- ext g
102
- refine' Additive.toMul.bijective.1 _
103
- show Units.map g β⁻¹ / β⁻¹ = Additive.toMul (x.1 g)
104
- rw [map_inv, div_inv_eq_mul, mul_comm]
105
- -- TODO this used to be `exact` prior to leanprover/lean4#2478
106
- apply mul_inv_eq_iff_eq_mul.2 (hβ g).symm
106
+ refine' (oneCoboundariesOfIsMulOneCoboundary _).2
107
+ rcases isMulOneCoboundary_of_isMulOneCocycle_of_aut_to_units x.1
108
+ (isMulOneCocycle_of_oneCocycles x) with ⟨β, hβ⟩
109
+ use β
107
110
108
111
end groupCohomology
0 commit comments