Topological structure on EReal
#
We endow EReal
with the order topology, and prove basic properties of this topology.
Main results #
Real.toEReal : ℝ → EReal
is an open embeddingENNReal.toEReal : ℝ≥0∞ → EReal
is a closed embedding- The addition on
EReal
is continuous except at(⊥, ⊤)
and at(⊤, ⊥)
. - Negation is a homeomorphism on
EReal
.
Implementation #
Most proofs are adapted from the corresponding proofs on ℝ≥0∞
.
Real coercion #
@[deprecated EReal.isEmbedding_coe]
Alias of EReal.isEmbedding_coe
.
@[deprecated EReal.isOpenEmbedding_coe]
Alias of EReal.isOpenEmbedding_coe
.
theorem
EReal.tendsto_coe
{α : Type u_2}
{f : Filter α}
{m : α → ℝ}
{a : ℝ}
:
Filter.Tendsto (fun (a : α) => ↑(m a)) f (nhds ↑a) ↔ Filter.Tendsto m f (nhds a)
theorem
EReal.continuous_coe_iff
{α : Type u_1}
[TopologicalSpace α]
{f : α → ℝ}
:
(Continuous fun (a : α) => ↑(f a)) ↔ Continuous f
theorem
EReal.tendsto_toReal
{a : EReal}
(ha : a ≠ ⊤)
(h'a : a ≠ ⊥)
:
Filter.Tendsto EReal.toReal (nhds a) (nhds a.toReal)
The set of finite EReal
numbers is homeomorphic to ℝ
.
Equations
- EReal.neBotTopHomeomorphReal = { toEquiv := EReal.neTopBotEquivReal, continuous_toFun := EReal.neBotTopHomeomorphReal.proof_1, continuous_invFun := EReal.neBotTopHomeomorphReal.proof_2 }
Instances For
ENNReal coercion #
@[deprecated EReal.isEmbedding_coe_ennreal]
Alias of EReal.isEmbedding_coe_ennreal
.
@[deprecated EReal.isClosedEmbedding_coe_ennreal]
Alias of EReal.isClosedEmbedding_coe_ennreal
.
theorem
EReal.tendsto_coe_ennreal
{α : Type u_2}
{f : Filter α}
{m : α → ENNReal}
{a : ENNReal}
:
Filter.Tendsto (fun (a : α) => ↑(m a)) f (nhds ↑a) ↔ Filter.Tendsto m f (nhds a)
theorem
EReal.continuous_coe_ennreal_iff
{α : Type u_1}
[TopologicalSpace α]
{f : α → ENNReal}
:
(Continuous fun (a : α) => ↑(f a)) ↔ Continuous f
Neighborhoods of infinity #
Infs and Sups #
Liminfs and Limsups #
theorem
EReal.liminf_neg
{α : Type u_3}
{f : Filter α}
{v : α → EReal}
:
Filter.liminf (-v) f = -Filter.limsup v f
theorem
EReal.limsup_neg
{α : Type u_3}
{f : Filter α}
{v : α → EReal}
:
Filter.limsup (-v) f = -Filter.liminf v f
theorem
EReal.le_liminf_add
{α : Type u_3}
{f : Filter α}
{u v : α → EReal}
:
Filter.liminf u f + Filter.liminf v f ≤ Filter.liminf (u + v) f
theorem
EReal.limsup_add_le
{α : Type u_3}
{f : Filter α}
{u v : α → EReal}
(h : Filter.limsup u f ≠ ⊥ ∨ Filter.limsup v f ≠ ⊤)
(h' : Filter.limsup u f ≠ ⊤ ∨ Filter.limsup v f ≠ ⊥)
:
Filter.limsup (u + v) f ≤ Filter.limsup u f + Filter.limsup v f
theorem
EReal.le_limsup_add
{α : Type u_3}
{f : Filter α}
{u v : α → EReal}
:
Filter.limsup u f + Filter.liminf v f ≤ Filter.limsup (u + v) f
theorem
EReal.liminf_add_le
{α : Type u_3}
{f : Filter α}
{u v : α → EReal}
(h : Filter.limsup u f ≠ ⊥ ∨ Filter.liminf v f ≠ ⊤)
(h' : Filter.limsup u f ≠ ⊤ ∨ Filter.liminf v f ≠ ⊥)
:
Filter.liminf (u + v) f ≤ Filter.limsup u f + Filter.liminf v f
@[deprecated EReal.le_liminf_add]
theorem
EReal.add_liminf_le_liminf_add
{α : Type u_3}
{f : Filter α}
{u v : α → EReal}
:
Filter.liminf u f + Filter.liminf v f ≤ Filter.liminf (u + v) f
Alias of EReal.le_liminf_add
.
@[deprecated EReal.limsup_add_le]
theorem
EReal.limsup_add_le_add_limsup
{α : Type u_3}
{f : Filter α}
{u v : α → EReal}
(h : Filter.limsup u f ≠ ⊥ ∨ Filter.limsup v f ≠ ⊤)
(h' : Filter.limsup u f ≠ ⊤ ∨ Filter.limsup v f ≠ ⊥)
:
Filter.limsup (u + v) f ≤ Filter.limsup u f + Filter.limsup v f
Alias of EReal.limsup_add_le
.
@[deprecated EReal.le_limsup_add]
theorem
EReal.limsup_add_liminf_le_limsup_add
{α : Type u_3}
{f : Filter α}
{u v : α → EReal}
:
Filter.limsup u f + Filter.liminf v f ≤ Filter.limsup (u + v) f
Alias of EReal.le_limsup_add
.
@[deprecated EReal.liminf_add_le]
theorem
EReal.liminf_add_le_limsup_add_liminf
{α : Type u_3}
{f : Filter α}
{u v : α → EReal}
(h : Filter.limsup u f ≠ ⊥ ∨ Filter.liminf v f ≠ ⊤)
(h' : Filter.limsup u f ≠ ⊤ ∨ Filter.liminf v f ≠ ⊥)
:
Filter.liminf (u + v) f ≤ Filter.limsup u f + Filter.liminf v f
Alias of EReal.liminf_add_le
.
theorem
EReal.limsup_add_bot_of_ne_top
{α : Type u_3}
{f : Filter α}
{u v : α → EReal}
(h : Filter.limsup u f = ⊥)
(h' : Filter.limsup v f ≠ ⊤)
:
Filter.limsup (u + v) f = ⊥
theorem
EReal.limsup_add_le_of_le
{α : Type u_3}
{f : Filter α}
{u v : α → EReal}
{a b : EReal}
(ha : Filter.limsup u f < a)
(hb : Filter.limsup v f ≤ b)
:
Filter.limsup (u + v) f ≤ a + b
theorem
EReal.liminf_add_gt_of_gt
{α : Type u_3}
{f : Filter α}
{u v : α → EReal}
{a b : EReal}
(ha : a < Filter.liminf u f)
(hb : b < Filter.liminf v f)
:
a + b < Filter.liminf (u + v) f
theorem
EReal.liminf_add_top_of_ne_bot
{α : Type u_3}
{f : Filter α}
{u v : α → EReal}
(h : Filter.liminf u f = ⊤)
(h' : Filter.liminf v f ≠ ⊥)
:
Filter.liminf (u + v) f = ⊤
Continuity of addition #
theorem
EReal.continuousAt_add_coe_coe
(a b : ℝ)
:
ContinuousAt (fun (p : EReal × EReal) => p.1 + p.2) (↑a, ↑b)
Negation #
Continuity of multiplication #
theorem
EReal.continuousAt_mul
{p : EReal × EReal}
(h₁ : p.1 ≠ 0 ∨ p.2 ≠ ⊥)
(h₂ : p.1 ≠ 0 ∨ p.2 ≠ ⊤)
(h₃ : p.1 ≠ ⊥ ∨ p.2 ≠ 0)
(h₄ : p.1 ≠ ⊤ ∨ p.2 ≠ 0)
:
ContinuousAt (fun (p : EReal × EReal) => p.1 * p.2) p
The multiplication on EReal
is continuous except at indeterminacies
(i.e. whenever one value is zero and the other infinite).