Set Bullet Behavior "Strict Subproofs".
Opaque upto.

Lemma sepcon_filter_combine : forall {A} P (l : list A) l', Zlength l' = Zlength l ->
fold_right sepcon emp (map P l) =
fold_right sepcon emp (map P (map snd (filter fst (combine l' l)))) *
fold_right sepcon emp (map P (map snd (filter (fun '(b, _) => negb b) (combine l' l)))).