(** Injections on registers *)

  Definition reg_ren f (r:PregEq.t) (rs rs' : regset) : Prop :=
    val_obs f (Pregmap.get r rs) (Pregmap.get r rs').Definition regset_ren f rs rs' : Prop :=
    forall r, reg_ren f r rs rs'.Definition core_inj f c c' :=
    match c, c' with State rs _, State rs' _ => regset_ren f rs rs' end.

Lemma initial_core_wd : forall the_ge m m' (f fg : memren) (vf : val) args (c_new : state) h, valid_mem m -> domain_memren f m -> initial_core (Asm_core_sem the_ge) h m c_new m' vf args -> valid_val_list f args -> ge_wd fg the_ge -> ren_domain_incr fg f -> valid_mem m' /\ (exists f', ren_domain_incr f f' /\ domain_memren f' m') /\ forall f', domain_memren f' m' -> core_wd f' c_new.