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

Theorem sum_neg_distrib_inv_r : forall x y : E, sum_is_inv_r (x + y) (- y + - x).