(** Relating initial memory states *)
(* Remark genv_find_def_exists: forall (F V: Type) (p: AST.program F V) b, Plt b (Genv.genv_next (Genv.globalenv p)) -> exists gd, Genv.find_def (Genv.globalenv p) b = Some gd. *)

Lemma init_meminj_invert_strong:
forall b b' delta,
init_meminj b = Some(b', delta) ->
delta = 0 /\
exists id gd,
Genv.find_symbol ge id = Some b
/\ Genv.find_symbol tge id = Some b'
/\ Genv.find_def ge b = Some gd
/\ Genv.find_def tge b' = Some gd
/\ (forall i, ref_def gd i -> kept i).