End CARDINAL_EFFECT.
Section WEIGHT_EFFECT2.

(* Specifications: *)
Lemma sigma_weight_post_message :
forall (m : Message) (s1 s2 : Site) (b : Bag_of_message),
sigma_weight (Post_message Message m b s1 s2) =
(sigma_weight b + cardinal_count m)%Z.
Lemma sigma_weight_collect_message :
forall (m : Message) (s1 s2 : Site) (b : Bag_of_message),
first Message (b s1 s2) = value Message m ->
sigma_weight (Collect_message Message b s1 s2) =
(sigma_weight b - cardinal_count m)%Z.
Lemma sigma_weight_post_message :
forall (m : Message) (s1 s2 : Site) (b : Bag_of_message),
sigma_weight (Post_message Message m b s1 s2) =
(sigma_weight b + cardinal_count m)%Z.
Lemma sigma_weight_collect_message :
forall (m : Message) (s1 s2 : Site) (b : Bag_of_message),
first Message (b s1 s2) = value Message m ->
sigma_weight (Collect_message Message b s1 s2) =
(sigma_weight b - cardinal_count m)%Z.
Lemma sigma_weight_post_message :
forall (m : Message) (s1 s2 : Site) (b : Bag_of_message),
sigma_weight (Post_message Message m b s1 s2) =
(sigma_weight b + cardinal_count m)%Z.
Lemma sigma_weight_collect_message :
forall (m : Message) (s1 s2 : Site) (b : Bag_of_message),
first Message (b s1 s2) = value Message m ->
sigma_weight (Collect_message Message b s1 s2) =
(sigma_weight b - cardinal_count m)%Z.
Lemma sigma_weight_post_message :
forall (m : Message) (s1 s2 : Site) (b : Bag_of_message),
sigma_weight (Post_message Message m b s1 s2) =
(sigma_weight b + cardinal_count m)%Z.
Lemma sigma_weight_collect_message :
forall (m : Message) (s1 s2 : Site) (b : Bag_of_message),
first Message (b s1 s2) = value Message m ->
sigma_weight (Collect_message Message b s1 s2) =
(sigma_weight b - cardinal_count m)%Z.