Proof with try solve [exfalso; auto]; auto.
revert xs ys H; induction l... simpl. inversion 1; auto.
intros xs ys; simpl; intros H1 [H2 H3].
remember (partition h l) as c. destruct c. destruct (h a); inversion H1; subst.
spec IHl l0 ys. destruct IHl... split; auto. split; auto.
spec IHl xs l1. destruct IHl... split; auto. split; auto.
Qed.
End ListDenotePred.
Section ListDenotePred1.
Context {A B : Type}.
Variables (f : A -> pred B).

(* Specifications: *)
Lemma listd_unfold_app_inter b l l' :
listd f inter b (l ++ l') = (listd f inter TT l && listd f inter b l')%pred.