{R : Type u} →
  [toAddCommGroup : AddCommGroup R] →
    [toIntCast : IntCast R] →
      [toNatCast : NatCast R] →
        [toOne : One R] →
          autoParam (↑0 = 0) AddMonoidWithOne.natCast_zero._autoParam →
            autoParam (∀ (n : ℕ), ↑(n + 1) = ↑n + 1) AddMonoidWithOne.natCast_succ._autoParam →
              autoParam (∀ (n : ℕ), IntCast.intCast ↑n = ↑n) AddGroupWithOne.intCast_ofNat._autoParam →
                autoParam (∀ (n : ℕ), IntCast.intCast (Int.negSucc n) = -↑(n + 1))
                    AddGroupWithOne.intCast_negSucc._autoParam →
                  AddCommGroupWithOne R