Documentation

Mathlib.FieldTheory.RatFunc.Luroth

Lüroth's theorem #

This file proves Lüroth's theorem, which says that for every field K, every intermediate field between K and the rational function field K⟮X⟯ is either K or isomorphic to K(X) as an K-algebra, see Luroth.algEquiv. The proof depends on the following lemma on degrees of rational functions:

Let f be a rational function, i.e. an element in the field K⟮X⟯. Let p be its numerator and q its denominator. Then the degree of the field extension K⟮X⟯/K⟮f⟯ equals the maximum of the degrees of p and q, see finrank_eq_max_natDegree. Since finrank is defined to be zero when the extension is infinite, this holds even when f is constant.

References:

theorem RatFunc.adjoin_X {K : Type u_1} [Field K] :
KX =
theorem RatFunc.IntermediateField.adjoin_X {K : Type u_1} [Field K] (E : IntermediateField K (RatFunc K)) :
(↥E)X =
noncomputable def RatFunc.IntermediateField.adjoinXEquiv {K : Type u_1} [Field K] (E : IntermediateField K (RatFunc K)) :
(↥E)X ≃ₐ[E] RatFunc K

The equivalence between E⟮X⟯ and K⟮X⟯ as E-algebras.

Equations
Instances For
    @[reducible, inline]
    noncomputable abbrev RatFunc.minpolyX {K : Type u_1} [Field K] (f : RatFunc K) (A : Type u_2) [CommRing A] [Algebra K A] [Algebra (↥(Algebra.adjoin K {f})) A] :

    The minimal polynomial of X over K⟮f⟯. It is defined as f.num - f * f.denom, viewed as a polynomial with coefficients in A, where A is a K[f]-algebra.

    Equations
    Instances For
      theorem RatFunc.minpolyX_map {K : Type u_1} [Field K] (f : RatFunc K) (A : Type u_2) [CommRing A] [Algebra K A] [Algebra (↥(Algebra.adjoin K {f})) A] (B : Type u_3) [CommRing B] [Algebra K B] [Algebra (↥(Algebra.adjoin K {f})) B] [Algebra A B] [IsScalarTower K A B] [IsScalarTower (↥(Algebra.adjoin K {f})) A B] :
      @[simp]
      theorem RatFunc.C_minpolyX {K : Type u_1} [Field K] (x : K) :
      (C x).minpolyX KC x = 0
      theorem RatFunc.minpolyX_aeval_X {K : Type u_1} [Field K] (f : RatFunc K) :
      (Polynomial.aeval X) (f.minpolyX Kf) = 0
      theorem RatFunc.eq_C_of_minpolyX_coeff_eq_zero {K : Type u_1} [Field K] (f : RatFunc K) (hf : ((f.minpolyX Kf).coeff f.denom.natDegree) = 0) :
      ∃ (c : K), f = C c
      theorem RatFunc.minpolyX_eq_zero_iff {K : Type u_1} [Field K] (f : RatFunc K) :
      f.minpolyX Kf = 0 ∃ (c : K), f = C c
      theorem RatFunc.isAlgebraic_adjoin_simple_X {K : Type u_1} [Field K] (f : RatFunc K) (hf : ¬∃ (c : K), f = C c) :
      IsAlgebraic (↥Kf) X
      theorem RatFunc.isAlgebraic_adjoin_simple_X' {K : Type u_1} [Field K] (f : RatFunc K) (hf : ¬∃ (c : K), f = C c) :
      Algebra.IsAlgebraic (↥Kf) (RatFunc K)
      theorem RatFunc.natDegree_denom_le_natDegree_minpolyX {K : Type u_1} [Field K] (f : RatFunc K) (hf : ¬∃ (c : K), f = C c) :
      theorem RatFunc.natDegree_num_le_natDegree_minpolyX {K : Type u_1} [Field K] (f : RatFunc K) (hf : ¬∃ (c : K), f = C c) :
      f.num.natDegree (f.minpolyX Kf).natDegree
      theorem RatFunc.transcendental_of_ne_C {K : Type u_1} [Field K] (f : RatFunc K) (hf : ¬∃ (c : K), f = C c) :
      theorem RatFunc.irreducible_minpolyX' {K : Type u_1} [Field K] (f : RatFunc K) (hf : ¬∃ (c : K), f = C c) :
      theorem RatFunc.irreducible_minpolyX {K : Type u_1} [Field K] (f : RatFunc K) (hf : ¬∃ (c : K), f = C c) :
      Irreducible (f.minpolyX Kf)
      noncomputable def RatFunc.Luroth.generator {K : Type u_1} [Field K] (E : IntermediateField K (RatFunc K)) :

      A choice of a generator for Lüroth's theorem, see Luroth.eq_adjoin_generator.

      Equations
      Instances For
        theorem RatFunc.Luroth.generator_ne_C {K : Type u_1} [Field K] {E : IntermediateField K (RatFunc K)} (h : E ) :
        ¬∃ (c : K), generator E = C c
        theorem RatFunc.Luroth.eq_adjoin_generator {K : Type u_1} [Field K] {E : IntermediateField K (RatFunc K)} :
        E = Kgenerator E

        Lüroth's theorem. Any intermediate field between K and K⟮X⟯ is generated by a single element generator E. See also transcendental_generator for the statement that the generator is transcendental if E ≠ ⊥.

        noncomputable def RatFunc.Luroth.algEquiv {K : Type u_1} [Field K] {E : IntermediateField K (RatFunc K)} (h : E ) :

        The K-algebra equivalence between K⟮X⟯ and an intermediate field E given by sending X to generator E. See also Luroth.eq_adjoin_generator.

        Equations
        Instances For
          @[simp]
          theorem RatFunc.Luroth.algEquiv_algebraMap {K : Type u_1} [Field K] {E : IntermediateField K (RatFunc K)} (h : E ) (g : Polynomial K) :
          @[simp]
          theorem RatFunc.Luroth.algEquiv_X {K : Type u_1} [Field K] {E : IntermediateField K (RatFunc K)} (h : E ) :
          ((algEquiv h) X) = generator E