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 forward_unchanged_on: forall m m' (FWD: mem_forward m m')
b ofs (P: ~ Mem.perm m b ofs Max Nonempty),
Mem.unchanged_on (fun b' ofs' => b' = b /\ ofs' = ofs) m m'.