(** Injecting a memory into itself. *)
Definition flat_inj (thr: block) : meminj :=
fun (b: block) => if plt b thr then Some(b, 0) else None.
Definition inject_neutral (thr: block) (m: mem) :=
mem_inj (flat_inj thr) m m.
Remark flat_inj_no_overlap:
forall thr m, meminj_no_overlap (flat_inj thr) m.

Theorem store_inject_neutral:
forall chunk m b ofs v m' thr,
store chunk m b ofs v = Some m' ->
inject_neutral thr m ->
Plt b thr ->
Val.inject (flat_inj thr) v v ->
inject_neutral thr m'.