(** * Correctness of Csharpminor construction functions *)
Section CONSTRUCTORS.
Variables cunit prog: Clight.program.
Hypothesis LINK: linkorder cunit prog.
Variable ge: genv.

(* Specifications: *)
Lemma make_intconst_correct:
forall n e le m,
eval_expr ge e le m (make_intconst n) (Vint n).
Lemma make_floatconst_correct:
forall n e le m,
eval_expr ge e le m (make_floatconst n) (Vfloat n).
Lemma make_singleconst_correct:
forall n e le m,
eval_expr ge e le m (make_singleconst n) (Vsingle n).
Lemma make_longconst_correct:
forall n e le m,
eval_expr ge e le m (make_longconst n) (Vlong n).
Lemma make_ptrofsconst_correct:
forall n e le m,
eval_expr ge e le m (make_ptrofsconst n) (Vptrofs (Ptrofs.repr n)).
Lemma make_singleoffloat_correct:
forall a n e le m,
eval_expr ge e le m a (Vfloat n) ->
eval_expr ge e le m (make_singleoffloat a) (Vsingle (Float.to_single n)).
Lemma make_floatofsingle_correct:
forall a n e le m,
eval_expr ge e le m a (Vsingle n) ->
eval_expr ge e le m (make_floatofsingle a) (Vfloat (Float.of_single n)).
Lemma make_floatofint_correct:
forall a n sg e le m,
eval_expr ge e le m a (Vint n) ->
eval_expr ge e le m (make_floatofint a sg) (Vfloat(cast_int_float sg n)).