revert a; induction l; simpl; intros a' C D...
destruct D as [D|D]; [rewrite <- D|].
solve [destruct C as [C1 C2]; auto]. solve[destruct C; apply IHl; auto].
Qed.

(* Specifications: *)
Lemma listd_In_pred_un l s :
(exists a, In a l /\ f a s) \/ b s -> listd f un b l s.