Documentation

TauCeti.FieldTheory.Minpoly.Primitive

The primitive minimal polynomial over ℤ #

For an element x of a division ring F of characteristic zero (typically a field), the primitive minimal polynomial F_x = primitiveMinpoly x ∈ ℤ[X] is obtained from minpoly ℚ x by clearing denominators and dividing by the content, with the sign chosen so that the leading coefficient a₀ is positive. For algebraic x it is the unique primitive irreducible integer polynomial with positive leading coefficient vanishing at x, and its image in ℚ[X] is a₀ • minpoly ℚ x. When x is transcendental over ℚ the junk value is 1.

This is the polynomial from which the classical size invariants of an algebraic number are read off: its naive height is the largest absolute value of a coefficient of F_x, and its Mahler measure is the Mahler measure of F_x. Unlike minpoly ℤ x, which vanishes at non-integral algebraic numbers, F_x is meaningful for every algebraic x, and its leading coefficient clears the denominator of x when F is a field.

Main definitions #

Main results #

References #

noncomputable def TauCeti.primitiveMinpoly {F : Type u_1} [DivisionRing F] [CharZero F] (x : F) :

The primitive minimal polynomial F_x ∈ ℤ[X] of x over ℚ: the primitive integer multiple of minpoly ℚ x with positive leading coefficient. It is obtained by clearing the denominators of minpoly ℚ x, taking the primitive part and normalizing the sign.

For x transcendental over ℚ, minpoly ℚ x = 0 and the value is 1 (primitiveMinpoly_of_not_isAlgebraic).

Instances For

    F_x depends only on minpoly ℚ x: elements with the same minimal polynomial over ℚ, for instance conjugates, possibly lying in different division rings, share their primitive minimal polynomial.

    @[simp]
    theorem TauCeti.primitiveMinpoly_map {F : Type u_1} [DivisionRing F] [CharZero F] {F' : Type u_2} [DivisionRing F'] [CharZero F'] (f : F →+* F') (x : F) :

    Ring homomorphisms between division rings (for instance field embeddings) preserve the primitive minimal polynomial.

    @[simp]

    The junk value: F_x = 1 for x transcendental over ℚ.

    The primitive minimal polynomial is primitive.

    @[simp]

    The primitive minimal polynomial is nonzero, also for transcendental x.

    The leading coefficient a₀ of the primitive minimal polynomial is positive.

    For algebraic x, the image of F_x in ℚ[X] is a₀ • minpoly ℚ x, where a₀ is the leading coefficient of F_x.

    For algebraic x, the coefficients of F_x are those of minpoly ℚ x scaled by the leading coefficient a₀ of F_x.

    @[simp]

    For algebraic x, the primitive minimal polynomial vanishes at x.

    For nonzero x, the constant coefficient of the primitive minimal polynomial is nonzero. For transcendental x the primitive minimal polynomial is the junk value 1.

    @[simp]

    The primitive minimal polynomial has the same roots as minpoly ℚ x in every commutative domain that is a ℚ-algebra: for algebraic x its image in ℚ[X] is a nonzero multiple of minpoly ℚ x, and for transcendental x both root sets are empty.

    @[simp]

    The primitive minimal polynomial has the degree of x over ℚ. For transcendental x both sides are 0.

    For algebraic x, the primitive minimal polynomial is irreducible in ℤ[X].

    For algebraic x, the integer polynomials vanishing at x are exactly the multiples of F_x in ℤ[X].

    If the primitive minimal polynomial of x vanishes at y, possibly in another division ring, then x and y are conjugate: they have the same minimal polynomial over ℚ. (For transcendental x the hypothesis is never satisfied.)

    Reversing a primitive defining polynomial gives a multiple of the primitive minimal polynomial of the inverse root. For transcendental x the latter is the junk value 1.

    theorem TauCeti.primitiveMinpoly_eq_of_irreducible {F : Type u_1} [DivisionRing F] [CharZero F] {x : F} {P : Polynomial ℤ} (hirr : Irreducible P) (hlc : 0 < P.leadingCoeff) (hPx : (Polynomial.aeval x) P = 0) :

    The uniqueness characterisation: an irreducible P ∈ ℤ[X] with positive leading coefficient vanishing at x is the primitive minimal polynomial of x. Such a P is automatically nonconstant, hence primitive.

    For x integral over ℤ, the primitive minimal polynomial is the minimal polynomial over ℤ.

    @[simp]

    The primitive minimal polynomial of a rational number q is (den q) X - num q.

    For algebraic x, the element a₀ x is integral over ℤ, where a₀ is the leading coefficient of F_x (Evertse, Lemma 3.7).

    For algebraic x, the denominator of x divides the leading coefficient of F_x.

    For algebraic x, the integral multiple D x of x by its denominator D has the same degree over ℤ as x has over ℚ: it generates the same field.

    The leading coefficient of F_x is at most D ^ d, where D is the denominator of x and d its degree. Together with natDenominator_dvd_leadingCoeff_primitiveMinpoly, which gives D ≤ a₀ for algebraic x, this bounds a₀ between D and D ^ d. For transcendental x, F_x = 1 and d = 0.

    Examples #