Documentation

Mathlib.Algebra.Order.Archimedean.Basic

Archimedean groups and fields #

This file proves several results connected to the notion of Archimedean groups. Being Archimedean means that for all elements x and y > 0 there exists a natural number n such that x ≤ n • y.

Main definitions #

Main statements #

theorem MulArchimedean.comap {G : Type u_1} {M : Type u_2} [CommMonoid G] [LinearOrder G] [CommMonoid M] [PartialOrder M] [MulArchimedean M] (f : G →* M) (hf : StrictMono f) :
theorem Archimedean.comap {G : Type u_1} {M : Type u_2} [AddCommMonoid G] [LinearOrder G] [AddCommMonoid M] [PartialOrder M] [Archimedean M] (f : G →+ M) (hf : StrictMono f) :
theorem existsUnique_zpow_near_of_one_lt {G : Type u_1} [CommGroup G] [LinearOrder G] [IsOrderedMonoid G] [MulArchimedean G] {a : G} (ha : 1 < a) (g : G) :
∃! k : , a ^ k g g < a ^ (k + 1)

An archimedean decidable linearly ordered CommGroup has a version of the floor: for a > 1, any g in the group lies between some two consecutive powers of a.

theorem existsUnique_zsmul_near_of_pos {G : Type u_1} [AddCommGroup G] [LinearOrder G] [IsOrderedAddMonoid G] [Archimedean G] {a : G} (ha : 0 < a) (g : G) :
∃! k : , k a g g < (k + 1) a

An archimedean decidable linearly ordered AddCommGroup has a version of the floor: for a > 0, any g in the group lies between some two consecutive multiples of a.

theorem existsUnique_zpow_near_of_one_lt' {G : Type u_1} [CommGroup G] [LinearOrder G] [IsOrderedMonoid G] [MulArchimedean G] {a : G} (ha : 1 < a) (g : G) :
∃! k : , 1 g / a ^ k g / a ^ k < a
theorem existsUnique_zsmul_near_of_pos' {G : Type u_1} [AddCommGroup G] [LinearOrder G] [IsOrderedAddMonoid G] [Archimedean G] {a : G} (ha : 0 < a) (g : G) :
∃! k : , 0 g - k a g - k a < a
theorem existsUnique_div_zpow_mem_Ico {G : Type u_1} [CommGroup G] [LinearOrder G] [IsOrderedMonoid G] [MulArchimedean G] {a : G} (ha : 1 < a) (b c : G) :
∃! m : , b / a ^ m Set.Ico c (c * a)
theorem existsUnique_sub_zsmul_mem_Ico {G : Type u_1} [AddCommGroup G] [LinearOrder G] [IsOrderedAddMonoid G] [Archimedean G] {a : G} (ha : 0 < a) (b c : G) :
∃! m : , b - m a Set.Ico c (c + a)
theorem existsUnique_mul_zpow_mem_Ico {G : Type u_1} [CommGroup G] [LinearOrder G] [IsOrderedMonoid G] [MulArchimedean G] {a : G} (ha : 1 < a) (b c : G) :
∃! m : , b * a ^ m Set.Ico c (c * a)
theorem existsUnique_add_zsmul_mem_Ico {G : Type u_1} [AddCommGroup G] [LinearOrder G] [IsOrderedAddMonoid G] [Archimedean G] {a : G} (ha : 0 < a) (b c : G) :
∃! m : , b + m a Set.Ico c (c + a)
theorem existsUnique_add_zpow_mem_Ioc {G : Type u_1} [CommGroup G] [LinearOrder G] [IsOrderedMonoid G] [MulArchimedean G] {a : G} (ha : 1 < a) (b c : G) :
∃! m : , b * a ^ m Set.Ioc c (c * a)
theorem existsUnique_add_zsmul_mem_Ioc {G : Type u_1} [AddCommGroup G] [LinearOrder G] [IsOrderedAddMonoid G] [Archimedean G] {a : G} (ha : 0 < a) (b c : G) :
∃! m : , b + m a Set.Ioc c (c + a)
theorem existsUnique_sub_zpow_mem_Ioc {G : Type u_1} [CommGroup G] [LinearOrder G] [IsOrderedMonoid G] [MulArchimedean G] {a : G} (ha : 1 < a) (b c : G) :
∃! m : , b / a ^ m Set.Ioc c (c * a)
theorem existsUnique_sub_zsmul_mem_Ioc {G : Type u_1} [AddCommGroup G] [LinearOrder G] [IsOrderedAddMonoid G] [Archimedean G] {a : G} (ha : 0 < a) (b c : G) :
∃! m : , b - m a Set.Ioc c (c + a)
@[instance 100]
theorem add_one_pow_unbounded_of_pos {R : Type u_3} [Semiring R] [PartialOrder R] [IsStrictOrderedRing R] [Archimedean R] {y : R} (x : R) (hy : 0 < y) :
∃ (n : ), x < (y + 1) ^ n
theorem pow_unbounded_of_one_lt {R : Type u_3} [Semiring R] [PartialOrder R] [IsStrictOrderedRing R] [Archimedean R] {y : R} [ExistsAddOfLE R] (x : R) (hy1 : 1 < y) :
∃ (n : ), x < y ^ n
@[instance 100]
theorem exists_floor {R : Type u_3} [Ring R] [PartialOrder R] [IsStrictOrderedRing R] [Archimedean R] (x : R) :
∃ (fl : ), ∀ (z : ), z fl z x

