(*this is showing the similarity between JM's initial machine and CoreSemantics initial machine*)
Definition CoreInitial U r := (semantics.initial_core (MachineSemantics U r)).

Lemma initial_equivalence: forall u r n
(g:JuicyMachineModule.THE_JUICY_MACHINE.JSEM.ThreadPool.SEM.G)
b,
genv_genv g = Genv.globalenv (Ctypes.program_of_program prog) ->
b =  projT1 ((spr CPROOF)) ->
r = Some (juicy_mem.m_phi (initial_jm CPROOF  n)) ->
CoreInitial u r 0 g
(juicy_mem.m_dry (initial_jm CPROOF  n)) (Vptr b Integers.Int.zero) nil =
Some (u, nil, initial_machine_state CPROOF n, None).