Skip to content

Commit 83fc818

Browse files
tb65536b-mehta
authored andcommitted
feat(FieldTheory/Galois/IsGaloisGroup): IsGaloisGroup instance for FixedPoints.subalgebra (leanprover-community#39095)
This PR generalizes the existing `IsGaloisGroup` instance for `FixedPoints.intermediateField` to `FixedPoints.subalgebra`. Co-authored-by: tb65536 <thomas.l.browning@gmail.com>
1 parent f9954c4 commit 83fc818

3 files changed

Lines changed: 23 additions & 3 deletions

File tree

Mathlib/Algebra/Algebra/Subalgebra/Operations.lean

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,23 @@ def FixedPoints.subsemiring : Subsemiring B' where
9191
__ := FixedPoints.addSubmonoid G B'
9292
__ := FixedPoints.submonoid G B'
9393

94+
instance : SMulCommClass G (FixedPoints.subsemiring B' G) B' :=
95+
inferInstanceAs (SMulCommClass G (FixedPoints.submonoid G B') B')
96+
9497
/-- The set of fixed points under a group action, as a subring. -/
9598
def FixedPoints.subring : Subring B where
9699
__ := FixedPoints.addSubgroup G B
97100
__ := FixedPoints.submonoid G B
98101

102+
instance : SMulCommClass G (FixedPoints.subring B G) B :=
103+
inferInstanceAs (SMulCommClass G (FixedPoints.subsemiring B G) B)
104+
99105
/-- The set of fixed points under a group action, as a subalgebra. -/
100106
def FixedPoints.subalgebra : Subalgebra A B' where
101107
__ := FixedPoints.subsemiring B' G
102108
algebraMap_mem' r g := smul_algebraMap g r
103109

110+
instance : SMulCommClass G (FixedPoints.subalgebra A B' G) B' :=
111+
inferInstanceAs (SMulCommClass G (FixedPoints.subsemiring B' G) B')
112+
104113
end MulSemiringAction

Mathlib/FieldTheory/Galois/IsGaloisGroup.lean

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -270,12 +270,17 @@ theorem map_mulEquivAlgEquiv_fixingSubgroup
270270

271271
variable (H H' : Subgroup G) (F F' : IntermediateField K L)
272272

273-
instance subgroup [hGKL : IsGaloisGroup G K L] :
274-
IsGaloisGroup H (FixedPoints.intermediateField H : IntermediateField K L) L where
273+
instance (R S : Type*) [CommRing R] [CommRing S] [Algebra R S]
274+
[MulSemiringAction G S] [hGKL : IsGaloisGroup G R S] :
275+
IsGaloisGroup H (FixedPoints.subalgebra R S H) S where
275276
faithful := have := hGKL.faithful; inferInstance
276-
commutes := inferInstanceAs <| SMulCommClass H (FixedPoints.subfield H L) L
277+
commutes := inferInstance
277278
isInvariant := ⟨fun x h ↦ ⟨⟨x, h⟩, rfl⟩⟩
278279

280+
instance subgroup [hGKL : IsGaloisGroup G K L] :
281+
IsGaloisGroup H (FixedPoints.intermediateField H : IntermediateField K L) L :=
282+
inferInstanceAs (IsGaloisGroup H (FixedPoints.subalgebra K L H) L)
283+
279284
open IntermediateField in
280285
theorem fixedPoints_of_isGaloisGroup [hGKL : IsGaloisGroup G K L] [hHFL : IsGaloisGroup H F L] :
281286
FixedPoints.intermediateField H = F := by

Mathlib/GroupTheory/GroupAction/Defs.lean

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,9 @@ def FixedPoints.submonoid : Submonoid α where
190190
lemma FixedPoints.mem_submonoid (a : α) : a ∈ submonoid M α ↔ ∀ m : M, m • a = a :=
191191
Iff.rfl
192192

193+
instance : SMulCommClass M (FixedPoints.submonoid M α) α where
194+
smul_comm g x y := by simp_rw [Submonoid.smul_def, smul_eq_mul, smul_mul', x.2 g]
195+
193196
end Monoid
194197

195198
section Group
@@ -208,6 +211,9 @@ scoped notation α "^*" M:51 => FixedPoints.subgroup M α
208211
lemma mem_subgroup (a : α) : a ∈ α^*M ↔ ∀ m : M, m • a = a :=
209212
Iff.rfl
210213

214+
instance : SMulCommClass M (FixedPoints.subgroup M α) α :=
215+
inferInstanceAs (SMulCommClass M (FixedPoints.submonoid M α) α)
216+
211217
@[simp]
212218
lemma subgroup_toSubmonoid : (α^*M).toSubmonoid = submonoid M α :=
213219
rfl

0 commit comments

Comments
 (0)