Proof with auto. rewrite listd_app, listd_unfold_or... Qed.
End ListDenoteProp1.
(* next - when f : A -> pred B *)

(*these two lemmas should go in predicates_tc, which should maybe be called just predicates*)
Lemma union_com {A} : forall (P Q: pred A), ((P || Q) = (Q || P))%pred.