Proof conj op_id_l op_id_r.
(** Accepts two group elements, x and y, and asserts that y is x's left inverse. *)
Definition op_is_inv_l := Monoid.is_inv_l E {+} 0 op_id.
(** Accepts two group elements, x and y, and asserts that y is x's right inverse. *)
Definition op_is_inv_r := Monoid.is_inv_r E {+} 0 op_id.
(** Accepts two group elements, x and y, and asserts that y is x's inverse. *)
Definition op_is_inv := Monoid.is_inv E {+} 0 op_id.

(* Specifications: *)
(** Proves that every element has a right inverse. *)
Theorem op_inv_r_ex
:  forall x : E, exists y : E, op_is_inv_r x y.