Definition initial_jm (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 (Genv.globalenv prog) G n)
           (initial_core_ok _ _ _ m H1 H2 H).

(* Specifications: *)
Lemma initial_jm_age (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) : age (initial_mem m (initial_core (Genv.globalenv prog) G (S n)) (initial_core_ok _ _ _ m H1 H2 H)) (initial_mem m (initial_core (Genv.globalenv prog) G n ) (initial_core_ok _ _ _ m H1 H2 H)).
Lemma initial_core_ext_ok: forall {Z} (ora : Z) (prog: program) G n m, list_norepet (prog_defs_names prog) -> match_fdecs (prog_funct prog) G -> Genv.init_mem prog = Some m -> initial_rmap_ok m (initial_core_ext ora (Genv.globalenv prog) G n).