Definition prog_var_block (rho: environ) (il: list ident) (b: block) : Prop :=
  Exists (fun id => match ge_of rho id with Some b' => b'=b | _ => False end) il.

Lemma initial_core_rev: forall (gev: Genv.t fundef type) G n (vl: list (ident * globdef fundef type)) (H: list_norepet (map fst (rev vl))) (SAME_IDS : match_fdecs (prog_funct' vl) (rev G)), initial_core gev G n = initial_core gev (rev G) n.