Definition rec_co_def_3 (t : term) : Prop :=
  forall (d : preDTA) (a : ad),
  preDTA_ref_ok d -> reconnaissance d a t -> reconnaissance_co d a a t.Definition rec_co_def_4 (d : preDTA) (l : prec_list) 
  (tl : term_list) : Prop :=
  forall a : ad,
  preDTA_ref_ok d ->
  liste_reconnait d l tl ->
  (forall u : term,
   term_list_occur u tl ->
   forall (d : preDTA) (a : ad),
   preDTA_ref_ok d -> reconnaissance d a u -> reconnaissance_co d a a u) ->
  (forall b : ad, prec_occur l b -> coacc d a b) ->
  liste_reconnait_co d l a tl.

(* Specifications: *)
Lemma rec_co_6 : forall d : preDTA, rec_co_def_4 d prec_empty tnil.
Lemma rec_co_7 : forall (d : preDTA) (a : ad) (la ls : prec_list) (hd : term) (tl : term_list), reconnaissance d a hd -> liste_reconnait d la tl -> rec_co_def_4 d la tl -> rec_co_def_4 d (prec_cons a la ls) (tcons hd tl).
Lemma rec_co_8 : forall (d : preDTA) (a : ad) (la ls : prec_list) (hd : term) (tl : term_list), liste_reconnait d ls (tcons hd tl) -> rec_co_def_4 d ls (tcons hd tl) -> rec_co_def_4 d (prec_cons a la ls) (tcons hd tl).
Lemma rec_co_9 : forall (d : preDTA) (tl : term_list) (a : ad) (l : prec_list), liste_reconnait d l tl -> (forall u : term, term_list_occur u tl -> forall (d : preDTA) (a : ad), preDTA_ref_ok d -> reconnaissance d a u -> reconnaissance_co d a a u) -> (forall b : ad, prec_occur l b -> coacc d a b) -> preDTA_ref_ok d -> liste_reconnait_co d l a tl.
Lemma rec_co_10 : forall (a : ad) (tl : term_list), (forall u : term, term_list_occur u tl -> rec_co_def_3 u) -> rec_co_def_3 (app a tl).
Lemma rec_co : forall (d : preDTA) (a : ad) (t : term), preDTA_ref_ok d -> reconnaissance d a t -> reconnaissance_co d a a t.