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

Lemma nth_error_app {A}: forall n (l:list A) d, nth_error l n = Some d -> forall ll, nth_error (l ++ ll) n = Some d.