Theorem: ENNReal.mul_inv
File: Mathlib/Data/Real/ENNReal.lean

tactic: induction' b using recTopCoe with b
state_before: α : Type ?u.257111
β : Type ?u.257114
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a b : ℝ≥0∞
ha : a ≠ 0 ∨ b ≠ ⊤
hb : a ≠ ⊤ ∨ b ≠ 0
⊢ (a * b)⁻¹ = a⁻¹ * b⁻¹

tactic: induction' a using recTopCoe with a
state_before: case coe
α : Type ?u.257111
β : Type ?u.257114
a✝ b✝¹ c d : ℝ≥0∞
r p q : ℝ≥0
a b✝ : ℝ≥0∞
ha✝ : a ≠ 0 ∨ b✝ ≠ ⊤
hb✝ : a ≠ ⊤ ∨ b✝ ≠ 0
b : ℝ≥0
ha : a ≠ 0 ∨ ↑b ≠ ⊤
hb : a ≠ ⊤ ∨ ↑b ≠ 0
⊢ (a * ↑b)⁻¹ = a⁻¹ * (↑b)⁻¹

tactic: by_cases h'a : a = 0
state_before: case coe.coe
α : Type ?u.257111
β : Type ?u.257114
a✝¹ b✝¹ c d : ℝ≥0∞
r p q : ℝ≥0
a✝ b✝ : ℝ≥0∞
ha✝² : a✝ ≠ 0 ∨ b✝ ≠ ⊤
hb✝² : a✝ ≠ ⊤ ∨ b✝ ≠ 0
b : ℝ≥0
ha✝¹ : a✝ ≠ 0 ∨ ↑b ≠ ⊤
hb✝¹ : a✝ ≠ ⊤ ∨ ↑b ≠ 0
a : ℝ≥0
ha✝ : ↑a ≠ 0 ∨ b✝ ≠ ⊤
hb✝ : ↑a ≠ ⊤ ∨ b✝ ≠ 0
ha : ↑a ≠ 0 ∨ ↑b ≠ ⊤
hb : ↑a ≠ ⊤ ∨ ↑b ≠ 0
⊢ (↑a * ↑b)⁻¹ = (↑a)⁻¹ * (↑b)⁻¹

tactic: by_cases h'b : b = 0
state_before: case neg
α : Type ?u.257111
β : Type ?u.257114
a✝¹ b✝¹ c d : ℝ≥0∞
r p q : ℝ≥0
a✝ b✝ : ℝ≥0∞
ha✝² : a✝ ≠ 0 ∨ b✝ ≠ ⊤
hb✝² : a✝ ≠ ⊤ ∨ b✝ ≠ 0
b : ℝ≥0
ha✝¹ : a✝ ≠ 0 ∨ ↑b ≠ ⊤
hb✝¹ : a✝ ≠ ⊤ ∨ ↑b ≠ 0
a : ℝ≥0
ha✝ : ↑a ≠ 0 ∨ b✝ ≠ ⊤
hb✝ : ↑a ≠ ⊤ ∨ b✝ ≠ 0
ha : ↑a ≠ 0 ∨ ↑b ≠ ⊤
hb : ↑a ≠ ⊤ ∨ ↑b ≠ 0
h'a : ¬a = 0
⊢ (↑a * ↑b)⁻¹ = (↑a)⁻¹ * (↑b)⁻¹

tactic: rw [← ENNReal.coe_mul, ← ENNReal.coe_inv, ← ENNReal.coe_inv h'a, ← ENNReal.coe_inv h'b, ←
  ENNReal.coe_mul, mul_inv_rev, mul_comm]
