Definition pl_path_incl_length_def (plp : pl_path)
(pl : prec_list) : Prop :=
forall n : nat,
pl_path_incl plp pl -> pl_tl_length pl n -> pl_path_length plp = n.

(* Specifications: *)
Lemma pl_path_incl_length_0 : pl_path_incl_length_def pl_path_nil prec_empty.
Lemma pl_path_incl_length_1 :
forall (plp : pl_path) (a : ad) (la ls : prec_list),
pl_path_incl plp la ->
pl_path_incl_length_def plp la ->
pl_path_incl_length_def (pl_path_cons a plp) (prec_cons a la ls).
Lemma pl_path_incl_length_2 :
forall (plp : pl_path) (a : ad) (la ls : prec_list),
pl_path_incl plp ls ->
pl_path_incl_length_def plp ls ->
plp <> pl_path_nil -> pl_path_incl_length_def plp (prec_cons a la ls).
Lemma pl_path_incl_length_3 :
forall (p : pl_path) (p0 : prec_list),
pl_path_incl p p0 -> pl_path_incl_length_def p p0.
Lemma pl_path_incl_length :
forall (plp : pl_path) (pl : prec_list) (n : nat),
pl_path_incl plp pl -> pl_tl_length pl n -> pl_path_length plp = n.