(*Issue : writing the lemma using the Delta := func_typcontext ... @semax CompSepcs Espec Delta ... leads to failure - but only 40 lines down, in the call to forward_call, where check_Delta now fails since it introduces a Delta0. I think we need to complement the line ( Delta := @abbreviate tycontext (mk_tycontext _ _ _ _ _) |- _ => ... in checkDelta (checkDeltaOLD) with a second option, Delta := func_tycontext ... =>. Note that 1. rerunning abbreviate_semax at that place (before calling forward_call) does not resolve the situation 2. In the master-branch, we actually could write the lemma using Delta :=, so this is really an issue ith the new_compcert branch*)

(* Specifications: *)
Lemma f_core_loop1 (Espec : OracleKind) FR c k h nonce out w x y t
(data : SixteenByte * SixteenByte * (SixteenByte * SixteenByte))
(PROP  ()
LOCAL  (lvar _t (tarray tuint 4) t; lvar _y (tarray tuint 16) y;
lvar _x (tarray tuint 16) x; lvar _w (tarray tuint 16) w; temp _in nonce;
temp _out out; temp _c c; temp _k k; temp _h (Vint (Int.repr h)))
SEP  (FR; data_at_ Tsh (tarray tuint 16) x;
CoreInSEP data (nonce, c, k)))
(Sfor (Sset _i (Econst_int (Int.repr 0) tint))
(Ebinop Olt (Etempvar _i tint) (Econst_int (Int.repr 4) tint) tint)
(Ssequence
(Ssequence
(Scall (Some _t'1)
(Evar _ld32
(Tfunction (Tcons (tptr tuchar) Tnil) tuint cc_default))
[Ebinop Oadd (Etempvar _c (tptr tuchar))
(Ebinop Omul (Econst_int (Int.repr 4) tint)
(Etempvar _i tint) tint) (tptr tuchar)])
(Sassign
(Ederef
(Ebinop Oadd (Evar _x (tarray tuint 16))
(Ebinop Omul (Econst_int (Int.repr 5) tint)
(Etempvar _i tint) tint) (tptr tuint)) tuint)
(Etempvar _t'1 tuint)))
(Ssequence
(Ssequence
(Scall (Some _t'2)
(Evar _ld32
(Tfunction (Tcons (tptr tuchar) Tnil) tuint cc_default))
[Ebinop Oadd (Etempvar _k (tptr tuchar))
(Ebinop Omul (Econst_int (Int.repr 4) tint)
(Etempvar _i tint) tint) (tptr tuchar)])
(Sassign
(Ederef
(Ebinop Oadd (Evar _x (tarray tuint 16))
(Ebinop Oadd (Econst_int (Int.repr 1) tint)
(Etempvar _i tint) tint) (tptr tuint)) tuint)
(Etempvar _t'2 tuint)))
(Ssequence
(Ssequence
(Scall (Some _t'3)
(Evar _ld32
(Tfunction (Tcons (tptr tuchar) Tnil) tuint cc_default))
[Ebinop Oadd (Etempvar _in (tptr tuchar))
(Ebinop Omul (Econst_int (Int.repr 4) tint)
(Etempvar _i tint) tint) (tptr tuchar)])
(Sassign
(Ederef
(Ebinop Oadd (Evar _x (tarray tuint 16))
(Ebinop Oadd (Econst_int (Int.repr 6) tint)
(Etempvar _i tint) tint) (tptr tuint)) tuint)
(Etempvar _t'3 tuint)))
(Ssequence
(Scall (Some _t'4)
(Evar _ld32
(Tfunction (Tcons (tptr tuchar) Tnil) tuint cc_default))
[Ebinop Oadd
(Ebinop Oadd (Etempvar _k (tptr tuchar))
(Econst_int (Int.repr 16) tint) (tptr tuchar))
(Ebinop Omul (Econst_int (Int.repr 4) tint)
(Etempvar _i tint) tint) (tptr tuchar)])
(Sassign
(Ederef
(Ebinop Oadd (Evar _x (tarray tuint 16))
(Ebinop Oadd (Econst_int (Int.repr 11) tint)
(Etempvar _i tint) tint) (tptr tuint)) tuint)
(Etempvar _t'4 tuint))))))
(Sset _i
(Ebinop Oadd (Etempvar _i tint) (Econst_int (Int.repr 1) tint) tint)))
(normal_ret_assert (
PROP  ()
LOCAL  (temp _i (Vint (Int.repr 4)); lvar _t (tarray tuint 4) t;
lvar _y (tarray tuint 16) y; lvar _x (tarray tuint 16) x;
lvar _w (tarray tuint 16) w; temp _in nonce; temp _out out; temp _c c;
temp _k k; temp _h (Vint (Int.repr h)))
SEP  (FR;
EX  l : list val, !!X_content data 4 l &&
data_at Tsh (tarray tuint 16) l x;
CoreInSEP data (nonce, c, k)))).