Zulip Chat Archive
Stream: Is there code for X?
Topic: galois action is injective on roots
Andrew Yang (Nov 11 2023 at 09:49):
What is the easiest way to show the following?
import MathLib
example {K L} [Field K] [Field L] [Algebra K L] [FiniteDimensional K L] [IsGalois K L]
(pb : PowerBasis K L) : Function.Injective (fun i : L ≃ₐ[K] L ↦ i pb.gen) := sorry
To unxy, I would like to show that by showing that both sides have n
common roots. The sorry above is used to show that the roots are distinct.
Kevin Buzzard (Nov 11 2023 at 15:34):
Here's a rather inelegant but short solution (change MathLib to mathlib first ;-) ):
example {K L} [Field K] [Field L] [Algebra K L] [FiniteDimensional K L] [IsGalois K L]
(pb : PowerBasis K L) : Function.Injective (fun i : L ≃ₐ[K] L ↦ i pb.gen) := by
intro φ ψ h
suffices φ.toAlgHom = ψ by
ext x
rw [FunLike.ext_iff] at this
apply this
apply PowerBasis.algHom_ext
exact h
Junyan Xu (Nov 12 2023 at 00:59):
Yeah, pb : PowerBasis K L
says in particular that L is generated over K by pb.gen, so a K-AlgHom out of L is determined by its value at pb.gen, and it being an AlgEquiv or L/K being finite-dimensional/Galois are irrelevant.
Junyan Xu (Nov 12 2023 at 01:00):
Golfed:
import Mathlib
example {K L} [CommRing K] [Ring L] [Algebra K L]
(pb : PowerBasis K L) : Function.Injective (fun i : L ≃ₐ[K] L ↦ i pb.gen) :=
fun _φ _ψ h ↦ AlgEquiv.coe_algHom_injective (pb.algHom_ext h)
Andrew Yang (Nov 12 2023 at 03:10):
Oh, Indeed. The hard part is Fintype.card (L ≃ₐ[K] L) = Finset.card (minpoly K pb.gen).roots
but the existing API got me covered on this.
Andrew Yang (Nov 12 2023 at 03:10):
thanks!
Last updated: Dec 20 2023 at 11:08 UTC