diff options
author | David Monniaux <David.Monniaux@univ-grenoble-alpes.fr> | 2021-12-16 22:07:26 +0100 |
---|---|---|
committer | David Monniaux <David.Monniaux@univ-grenoble-alpes.fr> | 2021-12-16 22:07:26 +0100 |
commit | b0f18b3de1c530a03a90c0618c39a3d26704f49e (patch) | |
tree | 2922ec8184134cb5a1feb7a108d6be27a5d02e80 /kvx | |
parent | 18ec7b4072aef0160e96915d13218381f4420c4c (diff) | |
download | compcert-kvx-b0f18b3de1c530a03a90c0618c39a3d26704f49e.tar.gz compcert-kvx-b0f18b3de1c530a03a90c0618c39a3d26704f49e.zip |
one admit less
Diffstat (limited to 'kvx')
-rw-r--r-- | kvx/FPDivision.v | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/kvx/FPDivision.v b/kvx/FPDivision.v index fed327b7..5d1ce1ac 100644 --- a/kvx/FPDivision.v +++ b/kvx/FPDivision.v @@ -153,12 +153,13 @@ Proof. rewrite C1E. rewrite C0E. apply (Rabs_relax (bpow radix2 10)). - { cbn; lra. } + { apply bpow_lt; lia. } cbn. gappa. } change (is_finite 24 128 (BofZ 24 128 (@eq_refl Datatypes.comparison Lt) (@eq_refl Datatypes.comparison Lt) 1)) with true in C2F. destruct (C3 C2F) as (C3E & C3F & _). + clear C3. unfold Float.fma. assert (is_finite _ _ (Float.neg invb_d) = true) as invb_d_F. { Local Transparent Float.neg. @@ -184,7 +185,24 @@ Proof. (Float.neg invb_d) b_d ExtFloat.one invb_d_F b_d_F one_F) as C5. rewrite Rlt_bool_true in C5; cycle 1. - { admit. } + { clear C5. + unfold Float.neg. + rewrite B2R_Bopp. + rewrite C3E. + rewrite C2E. + rewrite C0E. + rewrite C1E. + unfold ExtFloat.one. + change (Float.of_int (Int.repr 1)) with (BofZ 53 1024 (@eq_refl Datatypes.comparison Lt) (@eq_refl Datatypes.comparison Lt) 1). + rewrite C9E. + unfold b_d. + rewrite Int64.unsigned_repr by lia. + rewrite C4E. + apply (Rabs_relax (bpow radix2 10)). + { apply bpow_lt; lia. } + cbn. + gappa. + } destruct C5 as (C5E & C5F & _). pose proof (Bfma_correct 53 1024 (@eq_refl Datatypes.comparison Lt) (@eq_refl Datatypes.comparison Lt) Float.fma_nan mode_NE |