# mathlibdocumentation

topology.algebra.ordered.liminf_limsup

# Lemmas about liminf and limsup in an order topology. #

theorem is_bounded_le_nhds {α : Type u} (a : α) :
theorem filter.tendsto.is_bounded_under_le {α : Type u} {β : Type v} {f : filter β} {u : β → α} {a : α} (h : (𝓝 a)) :
theorem filter.tendsto.bdd_above_range_of_cofinite {α : Type u} {β : Type v} {u : β → α} {a : α} (h : (𝓝 a)) :
theorem filter.tendsto.bdd_above_range {α : Type u} {u : → α} {a : α} (h : (𝓝 a)) :
theorem is_cobounded_ge_nhds {α : Type u} (a : α) :
theorem filter.tendsto.is_cobounded_under_ge {α : Type u} {β : Type v} {f : filter β} {u : β → α} {a : α} [f.ne_bot] (h : (𝓝 a)) :
theorem is_bounded_ge_nhds {α : Type u} (a : α) :
(𝓝 a)
theorem filter.tendsto.is_bounded_under_ge {α : Type u} {β : Type v} {f : filter β} {u : β → α} {a : α} (h : (𝓝 a)) :
theorem filter.tendsto.bdd_below_range_of_cofinite {α : Type u} {β : Type v} {u : β → α} {a : α} (h : (𝓝 a)) :
theorem filter.tendsto.bdd_below_range {α : Type u} {u : → α} {a : α} (h : (𝓝 a)) :
theorem is_cobounded_le_nhds {α : Type u} (a : α) :
theorem filter.tendsto.is_cobounded_under_le {α : Type u} {β : Type v} {f : filter β} {u : β → α} {a : α} [f.ne_bot] (h : (𝓝 a)) :
theorem lt_mem_sets_of_Limsup_lt {α : Type u} {f : filter α} {b : α} (h : f) (l : f.Limsup < b) :
∀ᶠ (a : α) in f, a < b
theorem gt_mem_sets_of_Liminf_gt {α : Type u} {f : filter α} {b : α} :
b < f.Liminf(∀ᶠ (a : α) in f, b < a)
theorem le_nhds_of_Limsup_eq_Liminf {α : Type u} {f : filter α} {a : α} (hl : f) (hg : f) (hs : f.Limsup = a) (hi : f.Liminf = a) :
f 𝓝 a

If the liminf and the limsup of a filter coincide, then this filter converges to their common value, at least if the filter is eventually bounded above and below.

theorem Limsup_nhds {α : Type u} (a : α) :
(𝓝 a).Limsup = a
theorem Liminf_nhds {α : Type u} (a : α) :
(𝓝 a).Liminf = a
theorem Liminf_eq_of_le_nhds {α : Type u} {f : filter α} {a : α} [f.ne_bot] (h : f 𝓝 a) :
f.Liminf = a

If a filter is converging, its limsup coincides with its limit.

theorem Limsup_eq_of_le_nhds {α : Type u} {f : filter α} {a : α} [f.ne_bot] :
f 𝓝 af.Limsup = a

If a filter is converging, its liminf coincides with its limit.

theorem filter.tendsto.limsup_eq {α : Type u} {β : Type v} {f : filter β} {u : β → α} {a : α} [f.ne_bot] (h : (𝓝 a)) :
f.limsup u = a

If a function has a limit, then its limsup coincides with its limit.

theorem filter.tendsto.liminf_eq {α : Type u} {β : Type v} {f : filter β} {u : β → α} {a : α} [f.ne_bot] (h : (𝓝 a)) :
f.liminf u = a

If a function has a limit, then its liminf coincides with its limit.

theorem tendsto_of_liminf_eq_limsup {α : Type u} {β : Type v} {f : filter β} {u : β → α} {a : α} (hinf : f.liminf u = a) (hsup : f.limsup u = a) (h : . "is_bounded_default") (h' : . "is_bounded_default") :
(𝓝 a)

If the liminf and the limsup of a function coincide, then the limit of the function exists and has the same value

theorem tendsto_of_le_liminf_of_limsup_le {α : Type u} {β : Type v} {f : filter β} {u : β → α} {a : α} (hinf : a f.liminf u) (hsup : f.limsup u a) (h : . "is_bounded_default") (h' : . "is_bounded_default") :
(𝓝 a)

If a number a is less than or equal to the liminf of a function f at some filter and is greater than or equal to the limsup of f, then f tends to a along this filter.

theorem tendsto_of_no_upcrossings {α : Type u} {β : Type v} {f : filter β} {u : β → α} {s : set α} (hs : dense s) (H : ∀ (a : α), a s∀ (b : α), b sa < b¬((∃ᶠ (n : β) in f, u n < a) ∃ᶠ (n : β) in f, b < u n)) (h : . "is_bounded_default") (h' : . "is_bounded_default") :
∃ (c : α), (𝓝 c)

Assume that, for any a < b, a sequence can not be infinitely many times below a and above b. If it is also ultimately bounded above and below, then it has to converge. This even works if a and b are restricted to a dense subset.