(**
  Accepts two group elements, x and y, and
  asserts that y is x's left inverse.
*)
Definition op_is_inv_l := Monoid.op_is_inv_l op_monoid.(**
  Accepts two group elements, x and y, and
  asserts that y is x's right inverse.
*)
Definition op_is_inv_r := Monoid.op_is_inv_r op_monoid.

(* Specifications: *)
Theorem op_id_l_uniq : forall x : E, (op_is_id_l x) -> x = 0.
Theorem op_id_r_uniq : forall x : E, (op_is_id_r x) -> x = 0.
Theorem op_id_uniq : forall x : E, (op_is_id x) -> x = 0.
Theorem op_intro_l : forall x y z : E, x = y -> z + x = z + y.
Theorem op_intro_r : forall x y z : E, x = y -> x + z = y + z.