Documentation

Mathlib.NumberTheory.MahlerMeasure

Mahler measure of integer polynomials #

The main purpose of this file is to prove some facts about the Mahler measure of integer polynomials, in particular Northcott's Theorem for the Mahler measure.

Main results #

def Polynomial.boxPoly (n : ) (B₁ B₂ : Fin (n + 1)) :

The set of polynomials whose coefficients are bounded between B₁ and B₂. This construction is used as part of our proof of Northcott's theorem.

Equations
Instances For
    theorem Polynomial.ncard_boxPoly (n : ) (B₁ B₂ : Fin (n + 1)) :
    (boxPoly n B₁ B₂).ncard = i : Fin (n + 1), (B₂ i - B₁ i + 1).toNat
    @[deprecated Polynomial.ncard_boxPoly (since := "2026-02-02")]
    theorem Polynomial.card_eq_of_natDegree_le_of_coeff_le (n : ) (B₁ B₂ : Fin (n + 1)) :
    (boxPoly n B₁ B₂).ncard = i : Fin (n + 1), (B₂ i - B₁ i + 1).toNat

    Alias of Polynomial.ncard_boxPoly.

    Northcott's Theorem: the set of integer polynomials of degree at most n and Mahler measure at most B is finite.

    An upper bound on the number of integer polynomials of degree at most n and Mahler measure at most B.

    The Mahler measure of a cyclotomic polynomial is 1.

    If an integer polynomial has Mahler measure equal to 1, then all its complex roots are integral over ℤ.

    If an integer polynomial has Mahler measure equal to 1, then all its complex roots have norm at most 1.

    theorem Polynomial.pow_eq_one_of_mahlerMeasure_eq_one {p : Polynomial } (h : (map (Int.castRingHom ) p).mahlerMeasure = 1) {z : } (hz₀ : z 0) (hz : z p.aroots ) :
    ∃ (n : ), 0 < n z ^ n = 1

    If an integer polynomial has Mahler measure equal to 1, then all its complex nonzero roots are roots of unity.

    theorem Polynomial.isPrimitiveRoot_of_mahlerMeasure_eq_one {p : Polynomial } (h : (map (Int.castRingHom ) p).mahlerMeasure = 1) {z : } (hz₀ : z 0) (hz : z p.aroots ) :
    ∃ (n : ), 0 < n IsPrimitiveRoot z n

    If an integer polynomial has Mahler measure equal to 1, then all its complex nonzero roots are roots of unity.

    If an integer non-constant polynomial has Mahler measure equal to 1 and is not a multiple of X, then it is divisible by a cyclotomic polynomial.