(* Distributivity of diamond over various operators *)

(* Specifications: *)
Lemma diamond_or {A} `{ageable A} : forall R (P Q:pred A),
diamond R (P || Q) = diamond R P || diamond R Q.
Lemma diamond_ex {A} `{ageable A} : forall B R (F:B -> pred A),
diamond R (exp F) = EX x:B, diamond R (F x).
Lemma diamond_and {A} `{ageable A} : forall R (P Q:pred A),
diamond R (P && Q) |-- diamond R P && diamond R Q.
Lemma diamond_all {A} `{ageable A} : forall B R (F:B->pred A),
diamond R (allp F) |-- ALL x:B, diamond R (F x).