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 data_at_single_int: forall sh v1 v2 p1 p2,
is_single v1 -> is_int I32 Unsigned v2 ->
samerep Mfloat32 Mint32 v1 v2 ->
readable_share sh ->
p1 = p2 ->
data_at sh (Tfloat F32 noattr) v1 p1 = data_at sh (Tint I32 Unsigned noattr) v2 p2.