Definition pl_tl_length_rec_def_0 (n : nat) :=
forall (d : preDTA) (pl : prec_list) (tl : term_list),
pl_tl_length pl n -> liste_reconnait d pl tl -> n = lst_length tl.
Definition pl_tl_length_rec_def_1 (d : preDTA) (pl : prec_list)
(tl : term_list) :=
forall n : nat,
pl_tl_length_rec_def_0 n ->
pl_tl_length pl (S n) -> liste_reconnait d pl tl -> S n = lst_length tl.

(* Specifications: *)
Lemma pl_tl_length_rec_0 : pl_tl_length_rec_def_0 0.
Lemma pl_tl_length_rec_1 :
forall d : preDTA, pl_tl_length_rec_def_1 d prec_empty tnil.
Lemma pl_tl_length_rec_2 :
forall (d : preDTA) (a : ad) (la ls : prec_list) (hd : term)
(tl : term_list),
reconnaissance d a hd ->
liste_reconnait d la tl ->
pl_tl_length_rec_def_1 d la tl ->
pl_tl_length_rec_def_1 d (prec_cons a la ls) (tcons hd tl).
Lemma pl_tl_length_rec_3 :
forall (d : preDTA) (a : ad) (la ls : prec_list) (hd : term)
(tl : term_list),
liste_reconnait d ls (tcons hd tl) ->
pl_tl_length_rec_def_1 d ls (tcons hd tl) ->
pl_tl_length_rec_def_1 d (prec_cons a la ls) (tcons hd tl).
Lemma pl_tl_length_rec_4 :
forall (p : preDTA) (p0 : prec_list) (t : term_list),
liste_reconnait p p0 t -> pl_tl_length_rec_def_1 p p0 t.
Lemma pl_tl_length_rec_5 :
forall n : nat, pl_tl_length_rec_def_0 n -> pl_tl_length_rec_def_0 (S n).
Lemma pl_tl_length_rec_6 :
forall (d : preDTA) (pl : prec_list) (tl : term_list) (n : nat),
pl_tl_length pl n -> liste_reconnait d pl tl -> n = lst_length tl.