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.