Definition app_assoc_r := app_ass.(*********************)
Definition app_assoc_l := ass_app.

(* Specifications: *)
Lemma len_cons_not_O : forall (b : A) (v : list A) (l : nat), (*******************) len (b :: v) l -> l <> 0.
Lemma len_nil_inv : forall l : nat, len nil l -> l = 0.
Lemma not_len_nil_Sn : forall l : nat, ~ len nil (S l).
Lemma len_app : forall (l1 l2 : nat) (v1 v2 : list A), (************) len v1 l1 -> len v2 l2 -> len (v1 ++ v2) (l1 + l2).
Lemma len_length : forall v : list A, len v (length v).
Lemma length_eq : forall v1 v2 : list A, v1 = v2 -> length v1 = length v2.
Lemma not_nil : forall v : list A, length v <> 0 -> v <> nil.
Lemma length_app : forall v1 v2 : list A, (***************) length (v1 ++ v2) = length v1 + length v2.
Lemma v_not_nil_length : forall v : list A, (*********************) v <> nil -> 1 <= length v.
Lemma le_SO_length_v : forall v : list A, (*******************) length v <> 0 -> 1 <= length v.