Conjugate root classes #
In this file, we define the ConjRootClass of a field extension L / K as the quotient of L by
the relation IsConjRoot K.
ConjRootClass K L is the quotient of L by the relation IsConjRoot K.
Instances For
def
ConjRootClass.mk
(K : Type u_1)
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
(x : L)
:
ConjRootClass K L
The canonical quotient map from a field K into the ConjRootClass of the field extension
L / K.
Instances For
@[simp]
@[implicit_reducible]
instance
ConjRootClass.instZero
(K : Type u_1)
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
:
Zero (ConjRootClass K L)
theorem
ConjRootClass.ind
(K : Type u_1)
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
{motive : ConjRootClass K L → Prop}
(h : ∀ (x : L), motive (mk K x))
(c : ConjRootClass K L)
:
motive c
@[simp]
theorem
ConjRootClass.mk_eq_mk
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
{x y : L}
:
mk K x = mk K y ↔ IsConjRoot K x y
@[simp]
@[simp]
@[implicit_reducible]
instance
ConjRootClass.instDecidableEqOfNormalOfFintypeAlgEquiv
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
[Normal K L]
[DecidableEq L]
[Fintype Gal(L/K)]
:
DecidableEq (ConjRootClass K L)
def
ConjRootClass.carrier
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
(c : ConjRootClass K L)
:
Set L
c.carrier is the set of conjugates represented by c.
Instances For
@[simp]
theorem
ConjRootClass.mem_carrier
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
{x : L}
{c : ConjRootClass K L}
:
@[simp]
@[implicit_reducible]
instance
ConjRootClass.instNeg
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
:
Neg (ConjRootClass K L)
@[implicit_reducible]
instance
ConjRootClass.instInvolutiveNeg
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
:
InvolutiveNeg (ConjRootClass K L)
@[simp]
theorem
ConjRootClass.exists_mem_carrier_add_eq_zero
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
(x y : ConjRootClass K L)
:
@[implicit_reducible]
instance
ConjRootClass.instDecidablePredMemSetCarrierOfNormalOfDecidableEqOfFintypeAlgEquiv
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
[Normal K L]
[DecidableEq L]
[Fintype Gal(L/K)]
(c : ConjRootClass K L)
:
DecidablePred fun (x : L) => x ∈ c.carrier
@[implicit_reducible]
noncomputable def
ConjRootClass.minpoly
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
:
ConjRootClass K L → Polynomial K
c.minpoly is the minimal polynomial of the conjugates.
Instances For
@[simp]
theorem
ConjRootClass.minpoly_inj
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
{c d : ConjRootClass K L}
:
theorem
ConjRootClass.minpoly_injective
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
:
Function.Injective ConjRootClass.minpoly
theorem
ConjRootClass.splits_minpoly
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
[n : Normal K L]
(c : ConjRootClass K L)
:
(Polynomial.map (algebraMap K L) c.minpoly).Splits
theorem
ConjRootClass.monic_minpoly
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
[Algebra.IsAlgebraic K L]
(c : ConjRootClass K L)
:
theorem
ConjRootClass.minpoly_ne_zero
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
[Algebra.IsAlgebraic K L]
(c : ConjRootClass K L)
:
c.minpoly ≠ 0
theorem
ConjRootClass.irreducible_minpoly
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
[Algebra.IsAlgebraic K L]
(c : ConjRootClass K L)
:
theorem
ConjRootClass.aeval_minpoly_iff
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
[Algebra.IsAlgebraic K L]
(x : L)
(c : ConjRootClass K L)
:
(Polynomial.aeval x) c.minpoly = 0 ↔ mk K x = c
theorem
ConjRootClass.rootSet_minpoly_eq_carrier
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
[Algebra.IsAlgebraic K L]
(c : ConjRootClass K L)
:
theorem
ConjRootClass.separable_minpoly
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
[Algebra.IsSeparable K L]
(c : ConjRootClass K L)
:
theorem
ConjRootClass.nodup_aroots_minpoly
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
[Algebra.IsSeparable K L]
(c : ConjRootClass K L)
:
theorem
ConjRootClass.aroots_minpoly_eq_carrier_val
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
[Algebra.IsSeparable K L]
(c : ConjRootClass K L)
[Fintype ↑c.carrier]
:
theorem
ConjRootClass.minpoly.map_eq_prod
{K : Type u_1}
{L : Type u_2}
[Field K]
[Field L]
[Algebra K L]
[Algebra.IsSeparable K L]
[Normal K L]
(c : ConjRootClass K L)
[Fintype ↑c.carrier]
:
Polynomial.map (algebraMap K L) c.minpoly = ∏ x ∈ c.carrier.toFinset, (Polynomial.X - Polynomial.C x)