Documentation

Mathlib.NumberTheory.Transcendental.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]
    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.