Proof using.
intros. subst.
eapply filter_In; eauto.
Qed.

(* Specifications: *)
Lemma filter_partition :
forall (l1 : list A) f l2 x l1' l2',
NoDup (l1 ++ x :: l2) ->
filter f (l1 ++ x :: l2) = (l1' ++ x :: l2') ->
filter f l1 = l1' /\ filter f l2 = l2'.