Proof with simpl; auto.
revert l1; induction l2. intros ?; inversion 1. intros l1 H1.
induction l1; auto. simpl merge. simpl. remember (cmp a0 a) as b0; destruct b0...
apply (Hcmp a0 a) in Heqb0; subst.
inversion H1. left; auto. right; apply IHl2; auto.
inversion H1. left; auto.
spec IHl2 (a0 :: l1). simpl in IHl2. right; auto.
right; apply IHl1.
Qed.

(* Specifications: *)
Lemma listd_merge_un' l1 l2 s :
listd f un FF (merge cmp l1 l2) s ->
listd f un FF l1 s \/ listd f un FF l2 s.