Inductive val_lessdef_upto_single: val -> val -> Prop :=
| val_lessdef_upto_single_base:
forall v1 v2, Val.lessdef v1 v2 -> val_lessdef_upto_single v1 v2
| val_lessdef_upto_single_float:
forall n1 n2, Float.singleoffloat n1 = Float.singleoffloat n2 -> val_lessdef_upto_single (Vfloat n1) (Vfloat n2).
Hint Resolve val_lessdef_upto_single_base.

(* Specifications: *)
Lemma eval_uncast_float32:
forall sp te tm a x,
eval_expr tge sp te tm a x ->
exists v, eval_expr tge sp te tm (uncast_float32 a) v /\ val_lessdef_upto_single x v.
Lemma eval_uncast_float32:
forall sp te tm a x,
eval_expr tge sp te tm a x ->
exists v, eval_expr tge sp te tm (uncast_float32 a) v /\ val_lessdef_upto_single x v.