Instance CompSpecs : compspecs. make_compspecs prog. Defined.
Definition Vprog : varspecs. mk_varspecs prog. Defined.
Definition Gprog : funspecs :=
ltac:(with_library prog (@nil(ident*funspec))).
Definition g_spec :=
DECLARE _g
WITH i: Z
PRE [ _i OF size_t]
PROP() LOCAL(temp _i (Vptrofs (Ptrofs.repr i))) SEP()
POST [ size_t ]
PROP() LOCAL (temp ret_temp (Vptrofs (Ptrofs.repr i))) SEP().
for a description of how to solve this problem. *)
Definition samerep (ch1 ch2: memory_chunk) (v1 v2: val) :=
Memdata.size_chunk ch1 = Memdata.size_chunk ch2 /\
forall bl: list Memdata.memval,
Memdata.size_chunk ch1 = Z.of_nat (length bl) ->
(Memdata.decode_val ch1 bl = v1 <-> Memdata.decode_val ch2 bl = v2).

Lemma fabs_float32_lemma:
forall x: float32,
exists y: int,
samerep Mfloat32 Mint32 (Vsingle x) (Vint y) /\
samerep Mfloat32 Mint32 (Vsingle (Float32.abs x)) (Vint (Int.and y (Int.repr 2147483647))).