(*Program Definition Asm_core_sem (ge : genv) : @CoreSemantics regset mem := @Build_CoreSemantics _ _ (fun _ => Asm_initial_core ge) (Asm_at_external ge) (fun v q m => Asm_after_external ge v q) (fun _ _ => False) (Asm_step ge) _ (Asm_corestep_not_at_external ge).*)
Definition Asm_core_sem (ge : genv) := sem2coresem (part_semantics ge) (Asm_corestep_not_halted ge).
Section ASM_MEMSEM.

(* Specifications: *)
Lemma exec_load_mem_step ge ch m a rs rd rs' m': forall
(EI: exec_load ge ch m a rs rd = Next rs' m'),
mem_step m m'.
Lemma exec_store_mem_step ge ch m a rs rs0 vals rs' m': forall
(ES: exec_store ge ch m a rs rs0 vals = Next rs' m'),
mem_step m m'.
Lemma goto_label_mem_same c0 l rs m rs' m': forall
(G: goto_label c0 l rs m = Next rs' m'), m=m'.
Lemma goto_label_mem_step c0 l rs m rs' m': forall
(G: goto_label c0 l rs m = Next rs' m'),
mem_step m m'.
Lemma exec_instr_mem_step ge c i rs m rs' m': forall
(EI: exec_instr ge c i rs m = Next rs' m'),
mem_step m m'.
Lemma ev_elim_mem_step: forall t m m', ev_elim m t m' -> mem_step m m'.
Lemma get_extcall_arg_spec : forall r m l v,
get_extcall_arg r m l = Some v <-> extcall_arg r m l v.
Lemma get_extcall_arguments_spec : forall r m sig args,
get_extcall_arguments r m (Conventions1.loc_arguments sig) = Some args <->
extcall_arguments r m sig args.