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.