{R : Type u_1} →
  {S : Type u_2} →
    [inst : Add S] →
      [inst_1 : Mul S] →
        [inst_2 : Zero S] →
          [inst_3 : Neg S] →
            [inst_4 : Sub S] →
              [inst_5 : SMul ℕ S] →
                [inst_6 : SMul ℤ S] →
                  [inst_7 : NonUnitalNonAssocRing R] →
                    (f : S → R) →
                      Function.Injective f →
                        f 0 = 0 →
                          (∀ (x y : S), f (x + y) = f x + f y) →
                            (∀ (x y : S), f (x * y) = f x * f y) →
                              (∀ (x : S), f (-x) = -f x) →
                                (∀ (x y : S), f (x - y) = f x - f y) →
                                  (∀ (n : ℕ) (x : S), f (n • x) = n • f x) →
                                    (∀ (n : ℤ) (x : S), f (n • x) = n • f x) → NonUnitalNonAssocRing S