Definition globalfunction_ptr_inject (j:meminj):=
  forall b f, Genv.find_funct_ptr ge b = Some f ->
              j b = Some(b,0) /\ isGlobalBlock ge b = true.

(* Specifications: *)
Lemma restrict_preserves_globalfun_ptr: forall j X (PG : globalfunction_ptr_inject j) (Glob : forall b, isGlobalBlock ge b = true -> X b = true), globalfunction_ptr_inject (restrict j X).
Lemma restrict_GFP_vis: forall mu (GFP : globalfunction_ptr_inject (as_inj mu)) (Glob : forall b, isGlobalBlock ge b = true -> frgnBlocksSrc mu b = true), globalfunction_ptr_inject (restrict (as_inj mu) (vis mu)).
Lemma restrict_preserves_globalfun_ptr: forall j X (PG : globalfunction_ptr_inject j) (Glob : forall b, isGlobalBlock ge b = true -> X b = true), globalfunction_ptr_inject (restrict j X).
Lemma restrict_GFP_vis: forall mu (GFP : globalfunction_ptr_inject (as_inj mu)) (Glob : forall b, isGlobalBlock ge b = true -> frgnBlocksSrc mu b = true), globalfunction_ptr_inject (restrict (as_inj mu) (vis mu)).