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 meminj_preserves_globals_ind_compose: forall {F1 V1 F2 V2} (ge1: Genv.t F1 V1) (ge2: Genv.t F2 V2) j1 j2 (G: genvs_domain_eq ge1 ge2) (PG1: meminj_preserves_globals_ind (genv2blocks ge1) j1) (PG2: meminj_preserves_globals_ind (genv2blocks ge2) j2), meminj_preserves_globals_ind (genv2blocks ge1) (compose_meminj j1 j2).