Documentation

Mathlib.NumberTheory.Liouville.LiouvilleWith

Liouville numbers with a given exponent #

We say that a real number x is a Liouville number with exponent p : ℝ if there exists a real number C such that for infinitely many denominators n there exists a numerator m such that x ≠ m / n and |x - m / n| < C / n ^ p. A number is a Liouville number in the sense of Liouville if it is LiouvilleWith any real exponent, see forall_liouvilleWith_iff.

In this file we define the predicate LiouvilleWith and prove some basic facts about this predicate.

Tags #

Liouville number, irrational, irrationality exponent

def LiouvilleWith (p : ) (x : ) :

We say that a real number x is a Liouville number with exponent p : ℝ if there exists a real number C such that for infinitely many denominators n there exists a numerator m such that x ≠ m / n and |x - m / n| < C / n ^ p.

A number is a Liouville number in the sense of Liouville if it is LiouvilleWith any real exponent.

Equations
Instances For

    For p = 1 (hence, for any p ≤ 1), the condition LiouvilleWith p x is trivial.

    theorem LiouvilleWith.exists_pos {p : } {x : } (h : LiouvilleWith p x) :
    ∃ (C : ) (_ : 0 < C), ∃ᶠ (n : ) in Filter.atTop, 1 n ∃ (m : ), x m / n |x - m / n| < C / n ^ p

    The constant C provided by the definition of LiouvilleWith can be made positive. We also add 1 ≤ n to the list of assumptions about the denominator. While it is equivalent to the original statement, the case n = 0 breaks many arguments.

    theorem LiouvilleWith.mono {p : } {q : } {x : } (h : LiouvilleWith p x) (hle : q p) :

    If a number is Liouville with exponent p, then it is Liouville with any smaller exponent.

    theorem LiouvilleWith.frequently_lt_rpow_neg {p : } {q : } {x : } (h : LiouvilleWith p x) (hlt : q < p) :
    ∃ᶠ (n : ) in Filter.atTop, ∃ (m : ), x m / n |x - m / n| < n ^ (-q)

    If x satisfies Liouville condition with exponent p and q < p, then x satisfies Liouville condition with exponent q and constant 1.

    theorem LiouvilleWith.mul_rat {p : } {x : } {r : } (h : LiouvilleWith p x) (hr : r 0) :
    LiouvilleWith p (x * r)

    The product of a Liouville number and a nonzero rational number is again a Liouville number.

    theorem LiouvilleWith.mul_rat_iff {p : } {x : } {r : } (hr : r 0) :

    The product x * r, r : ℚ, r ≠ 0, is a Liouville number with exponent p if and only if x satisfies the same condition.

    theorem LiouvilleWith.rat_mul_iff {p : } {x : } {r : } (hr : r 0) :

    The product r * x, r : ℚ, r ≠ 0, is a Liouville number with exponent p if and only if x satisfies the same condition.

    theorem LiouvilleWith.rat_mul {p : } {x : } {r : } (h : LiouvilleWith p x) (hr : r 0) :
    LiouvilleWith p (r * x)
    theorem LiouvilleWith.mul_int_iff {p : } {x : } {m : } (hm : m 0) :
    theorem LiouvilleWith.mul_int {p : } {x : } {m : } (h : LiouvilleWith p x) (hm : m 0) :
    LiouvilleWith p (x * m)
    theorem LiouvilleWith.int_mul_iff {p : } {x : } {m : } (hm : m 0) :
    theorem LiouvilleWith.int_mul {p : } {x : } {m : } (h : LiouvilleWith p x) (hm : m 0) :
    LiouvilleWith p (m * x)
    theorem LiouvilleWith.mul_nat_iff {p : } {x : } {n : } (hn : n 0) :
    theorem LiouvilleWith.mul_nat {p : } {x : } {n : } (h : LiouvilleWith p x) (hn : n 0) :
    LiouvilleWith p (x * n)
    theorem LiouvilleWith.nat_mul_iff {p : } {x : } {n : } (hn : n 0) :
    theorem LiouvilleWith.nat_mul {p : } {x : } {n : } (h : LiouvilleWith p x) (hn : n 0) :
    LiouvilleWith p (n * x)
    theorem LiouvilleWith.add_rat {p : } {x : } (h : LiouvilleWith p x) (r : ) :
    LiouvilleWith p (x + r)
    @[simp]
    theorem LiouvilleWith.add_rat_iff {p : } {x : } {r : } :
    @[simp]
    theorem LiouvilleWith.rat_add_iff {p : } {x : } {r : } :
    theorem LiouvilleWith.rat_add {p : } {x : } (h : LiouvilleWith p x) (r : ) :
    LiouvilleWith p (r + x)
    @[simp]
    theorem LiouvilleWith.add_int_iff {p : } {x : } {m : } :
    @[simp]
    theorem LiouvilleWith.int_add_iff {p : } {x : } {m : } :
    @[simp]
    theorem LiouvilleWith.add_nat_iff {p : } {x : } {n : } :
    @[simp]
    theorem LiouvilleWith.nat_add_iff {p : } {x : } {n : } :
    theorem LiouvilleWith.add_int {p : } {x : } (h : LiouvilleWith p x) (m : ) :
    LiouvilleWith p (x + m)
    theorem LiouvilleWith.int_add {p : } {x : } (h : LiouvilleWith p x) (m : ) :
    LiouvilleWith p (m + x)
    theorem LiouvilleWith.add_nat {p : } {x : } (h : LiouvilleWith p x) (n : ) :
    LiouvilleWith p (x + n)
    theorem LiouvilleWith.nat_add {p : } {x : } (h : LiouvilleWith p x) (n : ) :
    LiouvilleWith p (n + x)
    theorem LiouvilleWith.neg {p : } {x : } (h : LiouvilleWith p x) :
    @[simp]
    @[simp]
    theorem LiouvilleWith.sub_rat_iff {p : } {x : } {r : } :
    theorem LiouvilleWith.sub_rat {p : } {x : } (h : LiouvilleWith p x) (r : ) :
    LiouvilleWith p (x - r)
    @[simp]
    theorem LiouvilleWith.sub_int_iff {p : } {x : } {m : } :
    theorem LiouvilleWith.sub_int {p : } {x : } (h : LiouvilleWith p x) (m : ) :
    LiouvilleWith p (x - m)
    @[simp]
    theorem LiouvilleWith.sub_nat_iff {p : } {x : } {n : } :
    theorem LiouvilleWith.sub_nat {p : } {x : } (h : LiouvilleWith p x) (n : ) :
    LiouvilleWith p (x - n)
    @[simp]
    theorem LiouvilleWith.rat_sub_iff {p : } {x : } {r : } :
    theorem LiouvilleWith.rat_sub {p : } {x : } (h : LiouvilleWith p x) (r : ) :
    LiouvilleWith p (r - x)
    @[simp]
    theorem LiouvilleWith.int_sub_iff {p : } {x : } {m : } :
    theorem LiouvilleWith.int_sub {p : } {x : } (h : LiouvilleWith p x) (m : ) :
    LiouvilleWith p (m - x)
    @[simp]
    theorem LiouvilleWith.nat_sub_iff {p : } {x : } {n : } :
    theorem LiouvilleWith.nat_sub {p : } {x : } (h : LiouvilleWith p x) (n : ) :
    LiouvilleWith p (n - x)
    theorem LiouvilleWith.ne_cast_int {p : } {x : } (h : LiouvilleWith p x) (hp : 1 < p) (m : ) :
    x m
    theorem LiouvilleWith.irrational {p : } {x : } (h : LiouvilleWith p x) (hp : 1 < p) :

    A number satisfying the Liouville condition with exponent p > 1 is an irrational number.

    theorem Liouville.frequently_exists_num {x : } (hx : Liouville x) (n : ) :
    ∃ᶠ (b : ) in Filter.atTop, ∃ (a : ), x a / b |x - a / b| < 1 / b ^ n

    If x is a Liouville number, then for any n, for infinitely many denominators b there exists a numerator a such that x ≠ a / b and |x - a / b| < 1 / b ^ n.

    theorem Liouville.liouvilleWith {x : } (hx : Liouville x) (p : ) :

    A Liouville number is a Liouville number with any real exponent.

    theorem forall_liouvilleWith_iff {x : } :
    (∀ (p : ), LiouvilleWith p x) Liouville x

    A number satisfies the Liouville condition with any exponent if and only if it is a Liouville number.