Local Arguments nested_field_type cs t gfs : simpl never.

(* Specifications: *)
Lemma semax_call_id0_alt:
forall Espec {cs: compspecs} Delta P Q R id bl argsig tfun retty cc A x Pre Post
(GLBL: (var_types Delta) ! id = None),
(glob_specs Delta) ! id = Some (NDmk_funspec (argsig, retty) cc A Pre Post) ->
(glob_types Delta) ! id = Some (type_of_funspec (NDmk_funspec (argsig, retty) cc A Pre Post)) ->
tfun = type_of_params argsig ->
@semax cs Espec Delta (|> (tc_exprlist Delta (argtypes argsig) bl
&& (`(Pre x) (make_args' (argsig,retty) (eval_exprlist (argtypes argsig) bl))
* PROPx P (LOCALx Q (SEPx R)))))
(Scall None (Evar id (Tfunction tfun retty cc)) bl)
(normal_ret_assert
((ifvoid retty (`(Post x) (make_args nil nil))
(EX v:val, `(Post x) (make_args (ret_temp::nil) (v::nil))))
* PROPx P (LOCALx Q (SEPx R)))).
Lemma call_memcpy_tuchar:  (* Uses CompSpecs from sha. *)
forall (shp : share) (tp: type) (pathp: list gfield) (lop: Z) (vp': list val) (p: val)
(shq: share) (tq: type) (pathq: list gfield) (loq: Z) (contents: list int) (q: val)
(len : Z)
(R': list mpred)
(np nq : Z)
(vp vp'': reptype (nested_field_type tp pathp))
(vq : reptype (nested_field_type tq pathq))
(e_p e_q e_n : expr)
Espec Delta P Q R,
typeof e_p = tptr tuchar ->
typeof e_q = tptr tuchar ->
typeof e_n = tuint ->
(var_types Delta) ! _memcpy = None ->
(glob_specs Delta) ! _memcpy = Some (snd memcpy_spec) ->
(glob_types Delta) ! _memcpy = Some (type_of_funspec (snd memcpy_spec)) ->
writable_share shp ->  readable_share shq ->
nested_field_type tp pathp = tarray tuchar np ->
nested_field_type tq pathq = tarray tuchar nq ->
(0 <= lop)%Z ->
(0 <= len <= Int.max_unsigned)%Z ->
(lop + len <= np)%Z ->
(0 <= loq)%Z ->  (loq + len <=  (*Zlength contents <=*) nq)%Z ->
JMeq vq (map Vint contents) ->
JMeq vp vp' ->
JMeq vp'' (splice_into_list lop (lop+len) (sublist loq (loq + len) (map Vint contents)) vp') ->
ENTAIL Delta, PROPx P (LOCALx Q (SEPx R)) |--
tc_exprlist Delta [tptr tvoid; tptr tvoid; tuint] [e_p; e_q; e_n]  &&
local (`(eq (field_address0 tp (ArraySubsc lop :: pathp) p)) (eval_expr e_p)) &&
local (`(eq (field_address0 tq (ArraySubsc loq :: pathq) q)) (eval_expr e_q)) &&
local (`(eq (Vint (Int.repr len))) (eval_expr e_n)) &&
PROP () (LOCALx Q (SEPx (field_at shp tp pathp vp p ::
field_at shq tq pathq vq q :: R'))) ->
@semax _ Espec Delta
(PROPx P (LOCALx Q (SEPx R)))
(Scall None
(Evar _memcpy
(Tfunction
(Tcons (tptr tvoid) (Tcons (tptr tvoid) (Tcons tuint Tnil)))
(tptr tvoid) cc_default))
[e_p; e_q; e_n])
(normal_ret_assert (PROPx P (LOCALx Q
(SEPx (field_at shp tp pathp vp'' p ::
field_at shq tq pathq vq q :: R'))))).
Lemma call_memset_tuchar:
forall (shp : share) (tp: type) (pathp: list gfield) (lop: Z) (vp': list val) (p: val)
(c: int) (len : Z)
(R': list mpred)
(np : Z)
(vp vp'': reptype (nested_field_type tp pathp))
(e_p e_c e_n : expr)
Espec Delta P Q R (s: signedness)
(TCp : typeof e_p = tptr tuchar)
(TCc : typeof e_c = tint)
(TCn : typeof e_n = Tint I32 s noattr)
(Hvar : (var_types Delta) ! _memset = None)
(Hspec : (glob_specs Delta) ! _memset = Some (snd memset_spec))
(Hglob : (glob_types Delta) ! _memset =
Some (type_of_funspec (snd memset_spec)))
(H:  writable_share shp)
(Hlop : (0 <= lop)%Z)
(Hlen: (0 <= len <= Int.max_unsigned)%Z)
(H0:  nested_field_type tp pathp = tarray tuchar np)
(Hnp : (lop + len <= np)%Z)
(H3:  JMeq vp vp')
(H4:  JMeq vp'' (splice_into_list lop (lop+len) (list_repeat (Z.to_nat len) (Vint c)) vp'))
(H5: ENTAIL Delta, PROPx P (LOCALx Q (SEPx R)) |--
tc_exprlist Delta [tptr tvoid; tint; tuint] [e_p; e_c; e_n] &&
local (`(eq (field_address0 tp (ArraySubsc lop :: pathp) p)) (eval_expr e_p)) &&
local (`(eq (Vint c)) (eval_expr e_c)) &&
local (`(eq (Vint (Int.repr len))) (eval_expr e_n)) &&
PROP () (LOCALx Q (SEPx (field_at shp tp pathp vp p :: R')))),
@semax _ Espec Delta
(PROPx P (LOCALx Q (SEPx R)))
(Scall None
(Evar _memset
(Tfunction
(Tcons (tptr tvoid) (Tcons tint (Tcons tuint Tnil)))
(tptr tvoid) cc_default))
[e_p; e_c; e_n])
(normal_ret_assert (PROPx P (LOCALx Q
(SEPx (field_at shp tp pathp vp'' p :: R'))))).