intros Q p q H' H'0.
apply
reduce_mults_inv_lem
with
(p := mults (A:=A) multA (n:=n) (invTerm (A:=A) invA (n:=n) (T1 A1 n)) p);
auto.
Qed.
Definition irreducible (Q : list (poly A0 eqA ltM))
(p : list (Term A n)) := forall q : list (Term A n), ~ reduce Q p q.

(* Specifications: *)
Lemma irreducible_inv_px_l :
forall (Q : list (poly A0 eqA ltM)) (a : Term A n) (p : list (Term A n)),
canonical A0 eqA ltM (pX a p) ->
irreducible Q (pX a p) -> irreducible Q (pX a (pO A n)).