Local Open Scope logic.
Definition load8 id ofs :=
(Sset id
(Ederef
(Ebinop Oadd
(Efield
(Ederef (Etempvar _ctx (tptr t_struct_SHA256state_st))
t_struct_SHA256state_st) _h (tarray tuint 8))
(Econst_int (Int.repr ofs) tint) (tptr tuint)) tuint)).

(* Specifications: *)
Lemma Znth_is_int:
forall i r,
0 <=  i < Zlength r ->
is_int I32 Unsigned (Znth i (map Vint r)).
Lemma sha256_block_load8:
forall (Espec : OracleKind)
(data: val) (r_h: list int) (ctx: val) gv (wsh: share)
(Hwsh: writable_share wsh)
(H5 : length r_h = 8%nat),
semax
(func_tycontext f_sha256_block_data_order Vprog Gtot nil)
(PROP  ()
LOCAL  (temp _data data; temp _ctx ctx; temp _in data;
gvars gv)
SEP  (field_at wsh t_struct_SHA256state_st  [StructField _h] (map Vint r_h) ctx))
(Ssequence (load8 _a 0)
(Ssequence (load8 _b 1)
(Ssequence (load8 _c 2)
(Ssequence (load8 _d 3)
(Ssequence (load8 _e 4)
(Ssequence (load8 _f 5)
(Ssequence (load8 _g 6)
(Ssequence (load8 _h 7)
Sskip))))))))
(normal_ret_assert
(PROP  ()
LOCAL  (temp _a (Vint (nthi r_h 0));
temp _b (Vint (nthi r_h 1));
temp _c (Vint (nthi r_h 2));
temp _d (Vint (nthi r_h 3));
temp _e (Vint (nthi r_h 4));
temp _f (Vint (nthi r_h 5));
temp _g (Vint (nthi r_h 6));
temp _h (Vint (nthi r_h 7));
temp _data data; temp _ctx ctx; temp _in data;
gvars gv)
SEP  (field_at wsh t_struct_SHA256state_st  [StructField _h] (map Vint r_h) ctx))).