Instance CompSpecs : compspecs. make_compspecs prog. Defined.
Definition Vprog : varspecs.  mk_varspecs prog. Defined.
Definition Gprog: funspecs := nil.
Definition Delta1 : tycontext :=
ltac:(let x := constr:(func_tycontext f_sumarray Vprog Gprog nil)
in let y := eval hnf in x
in exact y).

(* Specifications: *)
(* This example is from the "EX, Intros, Exists" chapter of the Verifiable C Reference Manual *)
Lemma exercise1:
let Delta := @abbreviate _ Delta1 in
forall sh p,
ENTAIL Delta,
EX x:Z,
PROP(0<=x) LOCAL(temp _i (Vint (Int.repr x)))
SEP (EX y:Z, !!(x<y) && data_at sh tint (Vint (Int.repr y)) p)
|-- EX u: Z,
PROP(0<u) LOCAL()
SEP (data_at sh tint (Vint (Int.repr u)) p).
(* These examples of [rep_omega] are from is from the "Integers: nat, Z, int" chapter of the Verifiable C Reference Manual *)
Lemma exercise2:
forall x,
Int.min_signed <= x <= Int.max_signed ->
Int.signed (Int.repr x) = x.
Lemma exercise3:
forall n, 0 <= n <= Int.max_signed ->
Int.min_signed <= 0 <= n.
Lemma exercise3b:
forall al: list Z ,  Zlength al < 50 ->
0 <= Zlength al < Int.max_signed.
Lemma exercise3c:
forall i,
0 <= Int.unsigned (Int.repr i) <= Int.max_unsigned.