Proof with auto.
repeat intro.
induction H0; rewrite H in *; simpl...
destruct (y x0)...
destruct (y y0); destruct (y x0)...
eauto.
Qed.

Lemma complementary_filter_perm A (p: A -> bool) (l: list A):
Permutation l (filter p l ++ filter (negb ∘ p) l).