have : sgn (sgn q - sgn p) * sgn p ≃ sgn (p * sgn q - p * sgn p) := calc
  sgn (sgn q - sgn p) * sgn p
    ≃ _ := AA.comm
  sgn p * sgn (sgn q - sgn p)
    ≃ _ := AA.substR (Rel.symm sgn_from_integer)
  sgn p * sgn ((sgn q - sgn p : ℤ) : ℚ)
    ≃ _ := Rel.symm sgn_compat_mul
  sgn (p * ((sgn q - sgn p : ℤ) : ℚ))
    ≃ _ := sgn_subst (mul_substR sub_compat_from_integer)
  sgn (p * ((sgn q : ℚ) - (sgn p : ℚ)))
    ≃ _ := sgn_subst mul_distribL_sub
  sgn (p * sgn q - p * sgn p)
    ≃ _ := Rel.refl
ℕ ℤ ℚ : 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 : ℚ
x✝ : sgn (p * from_integer (sgn q) - p * from_integer (sgn p)) ≃ 1
⊢ False
ℕ ℤ ℚ : 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 : ℚ
x✝ : sgn (p * from_integer (sgn q) - p * from_integer (sgn p)) ≃ 1
this : sgn (sgn q - sgn p) * sgn p ≃ sgn (p * from_integer (sgn q) - p * from_integer (sgn p))
⊢ False