match this with
| Or.inl (_ : r > 0) =>
  have : p * r ≤ q * r := le_substL_mul_pos ‹r > 0› ‹p ≤ q›
  exact this
| Or.inr (_ : r ≃ 0) =>
  have : p * r ≃ q * r := calc
    _ ≃ p * r := eqv_refl
    _ ≃ p * 0 := mul_substR ‹r ≃ 0›
    _ ≃ 0     := mul_absorbR
    _ ≃ q * 0 := eqv_symm mul_absorbR
    _ ≃ q * r := mul_substR (eqv_symm ‹r ≃ 0›)
  have : p * r ≤ q * r := le_cases.mpr (Or.inr ‹p * r ≃ q * r›)
  exact this
ℕ ℤ ℚ : Type
inst✝¹⁰ : Natural ℕ
inst✝⁹ : Integer ℤ
inst✝⁸ : Core ℚ
inst✝⁷ : Addition ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Negation ℚ
inst✝⁴ : Sign ℚ
inst✝³ : Subtraction ℚ
inst✝² : Reciprocation ℚ
inst✝¹ : Division ℚ
inst✝ : Order ℚ
p q r : ℚ
x✝¹ : r ≥ 0
x✝ : p ≤ q
this : r > 0 ∨ r ≃ 0
⊢ p * r ≤ q * r
no goals