intros ? ? ge mu mu' mu'' smwd incr gsep12 gsep23 b1 b3 d3 map1 map3.
assert (INCR: Values.inject_incr (as_inj mu') (as_inj mu'')) by (apply intern_incr_as_inj; auto).
eapply gsep_trans; eauto.
Qed.

Lemma intern_incr_globals_separate
{F V:Type} (ge: Genv.t F V) mu nu:
forall (INC: intern_incr mu nu)
(PG: meminj_preserves_globals ge (as_inj mu))
(GF: forall b, isGlobalBlock ge b = true -> frgnBlocksSrc mu b = true)
(WD: SM_wd mu) (WDnu: SM_wd nu),
globals_separate ge mu nu.