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

Lemma listd_map h l (Hgh_eq : forall a b', g (f (h a)) b' = g (f a) b') : listd f g b (map h l) = listd f g b l.