File: Mathlib/Topology/Instances/EReal.lean

full_name: EReal.instTopologicalSpace
code: instance : TopologicalSpace EReal 
goal: TopologicalSpace EReal

full_name: EReal.instOrderTopology
code: instance : OrderTopology EReal 
goal: OrderTopology EReal

full_name: EReal.instT5Space
code: instance : T5Space EReal 
goal: T5Space EReal

full_name: EReal.instT2Space
code: instance : T2Space EReal 
goal: T2Space EReal

full_name: EReal.denseRange_ratCast
code: lemma denseRange_ratCast : DenseRange (fun r : ℚ ↦ ((r : ℝ) : EReal)) 
goal: DenseRange fun r => ↑↑r

full_name: EReal.instSecondCountableTopology
code: instance : SecondCountableTopology EReal 
goal: SecondCountableTopology EReal

full_name: EReal.embedding_coe
code: theorem embedding_coe : Embedding ((↑) : ℝ → EReal) 
goal: Embedding Real.toEReal

full_name: EReal.openEmbedding_coe
code: theorem openEmbedding_coe : OpenEmbedding ((↑) : ℝ → EReal) 
goal: OpenEmbedding Real.toEReal

full_name: EReal.tendsto_coe
code: @[norm_cast]
theorem tendsto_coe {α : Type*} {f : Filter α} {m : α → ℝ} {a : ℝ} :
    Tendsto (fun a => (m a : EReal)) f (𝓝 ↑a) ↔ Tendsto m f (𝓝 a) 
goal: Filter.Tendsto (fun a => ↑(m a)) f (𝓝 ↑a) ↔ Filter.Tendsto m f (𝓝 a)

full_name: continuous_coe_real_ereal
code: theorem _root_.continuous_coe_real_ereal : Continuous ((↑) : ℝ → EReal) 
goal: Continuous Real.toEReal

full_name: EReal.continuous_coe_iff
code: theorem continuous_coe_iff {f : α → ℝ} : (Continuous fun a => (f a : EReal)) ↔ Continuous f 
goal: (Continuous fun a => ↑(f a)) ↔ Continuous f

full_name: EReal.nhds_coe
code: theorem nhds_coe {r : ℝ} : 𝓝 (r : EReal) = (𝓝 r).map (↑) 
goal: 𝓝 ↑r = Filter.map Real.toEReal (𝓝 r)

full_name: EReal.nhds_coe_coe
code: theorem nhds_coe_coe {r p : ℝ} :
    𝓝 ((r : EReal), (p : EReal)) = (𝓝 (r, p)).map fun p : ℝ × ℝ => (↑p.1, ↑p.2) 
goal: 𝓝 (↑r, ↑p) = Filter.map (fun p => (↑p.1, ↑p.2)) (𝓝 (r, p))