state_before: case neg
α : Type ?u.257111
β : Type ?u.257114
a✝¹ b✝¹ c d : ℝ≥0∞
r p q : ℝ≥0
a✝ b✝ : ℝ≥0∞
ha✝² : a✝ ≠ 0 ∨ b✝ ≠ ⊤
hb✝² : a✝ ≠ ⊤ ∨ b✝ ≠ 0
b : ℝ≥0
ha✝¹ : a✝ ≠ 0 ∨ ↑b ≠ ⊤
hb✝¹ : a✝ ≠ ⊤ ∨ ↑b ≠ 0
a : ℝ≥0
ha✝ : ↑a ≠ 0 ∨ b✝ ≠ ⊤
hb✝ : ↑a ≠ ⊤ ∨ b✝ ≠ 0
ha : ↑a ≠ 0 ∨ ↑b ≠ ⊤
hb : ↑a ≠ ⊤ ∨ ↑b ≠ 0
h'a : ¬a = 0
h'b : ¬b = 0
⊢ (↑a * ↑b)⁻¹ = (↑a)⁻¹ * (↑b)⁻¹

tactic: simp [h'a, h'b]
state_before: case neg
α : Type ?u.257111
β : Type ?u.257114
a✝¹ b✝¹ c d : ℝ≥0∞
r p q : ℝ≥0
a✝ b✝ : ℝ≥0∞
ha✝² : a✝ ≠ 0 ∨ b✝ ≠ ⊤
hb✝² : a✝ ≠ ⊤ ∨ b✝ ≠ 0
b : ℝ≥0
ha✝¹ : a✝ ≠ 0 ∨ ↑b ≠ ⊤
hb✝¹ : a✝ ≠ ⊤ ∨ ↑b ≠ 0
a : ℝ≥0
ha✝ : ↑a ≠ 0 ∨ b✝ ≠ ⊤
hb✝ : ↑a ≠ ⊤ ∨ b✝ ≠ 0
ha : ↑a ≠ 0 ∨ ↑b ≠ ⊤
hb : ↑a ≠ ⊤ ∨ ↑b ≠ 0
h'a : ¬a = 0
h'b : ¬b = 0
⊢ a * b ≠ 0

tactic: replace ha : a ≠ 0 := ha.neg_resolve_right rfl
state_before: case top
α : Type ?u.257111
β : Type ?u.257114
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a b : ℝ≥0∞
ha✝ : a ≠ 0 ∨ b ≠ ⊤
hb✝ : a ≠ ⊤ ∨ b ≠ 0
ha : a ≠ 0 ∨ ⊤ ≠ ⊤
hb : a ≠ ⊤ ∨ ⊤ ≠ 0
⊢ (a * ⊤)⁻¹ = a⁻¹ * ⊤⁻¹

tactic: simp [ha]
state_before: case top
α : Type ?u.257111
β : Type ?u.257114
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a b : ℝ≥0∞
ha✝ : a ≠ 0 ∨ b ≠ ⊤
hb✝ : a ≠ ⊤ ∨ b ≠ 0
hb : a ≠ ⊤ ∨ ⊤ ≠ 0
ha : a ≠ 0
⊢ (a * ⊤)⁻¹ = a⁻¹ * ⊤⁻¹

tactic: replace hb : b ≠ 0 := coe_ne_zero.1 (hb.neg_resolve_left rfl)
state_before: case coe.top
α : Type ?u.257111
β : Type ?u.257114
a✝ b✝¹ c d : ℝ≥0∞
r p q : ℝ≥0
a b✝ : ℝ≥0∞
ha✝² : a ≠ 0 ∨ b✝ ≠ ⊤
hb✝² : a ≠ ⊤ ∨ b✝ ≠ 0
b : ℝ≥0
ha✝¹ : a ≠ 0 ∨ ↑b ≠ ⊤
hb✝¹ : a ≠ ⊤ ∨ ↑b ≠ 0
ha✝ : ⊤ ≠ 0 ∨ b✝ ≠ ⊤
hb✝ : ⊤ ≠ ⊤ ∨ b✝ ≠ 0
ha : ⊤ ≠ 0 ∨ ↑b ≠ ⊤
hb : ⊤ ≠ ⊤ ∨ ↑b ≠ 0
⊢ (⊤ * ↑b)⁻¹ = ⊤⁻¹ * (↑b)⁻¹

