Module: Mathlib.RingTheory.Valuation.ValuativeRel.Basic

Goal state before:
pp: R✝ : Type u_1
inst✝⁵ : Semiring R✝
inst✝⁴ : ValuativeRel R✝
R : Type u_2
Γ : Type u_3
inst✝³ : Ring R
inst✝² : ValuativeRel R
inst✝¹ : LinearOrderedCommGroupWithZero Γ
v : Valuation R Γ
inst✝ : v.Compatible
x y : R
r s : ↥(posSubmonoid R)
⊢ v x * v ↑r = v y * v ↑s →
    (if h : (ofClass v) x = 0 then 0
      else
        ↑⟨Units.mk0 ((ofClass v) x) ⋯, ⋯⟩ * if h : (ofClass v) ↑r = 0 then 0 else ↑⟨Units.mk0 ((ofClass v) ↑r) h, ⋯⟩) =
      if h : (ofClass v) y = 0 then 0
      else ↑⟨Units.mk0 ((ofClass v) y) ⋯, ⋯⟩ * if h : (ofClass v) ↑s = 0 then 0 else ↑⟨Units.mk0 ((ofClass v) ↑s) h, ⋯⟩

Tactic:
split_ifs with h1 h2 h3

Goal state after:
case pos
R✝ : Type u_1
inst✝⁵ : Semiring R✝
inst✝⁴ : ValuativeRel R✝
R : Type u_2
Γ : Type u_3
inst✝³ : Ring R
inst✝² : ValuativeRel R
inst✝¹ : LinearOrderedCommGroupWithZero Γ
v : Valuation R Γ
inst✝ : v.Compatible
x y : R
r s : ↥(posSubmonoid R)
h1 : (ofClass v) x = 0
h2 : (ofClass v) y = 0
⊢ v x * v ↑r = v y * v ↑s → 0 = 0

case pos
R✝ : Type u_1
inst✝⁵ : Semiring R✝
inst✝⁴ : ValuativeRel R✝
R : Type u_2
Γ : Type u_3
inst✝³ : Ring R
inst✝² : ValuativeRel R
inst✝¹ : LinearOrderedCommGroupWithZero Γ
v : Valuation R Γ
inst✝ : v.Compatible
x y : R
r s : ↥(posSubmonoid R)
h1 : (ofClass v) x = 0
h2 : ¬(ofClass v) y = 0
h3 : (ofClass v) ↑s = 0
⊢ v x * v ↑r = v y * v ↑s → 0 = ↑⟨Units.mk0 ((ofClass v) y) ⋯, ⋯⟩ * 0

case neg
R✝ : Type u_1
inst✝⁵ : Semiring R✝
inst✝⁴ : ValuativeRel R✝
R : Type u_2
Γ : Type u_3
inst✝³ : Ring R
inst✝² : ValuativeRel R
inst✝¹ : LinearOrderedCommGroupWithZero Γ
v : Valuation R Γ
inst✝ : v.Compatible
x y : R
r s : ↥(posSubmonoid R)
h1 : (ofClass v) x = 0
h2 : ¬(ofClass v) y = 0
h3 : ¬(ofClass v) ↑s = 0
⊢ v x * v ↑r = v y * v ↑s → 0 = ↑⟨Units.mk0 ((ofClass v) y) ⋯, ⋯⟩ * ↑⟨Units.mk0 ((ofClass v) ↑s) h3, ⋯⟩

case pos
R✝ : Type u_1
inst✝⁵ : Semiring R✝
inst✝⁴ : ValuativeRel R✝
R : Type u_2
Γ : Type u_3
inst✝³ : Ring R
inst✝² : ValuativeRel R
inst✝¹ : LinearOrderedCommGroupWithZero Γ
v : Valuation R Γ
inst✝ : v.Compatible
x y : R
r s : ↥(posSubmonoid R)
h1 : ¬(ofClass v) x = 0
h✝¹ : (ofClass v) ↑r = 0
h✝ : (ofClass v) y = 0
⊢ v x * v ↑r = v y * v ↑s → ↑⟨Units.mk0 ((ofClass v) x) ⋯, ⋯⟩ * 0 = 0

