Require Export VST.veric.base.
(* This file contains lemmas regarding "superprecise", and in principle, almost proving that "mapsto" is superprecise.  However, mapsto is not superprecise, because it's not quite true that decode_val is injective.  The only reason is the treatment of single-precision floating-point NaNs, where the conversion from single-prec to double-prec loses one bit of information: both quiet 32-bit NaNs and signalling 32-bit NaNs are quietly turned into quite 64-bit NaNs.  If CompCert ever changes so that this does not happen, then the lemmas in this file might become useful.  *)

Lemma sign_ext_injective:
forall n i j,
0 < n < Int.zwordsize ->
0 <= i < two_p n ->
0 <= j < two_p n ->
Int.sign_ext n (Int.repr i) = Int.sign_ext n (Int.repr j) ->
i=j.