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.  *)
Transparent Float.of_bits.
Transparent Float32.of_bits.

Lemma binary_normalize_inj:
forall s1 m1 e1 (h1 : bounded 24 128 m1 e1 = true),
forall s2 m2 e2 (h2 : bounded 24 128 m2 e2 = true),
binary_normalize 53 1024 (eq_refl _) (eq_refl _) mode_NE (cond_Zopp s1 (Zpos m1)) e1 s1 =
binary_normalize 53 1024 (eq_refl _) (eq_refl _) mode_NE (cond_Zopp s2 (Zpos m2)) e2 s2 ->
B754_finite 24 128 s1 m1 e1 h1 = B754_finite 24 128 s2 m2 e2 h2.