Section FIND_LABEL.
Variable lbl: label.
Variable tyret: type.
End FIND_LABEL.
(** Properties of call continuations *)
Definition MATCH (d:CL_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.
(*(FE : Clight.function -> list val -> mem -> Clight.env -> Clight.temp_env -> mem -> Prop) (FE_FWD : forall f vargs m e lenv m', FE f vargs m e lenv m' -> mem_forward m m') (FE_UNCH : forall f vargs m e lenv m', FE f vargs m e lenv m' ->( Mem.unchanged_on (fun b z => EmptyEffect b z = false) m m'))*)
(*  (CS: corestep (clight_eff_sem FE FE_FWD FE_UNCH) ge st1 m1 st1' m1')*)

Lemma restrict_vis_foreign: forall mu (WD: SM_wd mu) b1 b2 delta
(R: restrict (as_inj mu) (vis mu) b1 = Some (b2, delta))
(LT: locBlocksTgt mu b2 = false),
foreign_of mu b1 = Some (b2, delta).