∀ {R : Type u_2} {S : Type u_1} (f : R → S) (hf : Function.Surjective f) [inst : Add S] [inst_1 : Zero S]
  [inst_2 : SMul ℕ S] [inst_3 : NatCast S] [inst_4 : AddMonoidWithOne R] (zero : f 0 = 0)
  (add : ∀ (x y : R), f (x + y) = f x + f y) (nsmul : ∀ (n : ℕ) (x : R), f (n • x) = n • f x),
  (∀ (n : ℕ), f ↑n = ↑n) → ↑0 = 0