Parameter body_mallocN:
semax_external
(EF_external _mallocN
{| sig_args := AST.Tint :: nil; sig_res := Some AST.Tint |}) int
(fun n : int => PROP (4 <= Int.signed n) LOCAL (`(eq (Vint n)) (eval_id 1%positive)) SEP ())
(fun n : int => `(memory_block Tsh n) retval).
Parameter body_freeN:
semax_external
(EF_external _freeN
{| sig_args := AST.Tint :: AST.Tint :: nil; sig_res := None |}) unit
(fun _ : unit =>
PROP() LOCAL () SEP (`(memory_block Tsh) (`force_int (eval_id 2%positive)) (eval_id 1%positive)))
(fun _ : unit => emp).

Lemma prog_correct:
semax_prog prog Vprog Gprog.