Skip to content

Commit ea41783

Browse files
committed
chore(FieldTheory/Galois): small cleanup (leanprover-community#20217)
Small refinements about Fieldtheory.Galois Mainly about few refine in proof style and some more suggested lemma.
1 parent 9afdff7 commit ea41783

File tree

2 files changed

+20
-26
lines changed

2 files changed

+20
-26
lines changed

Mathlib/FieldTheory/Galois/Basic.lean

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -286,11 +286,8 @@ def galoisCoinsertionIntermediateFieldSubgroup [FiniteDimensional F E] [IsGalois
286286
GaloisCoinsertion (OrderDual.toDual ∘
287287
(IntermediateField.fixingSubgroup : IntermediateField F E → Subgroup (E ≃ₐ[F] E)))
288288
((IntermediateField.fixedField : Subgroup (E ≃ₐ[F] E) → IntermediateField F E) ∘
289-
OrderDual.toDual) where
290-
choice H _ := IntermediateField.fixedField H
291-
gc K H := (IntermediateField.le_iff_le H K).symm
292-
u_l_le K := le_of_eq (fixedField_fixingSubgroup K)
293-
choice_eq _ _ := rfl
289+
OrderDual.toDual) :=
290+
OrderIso.toGaloisCoinsertion intermediateFieldEquivSubgroup
294291

295292
end IsGalois
296293

Mathlib/FieldTheory/Galois/Infinite.lean

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -180,19 +180,15 @@ lemma fixingSubgroup_fixedField (H : ClosedSubgroup (K ≃ₐ[k] K)) [IsGalois k
180180
/-- The Galois correspondence from intermediate fields to closed subgroups. -/
181181
def IntermediateFieldEquivClosedSubgroup [IsGalois k K] :
182182
IntermediateField k K ≃o (ClosedSubgroup (K ≃ₐ[k] K))ᵒᵈ where
183-
toFun := fun L =>
184-
{ L.fixingSubgroup with
185-
isClosed' := fixingSubgroup_isClosed L }
186-
invFun := fun H => IntermediateField.fixedField H.1
187-
left_inv := fun L => fixedField_fixingSubgroup L
188-
right_inv := by
189-
intro H
183+
toFun L := ⟨L.fixingSubgroup, fixingSubgroup_isClosed L⟩
184+
invFun H := IntermediateField.fixedField H.1
185+
left_inv L := fixedField_fixingSubgroup L
186+
right_inv H := by
190187
simp_rw [fixingSubgroup_fixedField H]
191188
rfl
192-
map_rel_iff' := by
193-
intro L₁ L₂
194-
show L₁.fixingSubgroup ≥ L₂.fixingSubgroup ↔ L₁ ≤ L₂
195-
rw [← fixedField_fixingSubgroup L₂, IntermediateField.le_iff_le, fixedField_fixingSubgroup L₂]
189+
map_rel_iff' {K L} := by
190+
rw [← fixedField_fixingSubgroup L, IntermediateField.le_iff_le, fixedField_fixingSubgroup L]
191+
rfl
196192

197193
/-- The Galois correspondence as a `GaloisInsertion` -/
198194
def GaloisInsertionIntermediateFieldClosedSubgroup [IsGalois k K] :
@@ -205,16 +201,14 @@ def GaloisInsertionIntermediateFieldClosedSubgroup [IsGalois k K] :
205201
/-- The Galois correspondence as a `GaloisCoinsertion` -/
206202
def GaloisCoinsertionIntermediateFieldSubgroup [IsGalois k K] :
207203
GaloisCoinsertion (OrderDual.toDual ∘ fun (E : IntermediateField k K) ↦ E.fixingSubgroup)
208-
((fun (H : Subgroup (K ≃ₐ[k] K)) ↦ IntermediateField.fixedField H) ∘
209-
OrderDual.toDual) where
204+
((fun (H : Subgroup (K ≃ₐ[k] K)) ↦ IntermediateField.fixedField H) ∘ OrderDual.toDual) where
210205
choice H _ := IntermediateField.fixedField H
211206
gc E H := (IntermediateField.le_iff_le H E).symm
212207
u_l_le K := le_of_eq (fixedField_fixingSubgroup K)
213208
choice_eq _ _ := rfl
214209

215210
theorem isOpen_iff_finite (L : IntermediateField k K) [IsGalois k K] :
216-
IsOpen (IntermediateFieldEquivClosedSubgroup L).carrier ↔
217-
(FiniteDimensional k L) := by
211+
IsOpen L.fixingSubgroup.carrier ↔ FiniteDimensional k L := by
218212
refine ⟨fun h ↦ ?_, fun h ↦ IntermediateField.fixingSubgroup_isOpen L⟩
219213
have : (IntermediateFieldEquivClosedSubgroup.toFun L).carrier ∈ nhds 1 :=
220214
IsOpen.mem_nhds h (congrFun rfl)
@@ -234,14 +228,12 @@ theorem isOpen_iff_finite (L : IntermediateField k K) [IsGalois k K] :
234228
exact FiniteDimensional.left k L L'.1
235229

236230
theorem normal_iff_isGalois (L : IntermediateField k K) [IsGalois k K] :
237-
Subgroup.Normal (IntermediateFieldEquivClosedSubgroup L).1
238-
IsGalois k L := by
231+
L.fixingSubgroup.Normal ↔ IsGalois k L := by
239232
refine ⟨fun h ↦ ?_, fun h ↦ ?_⟩
240233
· let f : L → IntermediateField k K := fun x => IntermediateField.lift <|
241-
IntermediateField.fixedField <| Subgroup.map (restrictNormalHom
242-
(adjoin k {x.1})) L.fixingSubgroup
243-
have h' (x : K) : (Subgroup.map (restrictNormalHom
244-
(adjoin k {x})) L.fixingSubgroup).Normal :=
234+
IntermediateField.fixedField <| Subgroup.map (restrictNormalHom (adjoin k {x.1}))
235+
L.fixingSubgroup
236+
have h' (x : K) : (Subgroup.map (restrictNormalHom (adjoin k {x})) L.fixingSubgroup).Normal :=
245237
Subgroup.Normal.map h (restrictNormalHom (adjoin k {x})) (restrictNormalHom_surjective K)
246238
have n' (l : L) : IsGalois k (IntermediateField.fixedField <| Subgroup.map
247239
(restrictNormalHom (adjoin k {l.1})) L.fixingSubgroup) := by
@@ -267,4 +259,9 @@ theorem normal_iff_isGalois (L : IntermediateField k K) [IsGalois k K] :
267259
· simpa only [IntermediateFieldEquivClosedSubgroup, RelIso.coe_fn_mk, Equiv.coe_fn_mk,
268260
← L.restrictNormalHom_ker] using MonoidHom.normal_ker (restrictNormalHom L)
269261

262+
theorem isOpen_and_normal_iff_finite_and_isGalois (L : IntermediateField k K) [IsGalois k K] :
263+
IsOpen L.fixingSubgroup.carrier ∧ L.fixingSubgroup.Normal ↔
264+
FiniteDimensional k L ∧ IsGalois k L := by
265+
rw [isOpen_iff_finite, normal_iff_isGalois]
266+
270267
end InfiniteGalois

0 commit comments

Comments
 (0)