unfold G1, G1_count.
fcf_inline_first.
fcf_to_prhl_eq.
fcf_skip.
fcf_inline_first.
fcf_skip.
eapply (fcf_oracle_eq (fun x y => x = fst y)); trivial; intuition; subst.
unfold O1_count.
fcf_simp.
fcf_ident_expand_l.
fcf_skip.
fcf_spec_ret; intuition.
simpl in *; intuition; subst.
fcf_simp.
simpl.
eapply comp_spec_eq_refl.
Qed.

(* Specifications: *)
Theorem Gi_eq_Gi_count :
forall i,
Pr[Gi i] == Pr[x <-$ Gi_count i; ret (fst x)].