{G : Type u} →
  {motive : AddSemigroup G → Sort u_1} →
    (t : AddSemigroup G) →
      ([toAdd : Add G] →
          (add_assoc : ∀ (a b c : G), a + b + c = a + (b + c)) → motive { toAdd := toAdd, add_assoc := add_assoc }) →
        motive t