Proof
fun x y
=> ((proj2 (op_neg_def x))
|| x + a = 0           @a by op_id_l (- x)
|| x + (a + - x) = 0 @a by proj2 (op_neg_def y)
|| x + a = 0           @a by op_is_assoc y (- y) (- x)
|| a = 0               @a by <- op_is_assoc x y (- y + - x)).

(* Specifications: *)
(** Proves that the inverse of x + y is -y + -x. *)
Theorem op_neg_distrib_inv
:  forall x y : E, op_is_inv (x + y) (- y + - x).