(** The simulation diagram. *)
Fixpoint seq_left_depth (s: Csharpminor.stmt) : nat :=
match s with
| Csharpminor.Sseq s1 s2 => S (seq_left_depth s1)
| _ => O
end.
Definition measure (S: Csharpminor.state) : nat :=
match S with
| Csharpminor.State fn s k e le m => seq_left_depth s
| _ => O
end.

Lemma match_globalenvs_init:
forall m,
Genv.init_mem prog = Some m ->
match_globalenvs (Mem.flat_inj (Mem.nextblock m)) (Mem.nextblock m).