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

Lemma listd_separate : listd f inter (listd g inter b l2) l1 = andp (listd f inter TT l1) (andp (listd g inter TT l2) b).