Definition can_assume_funcptr cs Delta P Q R a fs :=
 forall Espec c Post,
 @semax cs Espec Delta ((EX v: val, (lift0 (func_ptr fs v) && local (`(eq v) (eval_expr a)))) &&
                   PROPx P (LOCALx Q (SEPx R))) c Post -> 
 @semax cs Espec Delta (PROPx P (LOCALx Q (SEPx R))) c Post.

(* Specifications: *)
Lemma in_gvars_sub: forall rho G G', Forall (fun x : globals => In x G) G' -> fold_right `(and) `(True) (map locald_denote (map gvars G)) rho -> fold_right `(and) `(True) (map locald_denote (map gvars G')) rho.