case pos
R✝ : Type u_1
inst✝⁵ : Semiring R✝
inst✝⁴ : ValuativeRel R✝
R : Type u_2
Γ : Type u_3
inst✝³ : Ring R
inst✝² : ValuativeRel R
inst✝¹ : LinearOrderedCommGroupWithZero Γ
v : Valuation R Γ
inst✝ : v.Compatible
x y : R
r s : ↥(posSubmonoid R)
h1 : ¬(ofClass v) x = 0
h✝² : (ofClass v) ↑r = 0
h✝¹ : ¬(ofClass v) y = 0
h✝ : (ofClass v) ↑s = 0
⊢ v x * v ↑r = v y * v ↑s → ↑⟨Units.mk0 ((ofClass v) x) ⋯, ⋯⟩ * 0 = ↑⟨Units.mk0 ((ofClass v) y) ⋯, ⋯⟩ * 0

case neg
R✝ : Type u_1
inst✝⁵ : Semiring R✝
inst✝⁴ : ValuativeRel R✝
R : Type u_2
Γ : Type u_3
inst✝³ : Ring R
inst✝² : ValuativeRel R
inst✝¹ : LinearOrderedCommGroupWithZero Γ
v : Valuation R Γ
inst✝ : v.Compatible
x y : R
r s : ↥(posSubmonoid R)
h1 : ¬(ofClass v) x = 0
h✝² : (ofClass v) ↑r = 0
h✝¹ : ¬(ofClass v) y = 0
h✝ : ¬(ofClass v) ↑s = 0
⊢ v x * v ↑r = v y * v ↑s →
    ↑⟨Units.mk0 ((ofClass v) x) ⋯, ⋯⟩ * 0 = ↑⟨Units.mk0 ((ofClass v) y) ⋯, ⋯⟩ * ↑⟨Units.mk0 ((ofClass v) ↑s) h✝, ⋯⟩

case pos
R✝ : Type u_1
inst✝⁵ : Semiring R✝
inst✝⁴ : ValuativeRel R✝
R : Type u_2
Γ : Type u_3
inst✝³ : Ring R
inst✝² : ValuativeRel R
inst✝¹ : LinearOrderedCommGroupWithZero Γ
v : Valuation R Γ
inst✝ : v.Compatible
x y : R
r s : ↥(posSubmonoid R)
h1 : ¬(ofClass v) x = 0
h✝¹ : ¬(ofClass v) ↑r = 0
h✝ : (ofClass v) y = 0
⊢ v x * v ↑r = v y * v ↑s → ↑⟨Units.mk0 ((ofClass v) x) ⋯, ⋯⟩ * ↑⟨Units.mk0 ((ofClass v) ↑r) h✝¹, ⋯⟩ = 0

case pos
R✝ : Type u_1
inst✝⁵ : Semiring R✝
inst✝⁴ : ValuativeRel R✝
R : Type u_2
Γ : Type u_3
inst✝³ : Ring R
inst✝² : ValuativeRel R
inst✝¹ : LinearOrderedCommGroupWithZero Γ
v : Valuation R Γ
inst✝ : v.Compatible
x y : R
r s : ↥(posSubmonoid R)
h1 : ¬(ofClass v) x = 0
h✝² : ¬(ofClass v) ↑r = 0
h✝¹ : ¬(ofClass v) y = 0
h✝ : (ofClass v) ↑s = 0
⊢ v x * v ↑r = v y * v ↑s →
    ↑⟨Units.mk0 ((ofClass v) x) ⋯, ⋯⟩ * ↑⟨Units.mk0 ((ofClass v) ↑r) h✝², ⋯⟩ = ↑⟨Units.mk0 ((ofClass v) y) ⋯, ⋯⟩ * 0

case neg
R✝ : Type u_1
inst✝⁵ : Semiring R✝
inst✝⁴ : ValuativeRel R✝
R : Type u_2
Γ : Type u_3
inst✝³ : Ring R
inst✝² : ValuativeRel R
inst✝¹ : LinearOrderedCommGroupWithZero Γ
v : Valuation R Γ
inst✝ : v.Compatible
x y : R
r s : ↥(posSubmonoid R)
h1 : ¬(ofClass v) x = 0
h✝² : ¬(ofClass v) ↑r = 0
h✝¹ : ¬(ofClass v) y = 0
h✝ : ¬(ofClass v) ↑s = 0
⊢ v x * v ↑r = v y * v ↑s →
    ↑⟨Units.mk0 ((ofClass v) x) ⋯, ⋯⟩ * ↑⟨Units.mk0 ((ofClass v) ↑r) h✝², ⋯⟩ =
      ↑⟨Units.mk0 ((ofClass v) y) ⋯, ⋯⟩ * ↑⟨Units.mk0 ((ofClass v) ↑s) h✝, ⋯⟩