Definition Dmult :
  forall (a : Term A n) (nZa : ~ zeroP (A:=A) A0 eqA (n:=n) a),
  list (Term A n) -> list (Term A n) -> list (Term A n).

Theorem minuspf_spoly_in : forall (a b : Term A n) (nZa : ~ zeroP (A:=A) A0 eqA (n:=n) a) (nZb : ~ zeroP (A:=A) A0 eqA (n:=n) b), eqT (ppc (A:=A) A1 (n:=n) a b) (multTerm (A:=A) multA (n:=n) a b) -> forall p q : list (Term A n), canonical A0 eqA ltM p -> canonical A0 eqA ltM q -> (forall c : Term A n, In c p -> ltT ltM c (multTerm (A:=A) multA (n:=n) a b) /\ eqT c (multTerm (A:=A) multA (n:=n) (divTerm (A:=A) (A0:=A0) (eqA:=eqA) divA (n:=n) c (b:=b) nZb) b)) -> (forall c : Term A n, In c q -> ltT ltM c (multTerm (A:=A) multA (n:=n) a b) /\ eqT c (multTerm (A:=A) multA (n:=n) (divTerm (A:=A) (A0:=A0) (eqA:=eqA) divA (n:=n) c (b:=a) nZa) a)) -> forall c : Term A n, In c p -> In c (minuspf A A0 A1 eqA invA minusA multA eqA_dec n ltM ltM_dec p q).