(* This file illustrates two approaches to C verification, described in Section III of this paper:  Modular Verification for Computer Security, by Andrew W. Appel, in IEEE Computer Security Foundations conference (CSF'16), June 2016. http://www.cs.princeton.edu/~appel/papers/modsec.pdf *)
Instance CompSpecs : compspecs. make_compspecs prog. Defined.
Definition Vprog : varspecs.  mk_varspecs prog. Defined.
Open Scope Z.

Theorem fold_min:
forall (al: list Z)(i: Z),
In i (al) ->
List.fold_right Z.min (hd 0 al) al <= i.