Inductive stable :
list (poly A0 eqA ltM) -> list (poly A0 eqA ltM) -> Prop :=
    stable0 :
      forall P Q : list (poly A0 eqA ltM),
      (forall a : poly A0 eqA ltM,
       Cb A A0 eqA plusA multA eqA_dec n ltM ltM_dec a P ->
       Cb A A0 eqA plusA multA eqA_dec n ltM ltM_dec a Q) ->
      (forall a : poly A0 eqA ltM,
       Cb A A0 eqA plusA multA eqA_dec n ltM ltM_dec a Q ->
       Cb A A0 eqA plusA multA eqA_dec n ltM ltM_dec a P) -> 
      stable P Q.Inductive stable :
list (poly A0 eqA ltM) -> list (poly A0 eqA ltM) -> Prop :=
    stable0 :
      forall P Q : list (poly A0 eqA ltM),
      (forall a : poly A0 eqA ltM,
       Cb A A0 eqA plusA multA eqA_dec n ltM ltM_dec a P ->
       Cb A A0 eqA plusA multA eqA_dec n ltM ltM_dec a Q) ->
      (forall a : poly A0 eqA ltM,
       Cb A A0 eqA plusA multA eqA_dec n ltM ltM_dec a Q ->
       Cb A A0 eqA plusA multA eqA_dec n ltM ltM_dec a P) -> 
      stable P Q.

(* Specifications: *)
Theorem stable_refl : forall Q : list (poly A0 eqA ltM), stable Q Q.
Theorem stable_trans : forall Q y R : list (poly A0 eqA ltM), stable Q y -> stable y R -> stable Q R.
Theorem stable_sym : forall Q R : list (poly A0 eqA ltM), stable R Q -> stable Q R.
Theorem Cb_stable : forall (a : poly A0 eqA ltM) (Q : list (poly A0 eqA ltM)), Cb A A0 eqA plusA multA eqA_dec n ltM ltM_dec a Q -> stable Q (addEnd A A0 eqA n ltM a Q).
Theorem in_incl : forall (A : Set) (p q : list A) (a b : A), incl p q -> In a p -> In a q.