Definition initial_jm_ext {Z} (ora : Z) (prog: program) m (G: funspecs) (n: nat)
(H: Genv.init_mem prog = Some m)
(H1: list_norepet (prog_defs_names prog))
(H2: match_fdecs (prog_funct prog) G) : juicy_mem :=
initial_mem m (initial_core_ext ora (Genv.globalenv prog) G n)
(initial_core_ext_ok _ _ _ _ m H1 H2 H).

Lemma initial_jm_ext_eq : forall {Z} (ora : Z) (prog: program) m (G: funspecs) (n: nat)
(H: Genv.init_mem prog = Some m)
(H1: list_norepet (prog_defs_names prog))
(H2: match_fdecs (prog_funct prog) G),
join (m_phi (initial_jm prog m G n H H1 H2))
(set_ghost (core (m_phi (initial_jm prog m G n H H1 H2))) (Some (ext_ghost ora, NoneP) :: nil) eq_refl)
(m_phi (initial_jm_ext ora prog m G n H H1 H2)).