intros a p Q H'; elim H'; auto.
intros a0 b p0 H'0 H'1 H'2; exists b; exists p0; auto.
Qed.
Inductive reducehead (Q : list (poly A0 eqA ltM)) :
list (Term A n) -> list (Term A n) -> Prop :=
reduceheadO :
forall (a b : Term A n) (nZb : ~ zeroP (A:=A) A0 eqA (n:=n) b)
(p q : list (Term A n)),
pickinSetp a (pX b q) Q ->
reducehead Q (pX a p)
(spminusf A A0 A1 eqA invA minusA multA divA eqA_dec n ltM ltM_dec a
b nZb p q).
Hint Resolve reduceheadO.

(* Specifications: *)
Lemma pick_inv_in :
forall (Q : list (poly A0 eqA ltM)) (a : Term A n) (p : list (Term A n)),
pickinSetp a p Q -> inPolySet p Q.