classical
replace h := nat_pred_descent h
intro a b ha hb h0
by_contra! h1
exact (lt_or_gt_of_ne h1).elim (λ h1 ↦ h a ⟨ha, b, h1, h0⟩)
  (λ h1 ↦ h b ⟨hb, a, h1, bad_symm h0⟩)
n : ℤ
hn : 1 < n
P : ℕ → Prop := fun k => 0 < k ∧ ∃ m, k < m ∧ n * ↑k * ↑m - 1 ∣ (n * ↑k ^ 2 - 1) ^ 2
h : ∀ (k : ℕ), P k → ∃ m < k, P m
⊢ ∀ (a b : ℕ), 0 < a → 0 < b → n * ↑a * ↑b - 1 ∣ (n * ↑a ^ 2 - 1) ^ 2 → a = b
no goals