(** Represents strongly-specified negation. *)
Definition op_neg_strong
  :  forall x : E, { y | op_is_inv x y }
  := fun x => Monoid.op_neg_strong op_monoid x (op_inv_ex x).(** Represents negation. *)
Definition op_neg
  :  E -> E
  := fun x => Monoid.op_neg op_monoid x (op_inv_ex x).Notation "{-}" := (Group.op_neg _) : group_scope.Notation "- x" := (Group.op_neg _ x) : group_scope.

Theorem op_neg_def : forall x : E, op_is_inv x (- x).