(*** ***)
Definition a_fun (s : Site) := f s1 s (t s1 s).Remark sigma2_change_1 :
 forall (l : list Site) (n0 : Z),
 only_once Site eq_site_dec s0 l ->
 (sigma Site l (change_x0 Site Z eq_site_dec a_fun s0 n0) + a_fun s0 - n0)%Z =
 sigma Site l a_fun.Remark add_reduce1 :
 forall x y z a b c : Z, (x + y - z - a + z)%Z = (x + y - a)%Z.Remark add_reduce2 :
 forall x y z a b c : Z,
 (x + y)%Z = (z + a - b + c)%Z -> (x + y)%Z = (a + z - b + c)%Z.

Lemma permute_sigma_reduce : forall q : queue Data, sigma Site LS0 (fun s : Site => reduce Data (f s s1 s2) q) = reduce Data (fun d : Data => sigma Site LS0 (fun s : Site => f s s1 s2 d)) q.