intros aP R Q i H' H'0 b H'1 H'2.
lapply (spolyp_cons_genPcP0 aP R Q i);
[ intros H'7; lapply H'7;
[ intros H'8; elim (H'8 b);
[ intros c E; elim E; intros H'12 H'13; elim H'13; intros H'14 H'15;
elim H'14;
[ intros H'16; clear H'14 H'13 E H'7
| intros H'16; clear H'14 H'13 E H'7 ]
| clear H'7
| clear H'7 ]
| clear H'7 ]
| idtac ]; auto.
exists c; split; [ idtac | split; [ left | idtac ] ]; auto.
exists c; split; [ idtac | split; [ right | idtac ] ]; auto.
apply foreigner_red; auto.
Qed.

(* Specifications: *)
Theorem Cb_genPcP :
forall (i : poly A0 eqA ltM) (P Q R S : list (poly A0 eqA ltM)),
genPcP i P R Q ->
Cb A A0 eqA plusA multA eqA_dec n ltM ltM_dec i S ->
(forall a : poly A0 eqA ltM,
In a P -> Cb A A0 eqA plusA multA eqA_dec n ltM ltM_dec a S) ->
(forall a : poly A0 eqA ltM,
In a R -> Cb A A0 eqA plusA multA eqA_dec n ltM ltM_dec a S) ->
forall a : poly A0 eqA ltM,
In a Q -> Cb A A0 eqA plusA multA eqA_dec n ltM ltM_dec a S.