full_name: EReal.tendsto_toReal
code: theorem tendsto_toReal {a : EReal} (ha : a ≠ ⊤) (h'a : a ≠ ⊥) :
    Tendsto EReal.toReal (𝓝 a) (𝓝 a.toReal) 
goal: Filter.Tendsto EReal.toReal (𝓝 a) (𝓝 a.toReal)

full_name: EReal.continuousOn_toReal
code: theorem continuousOn_toReal : ContinuousOn EReal.toReal ({⊥, ⊤}ᶜ : Set EReal) 
goal: ContinuousOn EReal.toReal {⊥, ⊤}ᶜ

full_name: EReal.neBotTopHomeomorphReal
code: /-- The set of finite `EReal` numbers is homeomorphic to `ℝ`. -/
def neBotTopHomeomorphReal : ({⊥, ⊤}ᶜ : Set EReal) ≃ₜ ℝ 
goal: ↑{⊥, ⊤}ᶜ ≃ₜ ℝ

full_name: EReal.embedding_coe_ennreal
code: theorem embedding_coe_ennreal : Embedding ((↑) : ℝ≥0∞ → EReal) 
goal: Embedding ENNReal.toEReal

full_name: EReal.closedEmbedding_coe_ennreal
code: theorem closedEmbedding_coe_ennreal : ClosedEmbedding ((↑) : ℝ≥0∞ → EReal) 
goal: ClosedEmbedding ENNReal.toEReal

full_name: EReal.tendsto_coe_ennreal
code: @[norm_cast]
theorem tendsto_coe_ennreal {α : Type*} {f : Filter α} {m : α → ℝ≥0∞} {a : ℝ≥0∞} :
    Tendsto (fun a => (m a : EReal)) f (𝓝 ↑a) ↔ Tendsto m f (𝓝 a) 
goal: Filter.Tendsto (fun a => ↑(m a)) f (𝓝 ↑a) ↔ Filter.Tendsto m f (𝓝 a)

full_name: continuous_coe_ennreal_ereal
code: theorem _root_.continuous_coe_ennreal_ereal : Continuous ((↑) : ℝ≥0∞ → EReal) 
goal: Continuous ENNReal.toEReal

full_name: EReal.continuous_coe_ennreal_iff
code: theorem continuous_coe_ennreal_iff {f : α → ℝ≥0∞} :
    (Continuous fun a => (f a : EReal)) ↔ Continuous f 
goal: (Continuous fun a => ↑(f a)) ↔ Continuous f

full_name: EReal.nhds_top
code: theorem nhds_top : 𝓝 (⊤ : EReal) = ⨅ (a) (_ : a ≠ ⊤), 𝓟 (Ioi a) 
goal: 𝓝 ⊤ = ⨅ a, ⨅ (_ : a ≠ ⊤), 𝓟 (Set.Ioi a)

full_name: EReal.nhds_top_basis
code: nonrec theorem nhds_top_basis : (𝓝 (⊤ : EReal)).HasBasis (fun _ : ℝ ↦ True) (Ioi ·) 
goal: (𝓝 ⊤).HasBasis (fun x => True) fun x => Set.Ioi ↑x

full_name: EReal.nhds_top'
code: theorem nhds_top' : 𝓝 (⊤ : EReal) = ⨅ a : ℝ, 𝓟 (Ioi ↑a) 
goal: 𝓝 ⊤ = ⨅ a, 𝓟 (Set.Ioi ↑a)

full_name: EReal.mem_nhds_top_iff
code: theorem mem_nhds_top_iff {s : Set EReal} : s ∈ 𝓝 (⊤ : EReal) ↔ ∃ y : ℝ, Ioi (y : EReal) ⊆ s 
goal: s ∈ 𝓝 ⊤ ↔ ∃ y, Set.Ioi ↑y ⊆ s

full_name: EReal.tendsto_nhds_top_iff_real
code: theorem tendsto_nhds_top_iff_real {α : Type*} {m : α → EReal} {f : Filter α} :
    Tendsto m f (𝓝 ⊤) ↔ ∀ x : ℝ, ∀ᶠ a in f, ↑x < m a 
goal: Filter.Tendsto m f (𝓝 ⊤) ↔ ∀ (x : ℝ), ∀ᶠ (a : α) in f, ↑x < m a

full_name: EReal.nhds_bot
code: theorem nhds_bot : 𝓝 (⊥ : EReal) = ⨅ (a) (_ : a ≠ ⊥), 𝓟 (Iio a) 
goal: 𝓝 ⊥ = ⨅ a, ⨅ (_ : a ≠ ⊥), 𝓟 (Set.Iio a)

full_name: EReal.nhds_bot_basis
code: theorem nhds_bot_basis : (𝓝 (⊥ : EReal)).HasBasis (fun _ : ℝ ↦ True) (Iio ·) 
goal: (𝓝 ⊥).HasBasis (fun x => True) fun x => Set.Iio ↑x

full_name: EReal.nhds_bot'
code: theorem nhds_bot' : 𝓝 (⊥ : EReal) = ⨅ a : ℝ, 𝓟 (Iio ↑a) 
goal: 𝓝 ⊥ = ⨅ a, 𝓟 (Set.Iio ↑a)

full_name: EReal.mem_nhds_bot_iff
code: theorem mem_nhds_bot_iff {s : Set EReal} : s ∈ 𝓝 (⊥ : EReal) ↔ ∃ y : ℝ, Iio (y : EReal) ⊆ s 
goal: s ∈ 𝓝 ⊥ ↔ ∃ y, Set.Iio ↑y ⊆ s

full_name: EReal.tendsto_nhds_bot_iff_real
code: theorem tendsto_nhds_bot_iff_real {α : Type*} {m : α → EReal} {f : Filter α} :
    Tendsto m f (𝓝 ⊥) ↔ ∀ x : ℝ, ∀ᶠ a in f, m a < x 
goal: Filter.Tendsto m f (𝓝 ⊥) ↔ ∀ (x : ℝ), ∀ᶠ (a : α) in f, m a < ↑x

full_name: EReal.liminf_le_liminf
code: lemma liminf_le_liminf (h : u ≤ᶠ[f] v) :
    liminf u f ≤ liminf v f 
goal: Filter.liminf u f ≤ Filter.liminf v f

full_name: EReal.limsup_le_limsup
code: lemma limsup_le_limsup (h : u ≤ᶠ[f] v) :
    limsup u f ≤ limsup v f 
goal: Filter.limsup u f ≤ Filter.limsup v f

full_name: _private.Mathlib.Topology.Instances.EReal.0.EReal.limsup_add_le_of_lt
code: /-- This lemma is superseded by `limsup_add_le_of_le` (weaker hypothesis) and
`limsup_add_lt_of_lt` (stronger thesis). -/
private lemma limsup_add_le_of_lt (ha : limsup u f < a) (hb : limsup v f < b) :
    limsup (u + v) f ≤ a + b 
goal: Filter.limsup (u + v) f ≤ a + b

full_name: EReal.limsup_add_lt_of_lt
code: lemma limsup_add_lt_of_lt (ha : limsup u f < a) (hb : limsup v f < b) :
    limsup (u + v) f < a + b 
goal: Filter.limsup (u + v) f < a + b

full_name: EReal.limsup_add_bot_of_ne_top
code: lemma limsup_add_bot_of_ne_top (h : limsup u f = ⊥) (h' : limsup v f ≠ ⊤) :
    limsup (u + v) f = ⊥ 
goal: Filter.limsup (u + v) f = ⊥

full_name: EReal.limsup_add_le_add_limsup
code: lemma limsup_add_le_add_limsup
    (h : limsup u f ≠ ⊥ ∨ limsup v f ≠ ⊤) (h' : limsup u f ≠ ⊤ ∨ limsup v f ≠ ⊥) :
    limsup (u + v) f ≤ (limsup u f) + (limsup v f) 
goal: Filter.limsup (u + v) f ≤ Filter.limsup u f + Filter.limsup v f

full_name: EReal.limsup_add_le_of_le
code: lemma limsup_add_le_of_le (ha : limsup u f < a) (hb : limsup v f ≤ b) :
    limsup (u + v) f ≤ a + b 
goal: Filter.limsup (u + v) f ≤ a + b

full_name: EReal.liminf_neg
code: lemma liminf_neg : liminf (- v) f = - limsup v f 
goal: Filter.liminf (-v) f = -Filter.limsup v f

full_name: EReal.limsup_neg
code: lemma limsup_neg : limsup (- v) f = - liminf v f 
goal: Filter.limsup (-v) f = -Filter.liminf v f

full_name: EReal.liminf_add_gt_of_gt
code: lemma liminf_add_gt_of_gt (ha : a < liminf u f) (hb : b < liminf v f) :
    a + b < liminf (u + v) f 
goal: a + b < Filter.liminf (u + v) f

full_name: EReal.liminf_add_top_of_ne_bot
code: lemma liminf_add_top_of_ne_bot (h : liminf u f = ⊤) (h' : liminf v f ≠ ⊥) :
    liminf (u + v) f = ⊤ 
goal: Filter.liminf (u + v) f = ⊤

full_name: EReal.add_liminf_le_liminf_add
code: lemma add_liminf_le_liminf_add : (liminf u f) + (liminf v f) ≤ liminf (u + v) f 
goal: Filter.liminf u f + Filter.liminf v f ≤ Filter.liminf (u + v) f

full_name: EReal.limsup_le_iff
code: lemma limsup_le_iff {b : EReal} : limsup u f ≤ b ↔ ∀ c : ℝ, b < c → ∀ᶠ a : α in f, u a ≤ c 
goal: Filter.limsup u f ≤ b ↔ ∀ (c : ℝ), b < ↑c → ∀ᶠ (a : α) in f, u a ≤ ↑c

full_name: EReal.continuousAt_add_coe_coe
code: theorem continuousAt_add_coe_coe (a b : ℝ) :
    ContinuousAt (fun p : EReal × EReal => p.1 + p.2) (a, b) 
goal: ContinuousAt (fun p => p.1 + p.2) (↑a, ↑b)

full_name: EReal.continuousAt_add_top_coe
code: theorem continuousAt_add_top_coe (a : ℝ) :
    ContinuousAt (fun p : EReal × EReal => p.1 + p.2) (⊤, a) 
goal: ContinuousAt (fun p => p.1 + p.2) (⊤, ↑a)

full_name: EReal.continuousAt_add_coe_top
code: theorem continuousAt_add_coe_top (a : ℝ) :
    ContinuousAt (fun p : EReal × EReal => p.1 + p.2) (a, ⊤) 
goal: ContinuousAt (fun p => p.1 + p.2) (↑a, ⊤)

full_name: EReal.continuousAt_add_top_top
code: theorem continuousAt_add_top_top : ContinuousAt (fun p : EReal × EReal => p.1 + p.2) (⊤, ⊤) 
goal: ContinuousAt (fun p => p.1 + p.2) (⊤, ⊤)

full_name: EReal.continuousAt_add_bot_coe
code: theorem continuousAt_add_bot_coe (a : ℝ) :
    ContinuousAt (fun p : EReal × EReal => p.1 + p.2) (⊥, a) 
goal: ContinuousAt (fun p => p.1 + p.2) (⊥, ↑a)

full_name: EReal.continuousAt_add_coe_bot
code: theorem continuousAt_add_coe_bot (a : ℝ) :
    ContinuousAt (fun p : EReal × EReal => p.1 + p.2) (a, ⊥) 
goal: ContinuousAt (fun p => p.1 + p.2) (↑a, ⊥)

full_name: EReal.continuousAt_add_bot_bot
code: theorem continuousAt_add_bot_bot : ContinuousAt (fun p : EReal × EReal => p.1 + p.2) (⊥, ⊥) 
goal: ContinuousAt (fun p => p.1 + p.2) (⊥, ⊥)

full_name: EReal.continuousAt_add
code: /-- The addition on `EReal` is continuous except where it doesn't make sense (i.e., at `(⊥, ⊤)`
and at `(⊤, ⊥)`). -/
theorem continuousAt_add {p : EReal × EReal} (h : p.1 ≠ ⊤ ∨ p.2 ≠ ⊥) (h' : p.1 ≠ ⊥ ∨ p.2 ≠ ⊤) :
    ContinuousAt (fun p : EReal × EReal => p.1 + p.2) p 
goal: ContinuousAt (fun p => p.1 + p.2) p

full_name: EReal.instContinuousNeg
code: instance : ContinuousNeg EReal 
goal: ContinuousNeg EReal

full_name: _private.Mathlib.Topology.Instances.EReal.0.EReal.continuousAt_mul_swap
code: private lemma continuousAt_mul_swap {a b : EReal}
    (h : ContinuousAt (fun p : EReal × EReal ↦ p.1 * p.2) (a, b)) :
    ContinuousAt (fun p : EReal × EReal ↦ p.1 * p.2) (b, a) 
goal: ContinuousAt (fun p => p.1 * p.2) (b, a)

full_name: _private.Mathlib.Topology.Instances.EReal.0.EReal.continuousAt_mul_symm1
code: private lemma continuousAt_mul_symm1 {a b : EReal}
    (h : ContinuousAt (fun p : EReal × EReal ↦ p.1 * p.2) (a, b)) :
    ContinuousAt (fun p : EReal × EReal ↦ p.1 * p.2) (-a, b) 
goal: ContinuousAt (fun p => p.1 * p.2) (-a, b)

full_name: _private.Mathlib.Topology.Instances.EReal.0.EReal.continuousAt_mul_symm2
code: private lemma continuousAt_mul_symm2 {a b : EReal}
    (h : ContinuousAt (fun p : EReal × EReal ↦ p.1 * p.2) (a, b)) :
    ContinuousAt (fun p : EReal × EReal ↦ p.1 * p.2) (a, -b) 
goal: ContinuousAt (fun p => p.1 * p.2) (a, -b)

full_name: _private.Mathlib.Topology.Instances.EReal.0.EReal.continuousAt_mul_symm3
code: private lemma continuousAt_mul_symm3 {a b : EReal}
    (h : ContinuousAt (fun p : EReal × EReal ↦ p.1 * p.2) (a, b)) :
    ContinuousAt (fun p : EReal × EReal ↦ p.1 * p.2) (-a, -b) 
goal: ContinuousAt (fun p => p.1 * p.2) (-a, -b)

full_name: _private.Mathlib.Topology.Instances.EReal.0.EReal.continuousAt_mul_coe_coe
code: private lemma continuousAt_mul_coe_coe (a b : ℝ) :
    ContinuousAt (fun p : EReal × EReal ↦ p.1 * p.2) (a, b) 
goal: ContinuousAt (fun p => p.1 * p.2) (↑a, ↑b)

full_name: _private.Mathlib.Topology.Instances.EReal.0.EReal.continuousAt_mul_top_top
code: private lemma continuousAt_mul_top_top :
    ContinuousAt (fun p : EReal × EReal ↦ p.1 * p.2) (⊤, ⊤) 
goal: ContinuousAt (fun p => p.1 * p.2) (⊤, ⊤)

full_name: _private.Mathlib.Topology.Instances.EReal.0.EReal.continuousAt_mul_top_pos
code: private lemma continuousAt_mul_top_pos {a : ℝ} (h : 0 < a) :
    ContinuousAt (fun p : EReal × EReal ↦ p.1 * p.2) (⊤, a) 
goal: ContinuousAt (fun p => p.1 * p.2) (⊤, ↑a)

full_name: _private.Mathlib.Topology.Instances.EReal.0.EReal.continuousAt_mul_top_ne_zero
code: private lemma continuousAt_mul_top_ne_zero {a : ℝ} (h : a ≠ 0) :
    ContinuousAt (fun p : EReal × EReal ↦ p.1 * p.2) (⊤, a) 
goal: ContinuousAt (fun p => p.1 * p.2) (⊤, ↑a)

full_name: EReal.continuousAt_mul
code: /-- The multiplication on `EReal` is continuous except at indeterminacies
(i.e. whenever one value is zero and the other infinite). -/
theorem 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 
goal: ContinuousAt (fun p => p.1 * p.2) p