Definition memren := block -> option block.Definition ren_incr f1 f2 :=
    forall (b b' : block),
      f1 b = Some b' -> f2 b = Some b'.Definition ren_separated (f f' : memren) m1 m2 :=
    forall (b1 b2 : block),
      f b1 = None ->
      f' b1 = Some b2 ->
      ~ Mem.valid_block m1 b1 /\ ~ Mem.valid_block m2 b2.Definition ren_domain_incr (f1 f2: memren) :=
    forall b,
      f1 b -> f2 b.(** Defining the domain of a renaming with respect to a memory*)
  Definition domain_memren (f: memren) m :=
    forall b, Mem.valid_block m b <-> isSome (f b).

Lemma domain_memren_trans: forall f f' m m', domain_memren f m -> domain_memren f m' -> domain_memren f' m' -> domain_memren f' m.