Remark lem_redln_cons_gen :
 forall (aP R Q : list (poly A0 eqA ltM)) (a b : poly A0 eqA ltM),
 In a aP ->
 In b aP ->
 redIn a b aP Q R ->
 forall (c : poly A0 eqA ltM) (Q1 : list (poly A0 eqA ltM)),
 incl
   (addEnd A A0 eqA n ltM
      (nf A A0 A1 eqA plusA invA minusA multA divA cs eqA_dec n ltM ltM_dec
         os c aP) aP) R ->
 Q = c :: Q1 ->
 redIn a b
   (addEnd A A0 eqA n ltM
      (nf A A0 A1 eqA plusA invA minusA multA divA cs eqA_dec n ltM ltM_dec
         os c aP) aP) Q1 R.

Theorem addEnd_incl : forall (a : poly A0 eqA ltM) (L1 L2 : list (poly A0 eqA ltM)), incl (a :: L1) L2 -> incl (addEnd A A0 eqA n ltM a L1) L2.