(* general listd lemmas *)
Section ListDenoteLems.
Context {A T : Type}.
Variables (f : A -> T) (g : T -> T -> T) (b : T).

(* Specifications: *)
Lemma listd_nil : listd f g b nil = b.
Lemma listd_flat_map h l (H : forall a b', g (f a) b' = listd f g b' (h a)) :
listd f g b l = listd f g b (flat_map h l).