induction n; destruct ls; intuition; simpl in *;
intuition.
Qed.

(* Specifications: *)
Theorem pred_firstn_In :
forall (A : Set) ls1 ls2,
list_pred (fun x0 y : list A => exists n : nat, y = firstn n x0) ls1 ls2 ->
forall a,
In a (flatten ls2) -> In a (flatten ls1).