Proof with try solve [exfalso; auto]; auto.
induction l... simpl; intros [? ?]; split...
Qed.

(* Specifications: *)
Lemma listd_omapl_pred {C : Type} h (g : C -> pred B) l s
(H : forall a, f a s -> match h a with Some a' => g a' s | None => True end) :
listd f inter TT l s -> listd g inter TT (omapl h l) s.