Proof
fun x : E
=> ex_ind
(fun y H
=> ex_ind
(fun z H0
=> let H1
:  op_is_inv_r x y
:=  H0
|| op_is_inv_r x a @a
by op_inv_l_r_eq x y H z H0 in
ex_intro
(fun a => op_is_inv x a)
y
(conj H H1))
(op_inv_r_ex x))
(op_inv_l_ex x).

(* Specifications: *)
(** Proves the left cancellation rule. *)
Theorem op_cancel_l
:  forall x y z : E, z + x = z + y -> x = y.