Fixpoint list_denote l : T :=
  match l with nil => b | x :: l' => g (f x) (list_denote l')
  end.Notation "'un'" := (@orp _).

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.