See exists_floor' for a more general version which only assumes the element is bounded by two integers.

theorem exists_nat_pow_near {R : Type u_3} [Semiring R] [LinearOrder R] [IsStrictOrderedRing R] [Archimedean R] [ExistsAddOfLE R] {x y : R} (hx : 1 x) (hy : 1 < y) :
∃ (n : ), y ^ n x x < y ^ (n + 1)

Every x greater than or equal to 1 is between two successive natural-number powers of every y greater than one.

theorem exists_nat_one_div_lt {K : Type u_4} [Semifield K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {ε : K} ( : 0 < ε) :
∃ (n : ), 1 / (n + 1) < ε
theorem exists_mem_Ico_zpow {K : Type u_4} [Semifield K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {x y : K} [ExistsAddOfLE K] (hx : 0 < x) (hy : 1 < y) :
∃ (n : ), x Set.Ico (y ^ n) (y ^ (n + 1))

Every positive x is between two successive integer powers of another y greater than one. This is the same as exists_mem_Ioc_zpow, but with ≤ and < the other way around.

theorem exists_mem_Ioc_zpow {K : Type u_4} [Semifield K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {x y : K} [ExistsAddOfLE K] (hx : 0 < x) (hy : 1 < y) :
∃ (n : ), x Set.Ioc (y ^ n) (y ^ (n + 1))

Every positive x is between two successive integer powers of another y greater than one. This is the same as exists_mem_Ico_zpow, but with ≤ and < the other way around.

theorem exists_pow_lt_of_lt_one {K : Type u_4} [Semifield K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {x y : K} [ExistsAddOfLE K] (hx : 0 < x) (hy : y < 1) :
∃ (n : ), y ^ n < x

For any y < 1 and any positive x, there exists n : ℕ with y ^ n < x.

theorem exists_nat_pow_near_of_lt_one {K : Type u_4} [Semifield K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {x y : K} [ExistsAddOfLE K] (xpos : 0 < x) (hx : x 1) (ypos : 0 < y) (hy : y < 1) :
∃ (n : ), y ^ (n + 1) < x x y ^ n

Given x and y between 0 and 1, x is between two successive powers of y. This is the same as exists_nat_pow_near, but for elements between 0 and 1

theorem exists_pow_btwn_of_lt_mul {K : Type u_4} [Semifield K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] [ExistsAddOfLE K] {a b c : K} (h : a < b * c) (hb₀ : 0 < b) (hb₁ : b 1) (hc₀ : 0 < c) (hc₁ : c < 1) :
∃ (n : ), a < c ^ n c ^ n < b

If a < b * c, 0 < b ≤ 1 and 0 < c < 1, then there is a power c ^ n with n : ℕ strictly between a and b.

theorem exists_zpow_btwn_of_lt_mul {K : Type u_4} [Semifield K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] [ExistsAddOfLE K] {a b c : K} (h : a < b * c) (hb₀ : 0 < b) (hc₀ : 0 < c) (hc₁ : c < 1) :
∃ (n : ), a < c ^ n c ^ n < b

If a < b * c, b is positive and 0 < c < 1, then there is a power c ^ n with n : ℤ strictly between a and b.

theorem archimedean_iff_nat_lt {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] :
Archimedean K ∀ (x : K), ∃ (n : ), x < n
theorem archimedean_iff_nat_le {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] :
Archimedean K ∀ (x : K), ∃ (n : ), x n
theorem archimedean_iff_int_lt {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] :
Archimedean K ∀ (x : K), ∃ (n : ), x < n
theorem archimedean_iff_int_le {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] :
Archimedean K ∀ (x : K), ∃ (n : ), x n
theorem archimedean_iff_rat_lt {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] :
Archimedean K ∀ (x : K), ∃ (q : ), x < q
theorem archimedean_iff_rat_le {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] :
Archimedean K ∀ (x : K), ∃ (q : ), x q
theorem exists_rat_gt {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] (x : K) :
∃ (q : ), x < q
theorem exists_rat_lt {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] (x : K) :
∃ (q : ), q < x
theorem exists_div_btwn {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {x y : K} {n : } (h : x < y) (nh : (y - x)⁻¹ < n) :
∃ (z : ), x < z / n z / n < y
theorem exists_rat_btwn {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {x y : K} (h : x < y) :
∃ (q : ), x < q q < y
theorem exists_rat_mem_uIoo {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {x y : K} (h : x y) :
∃ (q : ), q Set.uIoo x y
theorem exists_pow_btwn {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {n : } (hn : n 0) {x y : K} (h : x < y) (hy : 0 < y) :
∃ (q : K), 0 < q x < q ^ n q ^ n < y
theorem exists_rat_pow_btwn {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {n : } (hn : n 0) {x y : K} (h : x < y) (hy : 0 < y) :
∃ (q : ), 0 < q x < q ^ n q ^ n < y

There is a rational power between any two positive elements of an archimedean ordered field.

theorem le_of_forall_rat_lt_imp_le {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {x y : K} (h : ∀ (q : ), q < xq y) :
x y
theorem le_of_forall_lt_rat_imp_le {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {x y : K} (h : ∀ (q : ), y < qx q) :
x y
theorem le_iff_forall_rat_lt_imp_le {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {x y : K} :
x y ∀ (q : ), q < xq y
theorem le_iff_forall_lt_rat_imp_le {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {x y : K} :
x y ∀ (q : ), y < qx q
theorem eq_of_forall_rat_lt_iff_lt {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {x y : K} (h : ∀ (q : ), q < x q < y) :
x = y
theorem eq_of_forall_lt_rat_iff_lt {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {x y : K} (h : ∀ (q : ), x < q y < q) :
x = y
theorem exists_pos_rat_lt {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {x : K} (x0 : 0 < x) :
∃ (q : ), 0 < q q < x
theorem exists_rat_near {K : Type u_4} [Field K] [LinearOrder K] [IsStrictOrderedRing K] [Archimedean K] {ε : K} (x : K) (ε0 : 0 < ε) :
∃ (q : ), |x - q| < ε
@[implicit_reducible]
noncomputable def Archimedean.floorRing (R : Type u_5) [Ring R] [LinearOrder R] [IsStrictOrderedRing R] [Archimedean R] :

A linear ordered archimedean ring is a floor ring. This is not an instance because in some cases we have a computable floor function.

Equations
Instances For
    @[instance 100]

    A linear ordered field that is a floor ring is archimedean.