(*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).

(* 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.