intros L p H'.
apply
zerop_elim_cb
with
(p := nf A A0 A1 eqA plusA invA minusA multA divA cs eqA_dec n ltM
ltM_dec os p L); auto.
apply Cb_nf.
Qed.
Hint Resolve zerop_nf_cb.
Definition redacc :
list (poly A0 eqA ltM) -> list (poly A0 eqA ltM) -> list (poly A0 eqA ltM).
intros H'; elim H'.
intros L; exact (nil (A:=poly A0 eqA ltM)).
intros a p Rec Acc.
apply
LetP
with
(A := poly A0 eqA ltM)
(h := nf A A0 A1 eqA plusA invA minusA multA divA cs eqA_dec n ltM
ltM_dec os a (p ++ Acc)).
intros u H'0; case (zerop_dec A A0 eqA n ltM u); intros Z.
exact (Rec Acc).
exact (u :: Rec (u :: Acc)).
Defined.

(* Specifications: *)
Theorem redacc_cb :
forall (L1 L2 : list (poly A0 eqA ltM)) (p : poly A0 eqA ltM),
In p (redacc L1 L2) ->
Cb A A0 eqA plusA multA eqA_dec n ltM ltM_dec p (L1 ++ L2).