Theorem: ENNReal.iInf_mul_left'
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: by_cases H : a = ∞ ∧ ⨅ i, f i = 0
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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
⊢ ⨅ i, a * f i = a * ⨅ i, 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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : a = ⊤ ∧ ⨅ i, f i = 0
⊢ ⨅ i, a * f i = a * ⨅ i, 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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : ¬(a = ⊤ ∧ ⨅ i, f i = 0)
⊢ ⨅ i, a * f i = a * ⨅ i, f i

tactic: rcases h H.1 H.2 with ⟨i, hi⟩
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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : a = ⊤ ∧ ⨅ i, f i = 0
⊢ ⨅ i, a * f i = a * ⨅ i, f i
state_after: case pos.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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : a = ⊤ ∧ ⨅ i, f i = 0
i : ι
hi : f i = 0
⊢ ⨅ i, a * f i = a * ⨅ i, f i

tactic: rw [H.2, mul_zero, ← bot_eq_zero, iInf_eq_bot]
state_before: case pos.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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : a = ⊤ ∧ ⨅ i, f i = 0
i : ι
hi : f i = 0
⊢ ⨅ i, a * f i = a * ⨅ i, f i
state_after: case pos.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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : a = ⊤ ∧ ⨅ i, f i = 0
i : ι
hi : f i = 0
⊢ ∀ b > ⊥, ∃ i, a * f i < b

tactic: exact fun b hb => ⟨i, by rwa [hi, mul_zero, ← bot_eq_zero]⟩
state_before: case pos.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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : a = ⊤ ∧ ⨅ i, f i = 0
i : ι
hi : f i = 0
⊢ ∀ b > ⊥, ∃ i, a * f i < b
state_after: no goals

tactic: rwa [hi, mul_zero, ← bot_eq_zero]
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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : a = ⊤ ∧ ⨅ i, f i = 0
i : ι
hi : f i = 0
b : ℝ≥0∞
hb : b > ⊥
⊢ a * f i < b
state_after: no goals

tactic: rw [not_and_or] at H
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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : ¬(a = ⊤ ∧ ⨅ i, f i = 0)
⊢ ⨅ i, a * f i = a * ⨅ 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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : ¬a = ⊤ ∨ ¬⨅ i, f i = 0
⊢ ⨅ i, a * f i = a * ⨅ i, f i

tactic: cases isEmpty_or_nonempty ι
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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : ¬a = ⊤ ∨ ¬⨅ i, f i = 0
⊢ ⨅ i, a * f i = a * ⨅ i, f i
state_after: case neg.inl
α : 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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : ¬a = ⊤ ∨ ¬⨅ i, f i = 0
h✝ : IsEmpty ι
⊢ ⨅ i, a * f i = a * ⨅ i, f i

case neg.inr
α : 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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : ¬a = ⊤ ∨ ¬⨅ i, f i = 0
h✝ : Nonempty ι
⊢ ⨅ i, a * f i = a * ⨅ i, f i

tactic: rw [iInf_of_empty, iInf_of_empty, mul_top]
state_before: case neg.inl
α : 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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : ¬a = ⊤ ∨ ¬⨅ i, f i = 0
h✝ : IsEmpty ι
⊢ ⨅ i, a * f i = a * ⨅ i, f i
state_after: case neg.inl
α : 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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : ¬a = ⊤ ∨ ¬⨅ i, f i = 0
h✝ : IsEmpty ι
⊢ a ≠ 0

tactic: exact mt h0 (not_nonempty_iff.2 ‹_›)
state_before: case neg.inl
α : 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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : ¬a = ⊤ ∨ ¬⨅ i, f i = 0
h✝ : IsEmpty ι
⊢ a ≠ 0
state_after: no goals

tactic: exact (ENNReal.mul_left_mono.map_iInf_of_continuousAt'
  (ENNReal.continuousAt_const_mul H)).symm
state_before: case neg.inr
α : 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∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
h : a = ⊤ → ⨅ i, f i = 0 → ∃ i, f i = 0
h0 : a = 0 → Nonempty ι
H : ¬a = ⊤ ∨ ¬⨅ i, f i = 0
h✝ : Nonempty ι
⊢ ⨅ i, a * f i = a * ⨅ i, f i
state_after: no goals