From 9dadf82c52a9ad11b31b21986bc88a108b845d0b Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Mon, 29 Apr 2019 14:10:47 +0200 Subject: float of int = float of long o long of int --- mppa_k1c/SelectOpproof.v | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'mppa_k1c/SelectOpproof.v') diff --git a/mppa_k1c/SelectOpproof.v b/mppa_k1c/SelectOpproof.v index e07bc51c..6fa93fd8 100644 --- a/mppa_k1c/SelectOpproof.v +++ b/mppa_k1c/SelectOpproof.v @@ -1180,9 +1180,22 @@ Theorem eval_floatofint: Val.floatofint x = Some y -> exists v, eval_expr ge sp e m le (floatofint a) v /\ Val.lessdef y v. Proof. - intros until y; unfold floatofint. case (floatofint_match a); intros. - InvEval. simpl in H0. TrivialExists. - TrivialExists. + intros. + unfold floatofint. + destruct (floatofint_match a). + - InvEval. + TrivialExists. + - InvEval. + TrivialExists. + constructor. econstructor. constructor. eassumption. constructor. + simpl. f_equal. constructor. + simpl. + destruct x; simpl; trivial. + f_equal. + inv H0. + f_equal. + rewrite Float.of_int_of_long. + reflexivity. Qed. Theorem eval_intofsingle: -- cgit