End REDUCE_EFFECT.
Section SIG_SEND.
Let Send_T := Site -> Z.
Definition sigma_send_table (t : Send_T) :=
sigma_table Site LS Z (fun (s : Site) (x : Z) => x) t.
Definition Inc_send_table (t0 : Send_T) (s0 : Site) :=
update_table Site eq_site_dec Z t0 s0 (t0 s0 + 1)%Z.
Definition Dec_send_table (t0 : Send_T) (s0 : Site) :=
update_table Site eq_site_dec Z t0 s0 (t0 s0 - 1)%Z.
Let Date_T := Site -> nat.
Definition Set_date_table (d0 : Date_T) (s0 : Site)
(new_date : nat) := update_table Site eq_site_dec nat d0 s0 new_date.
End SIG_SEND.
Section SEND_EFFECT.
Let Send_T := Site -> Z.

(* Specifications: *)
Lemma sigma_inc_send_table :
forall (t : Send_T) (s : Site),
sigma_send_table (Inc_send_table t s) = (sigma_send_table t + 1)%Z.
Lemma sigma_dec_send_table :
forall (t : Send_T) (s : Site),
sigma_send_table (Dec_send_table t s) = (sigma_send_table t - 1)%Z.