@@ -549,42 +549,19 @@ theorem nonempty_algEquiv_adjoin_of_isSepClosed [IsCyclotomicExtension S K L]
549549 have := isSeparable S K L
550550 let i : L →ₐ[K] M := IsSepClosed.lift
551551 refine ⟨(show L ≃ₐ[K] i.fieldRange from AlgEquiv.ofInjectiveField i).trans
552- (IntermediateField.equivOfEq (le_antisymm ?_ ?_))⟩
553- · rintro x (hx : x ∈ i.range)
554- let e := Subalgebra.equivOfEq _ _ ((IsCyclotomicExtension.iff_adjoin_eq_top S K L).1 ‹_›).2
555- |>.trans Subalgebra.topEquiv
556- have hrange : i.range = (i.comp (AlgHomClass.toAlgHom e)).range := by
557- ext x
558- simp only [AlgHom.mem_range, AlgHom.coe_comp, AlgHom.coe_coe, Function.comp_apply]
559- constructor
560- · rintro ⟨y, rfl⟩; exact ⟨e.symm y, by simp⟩
561- · rintro ⟨y, rfl⟩; exact ⟨e y, rfl⟩
562- rw [hrange, AlgHom.mem_range] at hx
563- obtain ⟨⟨y, hy⟩, rfl⟩ := hx
564- induction hy using Algebra.adjoin_induction with
565- | mem x hx =>
566- obtain ⟨n, hn, h1, h2⟩ := hx
567- apply IntermediateField.subset_adjoin
568- use n, hn, h1
569- rw [← map_pow, ← map_one (i.comp (AlgHomClass.toAlgHom e))]
570- congr 1
571- apply_fun _ using Subtype.val_injective
572- simpa
573- | algebraMap x =>
574- convert IntermediateField.algebraMap_mem _ x
575- exact AlgHom.commutes _ x
576- | add x y hx hy ihx ihy =>
577- convert add_mem ihx ihy
578- exact map_add (i.comp (AlgHomClass.toAlgHom e)) ⟨x, hx⟩ ⟨y, hy⟩
579- | mul x y hx hy ihx ihy =>
580- convert mul_mem ihx ihy
581- exact map_mul (i.comp (AlgHomClass.toAlgHom e)) ⟨x, hx⟩ ⟨y, hy⟩
582- · rw [IntermediateField.adjoin_le_iff]
583- rintro x ⟨n, hn, h1, h2⟩
584- have := NeZero.mk h1
552+ (IntermediateField.equivOfEq ?_)⟩
553+ have htop : IntermediateField.adjoin K {x : L | ∃ n ∈ S, n ≠ 0 ∧ x ^ n = 1 } = ⊤ :=
554+ IntermediateField.adjoin_eq_top_of_algebra K _ ((iff_adjoin_eq_top S K L).1 ‹_›).2
555+ rw [AlgHom.fieldRange_eq_map, ← htop, IntermediateField.adjoin_map]
556+ apply le_antisymm <;> rw [IntermediateField.adjoin_le_iff]
557+ · rintro _ ⟨y, ⟨n, hn, h1, h2⟩, rfl⟩
558+ exact IntermediateField.subset_adjoin K _ ⟨n, hn, h1, by simpa using congrArg i h2⟩
559+ · rintro x ⟨n, hn, h1, h2⟩
560+ have : NeZero n := ⟨h1⟩
585561 obtain ⟨y, hy⟩ := exists_isPrimitiveRoot K L hn h1
586- obtain ⟨m, -, rfl⟩ := (hy.map_of_injective (f := i) i.injective).eq_pow_of_pow_eq_one h2
587- exact ⟨y ^ m, by simp⟩
562+ obtain ⟨m, -, rfl⟩ := (hy.map_of_injective i.injective).eq_pow_of_pow_eq_one h2
563+ exact pow_mem (IntermediateField.subset_adjoin K (i '' {x : L | ∃ n ∈ S, n ≠ 0 ∧ x ^ n = 1 })
564+ ⟨y, ⟨n, hn, h1, hy.pow_eq_one⟩, rfl⟩) m
588565
589566theorem isGalois [IsCyclotomicExtension S K L] : IsGalois K L := by
590567 rw [isGalois_iff]
0 commit comments