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

(* Specifications: *)
(*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.
Lemma union_assoc {A} : forall (P Q R: pred A),
((P || Q) || R = P || (Q || R))%pred.