Proof
ex_ind
(fun x H
=> prod_0_inv_l
(ex_intro
(fun x
=> prod_is_inv_l 0 x)
x (proj1 H))).

(** Proves that multiplicative inverses, when they exist are always nonzero. *)
Theorem prod_inv_0
:  forall x y : E, prod_is_inv x y -> nonzero y.