(** Represents strongly-specified negation. *)
Definition sum_neg_strong
  :  forall x : E, { y | sum_is_inv x y }
  := Ring.sum_neg_strong ring.(** Represents negation. *)
Definition sum_neg 
  :  E -> E
  := Ring.sum_neg ring.Notation "{-}" := (Commutative_Ring.sum_neg _) : commutative_ring_scope.Notation "- x" := (Commutative_Ring.sum_neg _ x) : commutative_ring_scope.(**
  Asserts that the negation returns the inverse
  of its argument.
*)
Definition sum_neg_def 
  :  forall x : E, sum_is_inv x (- x)
  := Ring.sum_neg_def ring.

Theorem prod_id_uniq : forall x : E, (Monoid.is_id E {#} x) -> x = 1.