match this with
| Or.inl (_ : sgn p ≃ 1) =>
  have : 1 ≃ sgn p := Rel.symm ‹sgn p ≃ 1›
  have : sgn (sgn q - 1) ≃ 1 := calc
    sgn (sgn q - 1)     ≃ _ := Integer.sgn_subst (Integer.sub_substR this)
    sgn (sgn q - sgn p) ≃ _ := ‹sgn (sgn q - sgn p) ≃ sgn p›
    sgn p               ≃ _ := ‹sgn p ≃ 1›
    1                   ≃ _ := Rel.refl
  have : sgn q > 1 := Integer.gt_sgn.mpr this
  have : sgn q ≤ 1 := sgn_max
  exact Integer.le_gt_false this ‹sgn q > 1›
| Or.inr (_ : sgn p ≃ -1) =>
  have : -1 ≃ sgn p := Rel.symm ‹sgn p ≃ -1›
  have : sgn (sgn q - (-1)) ≃ -1 := calc
    sgn (sgn q - (-1))  ≃ _ := Integer.sgn_subst (Integer.sub_substR this)
    sgn (sgn q - sgn p) ≃ _ := ‹sgn (sgn q - sgn p) ≃ sgn p›
    sgn p               ≃ _ := ‹sgn p ≃ -1›
    (-1)                ≃ _ := Rel.refl
  have : sgn q < -1 := Integer.lt_sgn.mpr this
  have : sgn q ≥ -1 := sgn_min
  exact Integer.lt_ge_false ‹sgn q < -1› 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 : ℚ
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))
this✝² : sgn (sgn q - sgn p) * sgn p ≃ 1
sqrt1_and_eqv : Integer.Sqrt1 (sgn p) ∧ sgn (sgn q - sgn p) ≃ sgn p
this✝¹ : Integer.Sqrt1 (sgn p)
this✝ : sgn (sgn q - sgn p) ≃ sgn p
this : sgn p ≃ 1 ∨ sgn p ≃ -1
⊢ False
no goals