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 nf_divp : forall (p : poly A0 eqA ltM) (L : list (poly A0 eqA ltM)), ~ zerop A A0 eqA n ltM p -> ~ zerop A A0 eqA n ltM (nf A A0 A1 eqA plusA invA minusA multA divA cs eqA_dec n ltM ltM_dec os p L) -> exists q : poly A0 eqA ltM, In q (nf A A0 A1 eqA plusA invA minusA multA divA cs eqA_dec n ltM ltM_dec os p L :: L) /\ divp A A0 eqA multA divA n ltM p q /\ ~ zerop A A0 eqA n ltM q.