Definition genvs_domain_eq {F1 F2 V1 V2: Type} (ge1: Genv.t F1 V1) (ge2: Genv.t F2 V2) :=
  (forall b, fst (genv2blocks ge1) b <-> fst (genv2blocks ge2) b) /\
  (forall b, snd (genv2blocks ge1) b <-> snd (genv2blocks ge2) b).

Lemma unchanged_on_validblock: forall m m' (U V: Values.block -> Z -> Prop) (UV: forall b ofs, Mem.valid_block m b -> (U b ofs -> V b ofs)), Mem.unchanged_on V m m' -> Mem.unchanged_on U m m'.