Theorem: ENNReal.ofReal_cinfi
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: by_cases hf : BddBelow (range f)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ
inst✝ : Nonempty α
⊢ ENNReal.ofReal (⨅ i, f i) = ⨅ i, ENNReal.ofReal (f i)
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ
inst✝ : Nonempty α
hf : BddBelow (range f)
⊢ ENNReal.ofReal (⨅ i, f i) = ⨅ i, ENNReal.ofReal (f i)

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ
inst✝ : Nonempty α
hf : ¬BddBelow (range f)
⊢ ENNReal.ofReal (⨅ i, f i) = ⨅ i, ENNReal.ofReal (f i)

tactic: exact
  Monotone.map_ciInf_of_continuousAt ENNReal.continuous_ofReal.continuousAt
    (fun i j hij => ENNReal.ofReal_le_ofReal hij) hf
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ
inst✝ : Nonempty α
hf : BddBelow (range f)
⊢ ENNReal.ofReal (⨅ i, f i) = ⨅ i, ENNReal.ofReal (f i)
state_after: no goals

tactic: symm
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ
inst✝ : Nonempty α
hf : ¬BddBelow (range f)
⊢ ENNReal.ofReal (⨅ i, f i) = ⨅ i, ENNReal.ofReal (f i)
state_after: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ
inst✝ : Nonempty α
hf : ¬BddBelow (range f)
⊢ ⨅ i, ENNReal.ofReal (f i) = ENNReal.ofReal (⨅ i, f i)

tactic: rw [Real.iInf_of_not_bddBelow hf, ENNReal.ofReal_zero, ← ENNReal.bot_eq_zero, iInf_eq_bot]
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ
inst✝ : Nonempty α
hf : ¬BddBelow (range f)
⊢ ⨅ i, ENNReal.ofReal (f i) = ENNReal.ofReal (⨅ i, f i)
state_after: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ
inst✝ : Nonempty α
hf : ¬BddBelow (range f)
⊢ ∀ b > ⊥, ∃ i, ENNReal.ofReal (f i) < b

tactic: obtain ⟨y, hy_mem, hy_neg⟩ := not_bddBelow_iff.mp hf 0
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ
inst✝ : Nonempty α
hf : ¬BddBelow (range f)
⊢ ∀ b > ⊥, ∃ i, ENNReal.ofReal (f i) < b
state_after: case neg.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y✝ z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ
inst✝ : Nonempty α
hf : ¬BddBelow (range f)
y : ℝ
hy_mem : y ∈ range f
hy_neg : y < 0
⊢ ∀ b > ⊥, ∃ i, ENNReal.ofReal (f i) < b

tactic: obtain ⟨i, rfl⟩ := mem_range.mpr hy_mem
state_before: case neg.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y✝ z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ
inst✝ : Nonempty α
hf : ¬BddBelow (range f)
y : ℝ
hy_mem : y ∈ range f
hy_neg : y < 0
⊢ ∀ b > ⊥, ∃ i, ENNReal.ofReal (f i) < b
state_after: case neg.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ
inst✝ : Nonempty α
hf : ¬BddBelow (range f)
i : α
hy_mem : f i ∈ range f
hy_neg : f i < 0
⊢ ∀ b > ⊥, ∃ i, ENNReal.ofReal (f i) < b

tactic: refine fun x hx => ⟨i, ?_⟩
state_before: case neg.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ
inst✝ : Nonempty α
hf : ¬BddBelow (range f)
i : α
hy_mem : f i ∈ range f
hy_neg : f i < 0
⊢ ∀ b > ⊥, ∃ i, ENNReal.ofReal (f i) < b
state_after: case neg.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x✝ y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ
inst✝ : Nonempty α
hf : ¬BddBelow (range f)
i : α
hy_mem : f i ∈ range f
hy_neg : f i < 0
x : ℝ≥0∞
hx : x > ⊥
⊢ ENNReal.ofReal (f i) < x

tactic: rwa [ENNReal.ofReal_of_nonpos hy_neg.le]
state_before: case neg.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x✝ y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ
inst✝ : Nonempty α
hf : ¬BddBelow (range f)
i : α
hy_mem : f i ∈ range f
hy_neg : f i < 0
x : ℝ≥0∞
hx : x > ⊥
⊢ ENNReal.ofReal (f i) < x
state_after: no goals