(* CNS de reconnaissance d'une liste de terme par une prec_list *)

(* Specifications: *)
Lemma pl_path_rec_equiv_0_0 :
forall d : preDTA, pl_path_rec_equiv_0_def d prec_empty tnil.
Lemma pl_path_rec_equiv_0_1 :
forall (d : preDTA) (a : ad) (la ls : prec_list) (hd : term)
(tl : term_list),
reconnaissance d a hd ->
liste_reconnait d la tl ->
pl_path_rec_equiv_0_def d la tl ->
pl_path_rec_equiv_0_def d (prec_cons a la ls) (tcons hd tl).
Lemma pl_path_rec_equiv_0_2 :
forall (d : preDTA) (a : ad) (la ls : prec_list) (hd : term)
(tl : term_list),
liste_reconnait d ls (tcons hd tl) ->
pl_path_rec_equiv_0_def d ls (tcons hd tl) ->
pl_path_rec_equiv_0_def d (prec_cons a la ls) (tcons hd tl).
Lemma pl_path_rec_equiv_0_3 :
forall (p : preDTA) (p0 : prec_list) (t : term_list),
liste_reconnait p p0 t -> pl_path_rec_equiv_0_def p p0 t.
Lemma pl_path_rec_equiv_0 :
forall (d : preDTA) (pl : prec_list) (tl : term_list),
liste_reconnait d pl tl ->
exists plp : pl_path, pl_path_incl plp pl /\ pl_path_recon d tl plp.