{G : Type u} →
  {motive : SubNegMonoid G → Sort u_1} →
    (t : SubNegMonoid G) →
      ([toAddMonoid : AddMonoid G] →
          [toNeg : Neg G] →
            [toSub : Sub G] →
              (sub_eq_add_neg : ∀ (a b : G), a - b = a + -b) →
                (zsmul : ℤ → G → G) →
                  (zsmul_zero' : ∀ (a : G), zsmul 0 a = 0) →
                    (zsmul_succ' : ∀ (n : ℕ) (a : G), zsmul (↑n.succ) a = zsmul (↑n) a + a) →
                      (zsmul_neg' : ∀ (n : ℕ) (a : G), zsmul (Int.negSucc n) a = -zsmul (↑n.succ) a) →
                        motive
                          { toAddMonoid := toAddMonoid, toNeg := toNeg, toSub := toSub,
                            sub_eq_add_neg := sub_eq_add_neg, zsmul := zsmul, zsmul_zero' := zsmul_zero',
                            zsmul_succ' := zsmul_succ', zsmul_neg' := zsmul_neg' }) →
        motive t