Proof using.
intros. induction l; simpl in *.
- constructor.
- invc_NoDup. concludes.
break_if; simpl in *; auto.
constructor; auto.
intro. do_in_map.
find_apply_lem_hyp filter_In. intuition.
match goal with | H : _ -> False |- False => apply H end.
apply in_map_iff. eauto.
Qed.

Lemma filter_true_id : forall (f : A -> bool) xs,
(forall x, In x xs -> f x = true) ->
filter f xs = xs.