Definition Forall_tl (A : Type) (P : A -> Prop) (a : A) (l : list A)
           (H : Forall P (a :: l)): Forall P l.

Lemma firstn_exact : forall {A : Type} (l1 l2 : list A) (n : nat), (length l1 = n)%nat -> firstn n (l1 ++ l2) = l1.