(* 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_1_1 :
forall (d : preDTA) (a c : ad) (t : term_list) (n : nat),
rec_term d a (app c t) (S n) = true ->
exists p : prec_list, rec_list_terms d p t n = true.