Proof
fun x
=> prod_0_l x
|| a # x = 0          @a by E_n1_inv_l
|| a = 0              @a by <- prod_sum_distrib_r x {-1} 1
|| ({-1} # x) + a = 0 @a by <- prod_id_l x.

(* Specifications: *)
(** Proves that x * -1 equals the multiplicative inverse of x.  x -1 + x = 0 *)
Theorem prod_x_n1_inv_l
:  forall x : E, sum_is_inv_l x (x # {-1}).