Remark add_reduce :
 forall x y a u w z : Z,
 (y - a)%Z = (z + w - u)%Z -> (x + y - a - 1)%Z = (x + z + w - u - 1)%Z.

(* Specifications: *)
Lemma invariant4 : forall c : Config, legal c -> st c owner = (sigma_receive_table (rt c) + sigma_table Site LS Z (Z_id Site) (fun s1 : Site => reduce Message dec_count (bm c s1 owner)) + sigma_table Site LS Z (Z_id Site) (fun s2 : Site => reduce Message copy_count (bm c owner s2)) - sigma_table Site LS Z (Z_id Site) (fun s1 : Site => reduce Message new_inc_count (bm c s1 owner)) - 1)%Z.
Lemma invariant4 : forall c : Config, legal c -> st c owner = (sigma_receive_table (rt c) + sigma_table Site LS Z (Z_id Site) (fun s1 : Site => reduce Message dec_count (bm c s1 owner)) + sigma_table Site LS Z (Z_id Site) (fun s2 : Site => reduce Message copy_count (bm c owner s2)) - sigma_table Site LS Z (Z_id Site) (fun s1 : Site => reduce Message new_inc_count (bm c s1 owner)) - 1)%Z.
Lemma invariant4 : forall c : Config, legal c -> st c owner = (sigma_receive_table (rt c) + sigma_table Site LS Z (Z_id Site) (fun s1 : Site => reduce Message dec_count (bm c s1 owner)) + sigma_table Site LS Z (Z_id Site) (fun s2 : Site => reduce Message copy_count (bm c owner s2)) - sigma_table Site LS Z (Z_id Site) (fun s1 : Site => reduce Message new_inc_count (bm c s1 owner)) - 1)%Z.