Definition MATCH (d:CMinSel_core) mu c1 m1 c2 m2:Prop :=
match_states (restrict (as_inj mu) (vis mu)) c1 m1 c2 m2 /\
REACH_closed m1 (vis mu) /\
meminj_preserves_globals ge (as_inj mu) /\
globalfunction_ptr_inject (as_inj mu) /\
(forall b, isGlobalBlock ge b = true -> frgnBlocksSrc mu b = true) /\
sm_valid mu m1 m2 /\ SM_wd mu /\ Mem.inject (as_inj mu) m1 m2.

Lemma MATCH_effcore_diagram: forall
st1 m1 st1' m1' (U1 : block -> Z -> bool)
(CS: effstep cminsel_eff_sem ge U1 st1 m1 st1' m1')
st2 mu m2
(UHyp: forall b z, U1 b z = true ->
Mem.valid_block m1 b -> vis mu b = true)
(MTCH: MATCH st1 mu st1 m1 st2 m2),
exists st2' m2' mu', exists U2 : block -> Z -> bool,
(effstep_plus rtl_eff_sem tge U2 st2 m2 st2' m2' \/
effstep_star rtl_eff_sem tge U2 st2 m2 st2' m2' /\ lt_state st1' st1)
/\ intern_incr mu mu' /\
sm_inject_separated mu mu' m1 m2 /\
sm_locally_allocated mu mu' m1 m2 m1' m2' /\
MATCH st1' mu' st1' m1' st2' m2' /\
(forall (b : block) (ofs : Z),
U2 b ofs = true ->
Mem.valid_block m2 b /\
(locBlocksTgt mu b = false ->
exists (b1 : block) (delta1 : Z),
foreign_of mu b1 = Some (b, delta1) /\
U1 b1 (ofs - delta1)%Z = true /\
Mem.perm m1 b1 (ofs - delta1) Max Nonempty)).