(* conservation de la reconnaissance d'un terme si on met plus d'essence ... *)

Definition invar_term (t : term) : Prop :=
  forall (n m : nat) (d : preDTA) (a : ad),
  rec_term d a t n = true -> n <= m -> rec_term d a t m = true.Definition invar_list (tl : term_list) : Prop :=
  forall (n m : nat) (d : preDTA) (p : prec_list),
  rec_list_terms d p tl n = true -> n <= m -> rec_list_terms d p tl m = true.

Lemma invar_2_2 : forall (d : preDTA) (a : ad) (la ls : prec_list) (hd : term) (tl : term_list) (n : nat), rec_list_terms d ls (tcons hd tl) n = true \/ rec_term d a hd n = true /\ rec_list_terms d la tl n = true -> rec_list_terms d (prec_cons a la ls) (tcons hd tl) (S n) = true.