Documentation

Mathlib.FieldTheory.Minpoly.ConjRootClass

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.

def ConjRootClass (K : Type u_1) (L : Type u_2) [Field K] [Field L] [Algebra K L] :
Type u_2

ConjRootClass K L is the quotient of L by the relation IsConjRoot K.

Equations
Instances For
    def ConjRootClass.mk (K : Type u_1) {L : Type u_2} [Field K] [Field L] [Algebra K L] (x : L) :

    The canonical quotient map from a field K into the ConjRootClass of the field extension L / K.

    Equations
    Instances For
      @[simp]
      theorem ConjRootClass.mk_def (K : Type u_1) {L : Type u_2} [Field K] [Field L] [Algebra K L] {x : L} :
      x = mk K x
      instance ConjRootClass.instZero (K : Type u_1) {L : Type u_2} [Field K] [Field L] [Algebra K L] :
      Equations
      theorem ConjRootClass.ind (K : Type u_1) {L : Type u_2} [Field K] [Field L] [Algebra K L] {motive : ConjRootClass K LProp} (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]
      theorem ConjRootClass.mk_zero {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] :
      mk K 0 = 0
      @[simp]
      theorem ConjRootClass.mk_eq_zero_iff {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (x : L) :
      mk K x = 0 x = 0
      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.

      Equations
      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} :
        x c.carrier mk K x = c
        @[simp]
        theorem ConjRootClass.carrier_zero {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] :
        instance ConjRootClass.instNeg {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] :
        Equations
        theorem ConjRootClass.mk_neg {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (x : L) :
        -mk K x = mk K (-x)
        @[simp]
        theorem ConjRootClass.carrier_neg {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (c : ConjRootClass K L) :
        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) :
        (∃ ax.carrier, by.carrier, a + b = 0) x = -y
        noncomputable def ConjRootClass.minpoly {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] :

        c.minpoly is the minimal polynomial of the conjugates.

        Equations
        Instances For
          @[simp]
          theorem ConjRootClass.minpoly_mk {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (x : L) :
          (mk K x).minpoly = minpoly K x
          @[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.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) :
          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) :
          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) :
          theorem ConjRootClass.carrier_eq_mk_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) [Fintype c.carrier] :
          c.carrier.toFinset = { val := c.minpoly.aroots L, nodup := }