{α : Type u} →
  [inst : AddMonoid α] →
    {motive : AddUnits α → Sort u_1} →
      (t : AddUnits α) →
        ((val neg : α) →
            (val_neg : val + neg = 0) →
              (neg_val : neg + val = 0) → motive { val := val, neg := neg, val_neg := val_neg, neg_val := neg_val }) →
          motive t