Remark lem_redln_cons :
 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)),
 Q = c :: Q1 ->
 red A A0 A1 eqA invA minusA multA divA eqA_dec n ltM ltM_dec c R ->
 redIn a b aP Q1 R.

(* Specifications: *)
Theorem redln_cons : forall (aP R Q : list (poly A0 eqA ltM)) (a b c : poly A0 eqA ltM), In a aP -> In b aP -> redIn a b aP (c :: Q) R -> red A A0 A1 eqA invA minusA multA divA eqA_dec n ltM ltM_dec c R -> redIn a b aP Q R.
Theorem redInclP : forall (P Q R : list (poly A0 eqA ltM)) (a b : poly A0 eqA ltM), redIn a b P Q R -> forall P1 : list (poly A0 eqA ltM), incl P P1 -> redIn a b P1 Q R.
Theorem redInInclQ : forall (P Q R : list (poly A0 eqA ltM)) (a b : poly A0 eqA ltM), redIn a b P Q R -> forall Q1 : list (poly A0 eqA ltM), incl Q Q1 -> redIn a b P Q1 R.
Theorem redInclR : forall (P Q R : list (poly A0 eqA ltM)) (a b : poly A0 eqA ltM), redIn a b P Q R -> forall R1 : list (poly A0 eqA ltM), incl R R1 -> redIn a b P Q R1.