(** 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 corestep_wd: forall the_ge (Hsafe : safe_genv the_ge) c m c' m' f fg (Hwd: core_wd f c) (Hmem_wd: valid_mem m) (Hge_wd: ge_wd fg the_ge) (Hincr: ren_domain_incr fg f) (Hdomain: domain_memren f m) (Hcorestep: corestep (Asm_core_sem the_ge) c m c' m'), valid_mem m' /\ (exists f', ren_domain_incr f f' /\ domain_memren f' m') /\ forall f', domain_memren f' m' -> core_wd f' c'.