(* lemmes d'équivalence sémantique entre la fonction calculatoire (Fixpoint) *)
(* et la définition par Inductive *)

Definition sem_equiv_prop_t (t : term) :=
  forall (d : preDTA) (a : ad) (n : nat),
  rec_term d a t n = true -> reconnaissance d a t.Definition sem_equiv_prop_l (l : term_list) :=
  forall (d : preDTA) (p : prec_list) (n : nat),
  rec_list_terms d p l n = true -> liste_reconnait d p l.

Lemma semantic_equiv_0_2 : forall (d : preDTA) (a a' : ad) (l : term_list) (n : nat) (s : state) (p : prec_list), rec_term d a (app a' l) (S n) = true -> MapGet state d a = Some s -> MapGet prec_list s a' = Some p -> rec_list_terms d p l n = true.