tactic: simp [hb]
state_before: case coe.top
α : Type ?u.257111
β : Type ?u.257114
a✝ b✝¹ c d : ℝ≥0∞
r p q : ℝ≥0
a b✝ : ℝ≥0∞
ha✝² : a ≠ 0 ∨ b✝ ≠ ⊤
hb✝² : a ≠ ⊤ ∨ b✝ ≠ 0
b : ℝ≥0
ha✝¹ : a ≠ 0 ∨ ↑b ≠ ⊤
hb✝¹ : a ≠ ⊤ ∨ ↑b ≠ 0
ha✝ : ⊤ ≠ 0 ∨ b✝ ≠ ⊤
hb✝ : ⊤ ≠ ⊤ ∨ b✝ ≠ 0
ha : ⊤ ≠ 0 ∨ ↑b ≠ ⊤
hb : b ≠ 0
⊢ (⊤ * ↑b)⁻¹ = ⊤⁻¹ * (↑b)⁻¹

tactic: simp only [h'a, top_mul, ENNReal.inv_zero, ENNReal.coe_ne_top, zero_mul, Ne.def,
  not_false_iff, ENNReal.coe_zero, ENNReal.inv_eq_zero]
state_before: case pos
α : Type ?u.257111
β : Type ?u.257114
a✝¹ b✝¹ c d : ℝ≥0∞
r p q : ℝ≥0
a✝ b✝ : ℝ≥0∞
ha✝² : a✝ ≠ 0 ∨ b✝ ≠ ⊤
hb✝² : a✝ ≠ ⊤ ∨ b✝ ≠ 0
b : ℝ≥0
ha✝¹ : a✝ ≠ 0 ∨ ↑b ≠ ⊤
hb✝¹ : a✝ ≠ ⊤ ∨ ↑b ≠ 0
a : ℝ≥0
ha✝ : ↑a ≠ 0 ∨ b✝ ≠ ⊤
hb✝ : ↑a ≠ ⊤ ∨ b✝ ≠ 0
ha : ↑a ≠ 0 ∨ ↑b ≠ ⊤
hb : ↑a ≠ ⊤ ∨ ↑b ≠ 0
h'a : a = 0
⊢ (↑a * ↑b)⁻¹ = (↑a)⁻¹ * (↑b)⁻¹

tactic: simp only [h'b, ENNReal.inv_zero, ENNReal.coe_ne_top, mul_top, Ne.def, not_false_iff,
  mul_zero, ENNReal.coe_zero, ENNReal.inv_eq_zero]
state_before: case pos
α : Type ?u.257111
β : Type ?u.257114
a✝¹ b✝¹ c d : ℝ≥0∞
r p q : ℝ≥0
a✝ b✝ : ℝ≥0∞
ha✝² : a✝ ≠ 0 ∨ b✝ ≠ ⊤
hb✝² : a✝ ≠ ⊤ ∨ b✝ ≠ 0
b : ℝ≥0
ha✝¹ : a✝ ≠ 0 ∨ ↑b ≠ ⊤
hb✝¹ : a✝ ≠ ⊤ ∨ ↑b ≠ 0
a : ℝ≥0
ha✝ : ↑a ≠ 0 ∨ b✝ ≠ ⊤
hb✝ : ↑a ≠ ⊤ ∨ b✝ ≠ 0
ha : ↑a ≠ 0 ∨ ↑b ≠ ⊤
hb : ↑a ≠ ⊤ ∨ ↑b ≠ 0
h'a : ¬a = 0
h'b : b = 0
⊢ (↑a * ↑b)⁻¹ = (↑a)⁻¹ * (↑b)⁻¹