intuition.
unfold DistSingle_G1, DistSingle_G2.
unfold B1, B2.
inline_first.
comp_skip.
comp_simp.
comp_swap_l.
comp_skip.
inline_first.
comp_skip.
comp_inline_r.
comp_skip.
comp_simp.
intuition.
Qed.
Definition DistSingle_G3_c2 :=
i <-$ [ 0  .. n);
[a, s_A] <-$2 A1;
distHybrid <-$ computeHybrid n i a;
A2 s_A distHybrid.
Definition DistSingle_G3_c1 :=
i <-$ [ 0  .. n);
[a, s_A] <-$2 A1;
distHybrid <-$ computeHybrid n (S i) a;
A2 s_A distHybrid.

(* Specifications: *)
Theorem DistSingle_G3_c2_equiv :
Pr[DistSingle_G2 c2] == Pr[DistSingle_G3_c2].