Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Mathlib.lean
Original file line number Diff line number Diff line change
Expand Up @@ -3832,6 +3832,7 @@ import Mathlib.FieldTheory.Galois.GaloisClosure
import Mathlib.FieldTheory.Galois.Infinite
import Mathlib.FieldTheory.Galois.IsGaloisGroup
import Mathlib.FieldTheory.Galois.NormalBasis
import Mathlib.FieldTheory.Galois.Notation
import Mathlib.FieldTheory.Galois.Profinite
import Mathlib.FieldTheory.IntermediateField.Adjoin.Algebra
import Mathlib.FieldTheory.IntermediateField.Adjoin.Basic
Expand Down
16 changes: 8 additions & 8 deletions Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ As a prerequisite, we formalize the proof of [S. Bosch, U. Güntzer, R. Remmert,
* `spectralNorm_eq_of_equiv` : the `K`-algebra automorphisms of `L` are isometries with respect to
the spectral norm.
* `spectralNorm_eq_iSup_of_finiteDimensional_normal` : if `L/K` is finite and normal, then
`spectralNorm K L x = iSup (fun (σ : L ≃ₐ[K] L) ↦ f (σ x))`.
`spectralNorm K L x = iSup (fun (σ : Gal(L/K)) ↦ f (σ x))`.
* `isPowMul_spectralNorm` : the spectral norm is power-multiplicative.
* `isNonarchimedean_spectralNorm` : the spectral norm is nonarchimedean.
* `spectralNorm_extends` : the spectral norm extends the norm on `K`.
Expand Down Expand Up @@ -463,7 +463,7 @@ theorem norm_le_spectralNorm {f : AlgebraNorm K L} (hf_pm : IsPowMul f)
(by rw [minpoly.aeval])

/-- The `K`-algebra automorphisms of `L` are isometries with respect to the spectral norm. -/
theorem spectralNorm_eq_of_equiv (σ : L ≃ₐ[K] L) (x : L) :
theorem spectralNorm_eq_of_equiv (σ : Gal(L/K)) (x : L) :
spectralNorm K L x = spectralNorm K L (σ x) := by
simp only [spectralNorm, minpoly.algEquiv_eq]

Expand All @@ -474,11 +474,11 @@ section FiniteNormal
variable (K L) [h_fin : FiniteDimensional K L] [hn : Normal K L]

/--
If `L/K` is finite and normal, then `spectralNorm K L x = supr (λ (σ : L ≃ₐ[K] L), f (σ x))`. -/
If `L/K` is finite and normal, then `spectralNorm K L x = supr (λ (σ : Gal(L/K)), f (σ x))`. -/
theorem spectralNorm_eq_iSup_of_finiteDimensional_normal
{f : AlgebraNorm K L} (hf_pm : IsPowMul f) (hf_na : IsNonarchimedean f)
(hf_ext : ∀ (x : K), f (algebraMap K L x) = ‖x‖) (x : L) :
spectralNorm K L x = ⨆ σ : L ≃ₐ[K] L, f (σ x) := by
spectralNorm K L x = ⨆ σ : Gal(L/K), f (σ x) := by
classical
have hf1 : f 1 = 1 := by
rw [← (algebraMap K L).map_one, hf_ext]
Expand All @@ -497,7 +497,7 @@ theorem spectralNorm_eq_iSup_of_finiteDimensional_normal
apply ciSup_le
intro y
split_ifs with h
· obtain ⟨σ, hσ⟩ : ∃ σ : L ≃ₐ[K] L, σ x = y := minpoly.exists_algEquiv_of_root'
· obtain ⟨σ, hσ⟩ : ∃ σ : Gal(L/K), σ x = y := minpoly.exists_algEquiv_of_root'
(Algebra.IsAlgebraic.isAlgebraic x) (aeval_root_of_mapAlg_eq_multiset_prod_X_sub_C s h hs)
rw [← hσ]
convert le_ciSup (Finite.bddAbove_range _) σ
Expand Down Expand Up @@ -571,9 +571,9 @@ theorem spectralNorm_extends_of_finiteDimensional [IsUltrametricDist K] (x : K)
theorem spectralNorm_unique_of_finiteDimensional_normal {f : AlgebraNorm K L}
(hf_pm : IsPowMul f) (hf_na : IsNonarchimedean f)
(hf_ext : ∀ (x : K), f (algebraMap K L x) = ‖x‖₊)
(hf_iso : ∀ (σ : L ≃ₐ[K] L) (x : L), f x = f (σ x)) (x : L) : f x = spectralNorm K L x := by
have h_sup : (⨆ σ : L ≃ₐ[K] L, f (σ x)) = f x := by
rw [← @ciSup_const _ (L ≃ₐ[K] L) _ _ (f x)]
(hf_iso : ∀ (σ : Gal(L/K)) (x : L), f x = f (σ x)) (x : L) : f x = spectralNorm K L x := by
have h_sup : (⨆ σ : Gal(L/K), f (σ x)) = f x := by
rw [← @ciSup_const _ Gal(L/K) _ _ (f x)]
exact iSup_congr fun σ ↦ by rw [hf_iso σ x]
rw [spectralNorm_eq_iSup_of_finiteDimensional_normal K L hf_pm hf_na hf_ext, h_sup]

Expand Down
6 changes: 3 additions & 3 deletions Mathlib/FieldTheory/AbelRuffini.lean
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,11 @@ theorem gal_isSolvable_tower (p q : F[X]) (hpq : p.Splits (algebraMap F q.Splitt
let K := p.SplittingField
let L := q.SplittingField
haveI : Fact (p.Splits (algebraMap F L)) := ⟨hpq⟩
let ϕ : (L ≃ₐ[K] L) ≃* (q.map (algebraMap F K)).Gal :=
let ϕ : Gal(L/K) ≃* (q.map (algebraMap F K)).Gal :=
(IsSplittingField.algEquiv L (q.map (algebraMap F K))).autCongr
have ϕ_inj : Function.Injective ϕ.toMonoidHom := ϕ.injective
haveI : IsSolvable (K ≃ₐ[F] K) := hp
haveI : IsSolvable (L ≃ₐ[K] L) := solvable_of_solvable_injective ϕ_inj
haveI : IsSolvable Gal(K/F) := hp
haveI : IsSolvable Gal(L/K) := solvable_of_solvable_injective ϕ_inj
exact isSolvable_of_isScalarTower F p.SplittingField q.SplittingField

section GalXPowSubC
Expand Down
5 changes: 3 additions & 2 deletions Mathlib/FieldTheory/Finite/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import Mathlib.Data.Nat.Prime.Int
import Mathlib.Data.ZMod.ValMinAbs
import Mathlib.LinearAlgebra.FreeModule.Finite.Matrix
import Mathlib.FieldTheory.Finiteness
import Mathlib.FieldTheory.Galois.Notation
import Mathlib.FieldTheory.Perfect
import Mathlib.FieldTheory.Separable
import Mathlib.RingTheory.IntegralDomain
Expand Down Expand Up @@ -349,7 +350,7 @@ variable (L : Type*) [Field L] [Algebra K L]

/-- If `L/K` is an algebraic extension of a finite field, the Frobenius `K`-algebra endomorphism
of `L` is an automorphism. -/
@[simps!] noncomputable def frobeniusAlgEquivOfAlgebraic [Algebra.IsAlgebraic K L] : L ≃ₐ[K] L :=
@[simps!] noncomputable def frobeniusAlgEquivOfAlgebraic [Algebra.IsAlgebraic K L] : Gal(L/K) :=
(Algebra.IsAlgebraic.algEquivEquivAlgHom K L).symm (frobeniusAlgHom K L)

theorem coe_frobeniusAlgEquivOfAlgebraic [Algebra.IsAlgebraic K L] :
Expand Down Expand Up @@ -394,7 +395,7 @@ theorem bijective_frobeniusAlgEquivOfAlgebraic_pow :
((Algebra.IsAlgebraic.algEquivEquivAlgHom K L).bijective.of_comp_iff' _).mp <| by
simpa only [Function.comp_def, map_pow] using bijective_frobeniusAlgHom_pow K L

instance (K L) [Finite L] [Field K] [Field L] [Algebra K L] : IsCyclic (L ≃ₐ[K] L) where
instance (K L) [Finite L] [Field K] [Field L] [Algebra K L] : IsCyclic Gal(L/K) where
exists_zpow_surjective :=
have := Finite.of_injective _ (algebraMap K L).injective
have := Fintype.ofFinite K
Expand Down
2 changes: 1 addition & 1 deletion Mathlib/FieldTheory/Fixed.lean
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ theorem AlgHom.card_le {F K : Type*} [Field F] [Field K] [Algebra F K] [FiniteDi
Module.finrank_linearMap_self F K K ▸ finrank_algHom F K

theorem AlgEquiv.card_le {F K : Type*} [Field F] [Field K] [Algebra F K] [FiniteDimensional F K] :
Fintype.card (K ≃ₐ[F] K) ≤ Module.finrank F K :=
Fintype.card Gal(K/F) ≤ Module.finrank F K :=
Fintype.ofEquiv_card (algEquivEquivAlgHom F K).toEquiv.symm ▸ AlgHom.card_le

namespace FixedPoints
Expand Down
Loading