Section SUM_REDUCE.
Variable Data : Set.
Variable s0 : Site.
Let Bag_of_message := Bag_of_Data Data.
Variable f : Data -> Z.
Definition sigma_reduce (bom : Bag_of_message) :=
sigma Site LS (fun si : Site => reduce Data f (bom s0 si)).

Lemma sigma_reduce_pos :
forall (s0 s1 : Site) (bom : Bag_of_message),
(forall m : Data, (f m > 0)%Z) -> (sigma_reduce bom >= 0)%Z.