(** 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 block_is_volatile_ren: forall g fg f b1 b2 (Hfg: forall b1 b2 : block, fg b1 = Some b2 -> b1 = b2) (Hge_wd: ge_wd fg g) (Hincr: ren_incr fg f) (Hf: f b1 = Some b2) (Hinjective: forall b1 b1' b2, f b1 = Some b2 -> f b1' = Some b2 -> b1 = b1') (Hvolatile: Senv.block_is_volatile g b1 = false), Senv.block_is_volatile g b2 = false.