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

Lemma listd_app {A T} f g (b : T) (l l' : list A) : listd f g b (l ++ l') = listd f g (listd f g b l') l.