Proof Ring.sum_id ring.
(** Accepts two elements, x and y, and asserts that y is x's left inverse. *)
Definition sum_is_inv_l
:= Ring.sum_is_inv_l ring.
(** Accepts two elements, x and y, and asserts that y is x's right inverse. *)
Definition sum_is_inv_r
:= Ring.sum_is_inv_r ring.
(** Accepts two elements, x and y, and asserts that y is x's inverse. *)
Definition sum_is_inv
:= Ring.sum_is_inv ring.
(** Accepts one argument, x, and asserts that x has a left inverse. *)
Definition sum_has_inv_l := Ring.sum_has_inv_l ring.
(** Accepts one argument, x, and asserts that x has a right inverse. *)
Definition sum_has_inv_r := Ring.sum_has_inv_r ring.
(** Accepts one argument, x, and asserts that x has an inverse. *)
Definition sum_has_inv := Ring.sum_has_inv ring.

(* Specifications: *)
(** Asserts that every element has a right inverse. *)
Theorem sum_inv_r_ex
:  forall x : E, exists y : E, sum_is_inv_r x y.