case mp =>
  intro (_ : abs p ≃ 0)
  show p ≃ 0
  have : p * sgn p ≃ 0 := AA.eqv_substL abs_sgn ‹abs p ≃ 0›
  have : p ≃ 0 ∨ (sgn p : ℚ) ≃ 0 := mul_split_zero.mp this
  match this with
  | Or.inl (_ : p ≃ 0) =>
    exact ‹p ≃ 0›
  | Or.inr (_ : (sgn p : ℚ) ≃ 0) =>
    have : sgn p ≃ 0 := from_integer_inject ‹(sgn p : ℚ) ≃ 0›
    have : p ≃ 0 := sgn_zero.mpr this
    exact this
ℕ ℤ ℚ : Type
inst✝¹² : Natural ℕ
inst✝¹¹ : Integer ℤ
inst✝¹⁰ : Core ℚ
inst✝⁹ : Addition ℚ
inst✝⁸ : Negation ℚ
inst✝⁷ : Subtraction ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Reciprocation ℚ
inst✝⁴ : Division ℚ
inst✝³ : Sign ℚ
inst✝² : Order ℚ
inst✝¹ : MinMax ℚ
inst✝ : Metric ℚ
p : ℚ
⊢ abs p ≃ 0 → p ≃ 0
no goals