intros p L1 H' L2 H'0.
apply Cb_comp with (L1 := L1); auto.
Qed.
Definition reducep (L : list (poly A0 eqA ltM)) (p q : poly A0 eqA ltM) :
Prop :=
reduce A A0 A1 eqA invA minusA multA divA eqA_dec n ltM ltM_dec L
(s2p A A0 eqA n ltM p) (s2p A A0 eqA n ltM q).

Theorem grobner_def :
forall L : list (poly A0 eqA ltM),
Grobner A A0 A1 eqA plusA invA minusA multA divA eqA_dec n ltM ltM_dec L ->
forall p : poly A0 eqA ltM,
Cb A A0 eqA plusA multA eqA_dec n ltM ltM_dec p L ->
zerop A A0 eqA n ltM p \/ (exists q : poly A0 eqA ltM, reducep L p q).