End CARD_EFFECT.
Section MESS_ALT.
(* consequence sur la structure alternee *)
Variable b0 : Bag_of_message.
Variable s0 : Site.

(* Specifications: *)
Lemma D_collect :
forall s1 s2 : Site,
D_queue (b0 s0 owner) -> D_queue (Collect_message b0 s1 s2 s0 owner).
Lemma D_post_elsewhere :
forall (s1 s2 : Site) (m : Message),
s1 <> s0 \/ s2 <> owner ->
D_queue (b0 s0 owner) -> D_queue (Post_message m b0 s1 s2 s0 owner).
Lemma D_post_dec : D_queue (Post_message dec b0 s0 owner s0 owner).
Lemma alt_collect :
forall s1 s2 : Site,
alternate (b0 s0 owner) -> alternate (Collect_message b0 s1 s2 s0 owner).
Lemma alt_post_elsewhere :
forall (s1 s2 : Site) (m : Message),
s1 <> s0 \/ s2 <> owner ->
alternate (b0 s0 owner) -> alternate (Post_message m b0 s1 s2 s0 owner).
Lemma alt_post_dec :
alternate (b0 s0 owner) -> alternate (Post_message dec b0 s0 owner s0 owner).
Lemma alt_post_inc :
forall s1 : Site,
alternate (b0 s0 owner) ->
b0 s0 owner = empty Message \/
last Message (b0 s0 owner) = value Message dec ->
alternate (Post_message (inc_dec s1) b0 s0 owner s0 owner).