Documentation

Mathlib.Data.Real.Archimedean

The real numbers are an Archimedean floor ring, and a conditionally complete linear order. #

@[implicit_reducible]
noncomputable instance Real.instFloorRing :
theorem Real.isCauSeq_iff_lift {f : โ„• โ†’ โ„š} :
IsCauSeq abs f โ†” IsCauSeq abs fun (i : โ„•) => โ†‘(f i)
theorem Real.of_near (f : โ„• โ†’ โ„š) (x : โ„) (h : โˆ€ ฮต > 0, โˆƒ (i : โ„•), โˆ€ j โ‰ฅ i, |โ†‘(f j) - x| < ฮต) :
โˆƒ (h' : IsCauSeq abs f), mk โŸจf, h'โŸฉ = x
@[deprecated exists_floor (since := "2026-01-29")]
theorem Real.exists_floor (x : โ„) :
โˆƒ (ub : โ„ค), โ†‘ub โ‰ค x โˆง โˆ€ (z : โ„ค), โ†‘z โ‰ค x โ†’ z โ‰ค ub
theorem Real.exists_isLUB {s : Set โ„} (hne : s.Nonempty) (hbdd : BddAbove s) :
โˆƒ (x : โ„), IsLUB s x
theorem Real.exists_isGLB {s : Set โ„} (hne : s.Nonempty) (hbdd : BddBelow s) :
โˆƒ (x : โ„), IsGLB s x

A nonempty, bounded below set of real numbers has a greatest lower bound.

@[implicit_reducible]
noncomputable instance Real.instSupSet :
theorem Real.sSup_def (s : Set โ„) :
sSup s = if h : s.Nonempty โˆง BddAbove s then Classical.choose โ‹ฏ else 0
theorem Real.isLUB_sSup {s : Set โ„} (hโ‚ : s.Nonempty) (hโ‚‚ : BddAbove s) :
IsLUB s (sSup s)
@[implicit_reducible]
noncomputable instance Real.instInfSet :
theorem Real.isGLB_sInf {s : Set โ„} (hโ‚ : s.Nonempty) (hโ‚‚ : BddBelow s) :
IsGLB s (sInf s)
theorem Real.lt_sInf_add_pos {s : Set โ„} (h : s.Nonempty) {ฮต : โ„} (hฮต : 0 < ฮต) :
โˆƒ a โˆˆ s, a < sInf s + ฮต
theorem Real.add_neg_lt_sSup {s : Set โ„} (h : s.Nonempty) {ฮต : โ„} (hฮต : ฮต < 0) :
โˆƒ a โˆˆ s, sSup s + ฮต < a
theorem Real.sInf_le_iff {s : Set โ„} {a : โ„} (h : BddBelow s) (h' : s.Nonempty) :
sInf s โ‰ค a โ†” โˆ€ (ฮต : โ„), 0 < ฮต โ†’ โˆƒ x โˆˆ s, x < a + ฮต
theorem Real.le_sSup_iff {s : Set โ„} {a : โ„} (h : BddAbove s) (h' : s.Nonempty) :
a โ‰ค sSup s โ†” โˆ€ ฮต < 0, โˆƒ x โˆˆ s, a + ฮต < x
@[simp]
theorem Real.sSup_empty :
sSup โˆ… = 0
@[simp]
theorem Real.iSup_of_isEmpty {ฮน : Sort u_1} [IsEmpty ฮน] (f : ฮน โ†’ โ„) :
โจ† (i : ฮน), f i = 0
@[simp]
theorem Real.iSup_const_zero {ฮน : Sort u_1} :
โจ† (x : ฮน), 0 = 0
theorem Real.iSup_of_not_bddAbove {ฮน : Sort u_1} {f : ฮน โ†’ โ„} (hf : ยฌBddAbove (Set.range f)) :
โจ† (i : ฮน), f i = 0
@[simp]
theorem Real.sInf_empty :
sInf โˆ… = 0
@[simp]
theorem Real.iInf_of_isEmpty {ฮน : Sort u_1} [IsEmpty ฮน] (f : ฮน โ†’ โ„) :
โจ… (i : ฮน), f i = 0
@[simp]
theorem Real.iInf_const_zero {ฮน : Sort u_1} :
โจ… (x : ฮน), 0 = 0
theorem Real.iInf_of_not_bddBelow {ฮน : Sort u_1} {f : ฮน โ†’ โ„} (hf : ยฌBddBelow (Set.range f)) :
โจ… (i : ฮน), f i = 0
theorem Real.sSup_le {s : Set โ„} {a : โ„} (hs : โˆ€ x โˆˆ s, x โ‰ค a) (ha : 0 โ‰ค a) :

As sSup s = 0 when s is an empty set of reals, it suffices to show that all elements of s are at most some nonnegative number a to show that sSup s โ‰ค a.

See also csSup_le.

theorem Real.iSup_le {ฮน : Sort u_1} {f : ฮน โ†’ โ„} {a : โ„} (hf : โˆ€ (i : ฮน), f i โ‰ค a) (ha : 0 โ‰ค a) :
โจ† (i : ฮน), f i โ‰ค a

As โจ† i, f i = 0 when the domain of the real-valued function f is empty, it suffices to show that all values of f are at most some nonnegative number a to show that โจ† i, f i โ‰ค a.

See also ciSup_le.

theorem Real.le_sInf {s : Set โ„} {a : โ„} (hs : โˆ€ x โˆˆ s, a โ‰ค x) (ha : a โ‰ค 0) :

As sInf s = 0 when s is an empty set of reals, it suffices to show that all elements of s are at least some nonpositive number a to show that a โ‰ค sInf s.

See also le_csInf.

theorem Real.le_iInf {ฮน : Sort u_1} {f : ฮน โ†’ โ„} {a : โ„} (hf : โˆ€ (i : ฮน), a โ‰ค f i) (ha : a โ‰ค 0) :
a โ‰ค โจ… (i : ฮน), f i

As โจ… i, f i = 0 when the domain of the real-valued function f is empty, it suffices to show that all values of f are at least some nonpositive number a to show that a โ‰ค โจ… i, f i.

See also le_ciInf.

theorem Real.sSup_nonpos {s : Set โ„} (hs : โˆ€ x โˆˆ s, x โ‰ค 0) :

As sSup s = 0 when s is an empty set of reals, it suffices to show that all elements of s are nonpositive to show that sSup s โ‰ค 0.

theorem Real.iSup_nonpos {ฮน : Sort u_1} {f : ฮน โ†’ โ„} (hf : โˆ€ (i : ฮน), f i โ‰ค 0) :
โจ† (i : ฮน), f i โ‰ค 0

As โจ† i, f i = 0 when the domain of the real-valued function f is empty, it suffices to show that all values of f are nonpositive to show that โจ† i, f i โ‰ค 0.

theorem Real.sInf_nonneg {s : Set โ„} (hs : โˆ€ x โˆˆ s, 0 โ‰ค x) :

As sInf s = 0 when s is an empty set of reals, it suffices to show that all elements of s are nonnegative to show that 0 โ‰ค sInf s.

theorem Real.iInf_nonneg {ฮน : Sort u_1} {f : ฮน โ†’ โ„} (hf : โˆ€ (i : ฮน), 0 โ‰ค f i) :

As โจ… i, f i = 0 when the domain of the real-valued function f is empty, it suffices to show that all values of f are nonnegative to show that 0 โ‰ค โจ… i, f i.

theorem Real.sSup_nonneg' {s : Set โ„} (hs : โˆƒ x โˆˆ s, 0 โ‰ค x) :

As sSup s = 0 when s is a set of reals that's unbounded above, it suffices to show that s contains a nonnegative element to show that 0 โ‰ค sSup s.

theorem Real.iSup_nonneg' {ฮน : Sort u_1} {f : ฮน โ†’ โ„} (hf : โˆƒ (i : ฮน), 0 โ‰ค f i) :
0 โ‰ค โจ† (i : ฮน), f i

As โจ† i, f i = 0 when the real-valued function f is unbounded above, it suffices to show that f takes a nonnegative value to show that 0 โ‰ค โจ† i, f i.

theorem Real.sInf_nonpos' {s : Set โ„} (hs : โˆƒ x โˆˆ s, x โ‰ค 0) :

As sInf s = 0 when s is a set of reals that's unbounded below, it suffices to show that s contains a nonpositive element to show that sInf s โ‰ค 0.

theorem Real.iInf_nonpos' {ฮน : Sort u_1} {f : ฮน โ†’ โ„} (hf : โˆƒ (i : ฮน), f i โ‰ค 0) :
โจ… (i : ฮน), f i โ‰ค 0

As โจ… i, f i = 0 when the real-valued function f is unbounded below, it suffices to show that f takes a nonpositive value to show that 0 โ‰ค โจ… i, f i.

theorem Real.sSup_nonneg {s : Set โ„} (hs : โˆ€ x โˆˆ s, 0 โ‰ค x) :

As sSup s = 0 when s is a set of reals that's either empty or unbounded above, it suffices to show that all elements of s are nonnegative to show that 0 โ‰ค sSup s.

theorem Real.iSup_nonneg {ฮน : Sort u_1} {f : ฮน โ†’ โ„} (hf : โˆ€ (i : ฮน), 0 โ‰ค f i) :
0 โ‰ค โจ† (i : ฮน), f i

As โจ† i, f i = 0 when the domain of the real-valued function f is empty or unbounded above, it suffices to show that all values of f are nonnegative to show that 0 โ‰ค โจ† i, f i.

theorem Real.iSup_nonneg_of_nonnegHomClass {ฮน : Type u_2} {F : Type u_3} {ฮฑ : Type u_4} [FunLike F ฮฑ โ„] [NonnegHomClass F ฮฑ โ„] (f : F) (g : ฮน โ†’ ฮฑ) :
0 โ‰ค โจ† (i : ฮน), f (g i)
theorem Real.sInf_nonpos {s : Set โ„} (hs : โˆ€ x โˆˆ s, x โ‰ค 0) :

As sInf s = 0 when s is a set of reals that's either empty or unbounded below, it suffices to show that all elements of s are nonpositive to show that sInf s โ‰ค 0.

theorem Real.iInf_nonpos {ฮน : Sort u_1} {f : ฮน โ†’ โ„} (hf : โˆ€ (i : ฮน), f i โ‰ค 0) :
โจ… (i : ฮน), f i โ‰ค 0

As โจ… i, f i = 0 when the domain of the real-valued function f is empty or unbounded below, it suffices to show that all values of f are nonpositive to show that 0 โ‰ค โจ… i, f i.

theorem Real.sInf_le_sSup (s : Set โ„) (hโ‚ : BddBelow s) (hโ‚‚ : BddAbove s) :
theorem Real.iInf_Ioi_eq_iInf_rat_gt {f : โ„ โ†’ โ„} (x : โ„) (hf : BddBelow (f '' Set.Ioi x)) (hf_mono : Monotone f) :
โจ… (r : โ†‘(Set.Ioi x)), f โ†‘r = โจ… (q : { q' : โ„š // x < โ†‘q' }), f โ†‘โ†‘q
theorem Real.not_bddAbove_coe :
ยฌBddAbove (Set.range fun (x : โ„š) => โ†‘x)
theorem Real.not_bddBelow_coe :
ยฌBddBelow (Set.range fun (x : โ„š) => โ†‘x)
theorem Real.iUnion_Iic_rat :
โ‹ƒ (r : โ„š), Set.Iic โ†‘r = Set.univ
theorem Real.iInter_Iic_rat :
โ‹‚ (r : โ„š), Set.Iic โ†‘r = โˆ…
theorem Real.exists_natCast_add_one_lt_pow_of_one_lt {a : โ„} (ha : 1 < a) :
โˆƒ (m : โ„•), โ†‘m + 1 < a ^ m

Exponentiation is eventually larger than linear growth.

theorem Real.exists_nat_pos_inv_lt {b : โ„} (hb : 0 < b) :
โˆƒ (n : โ„•), 0 < n โˆง (โ†‘n)โปยน < b