aboutsummaryrefslogtreecommitdiffstats
path: root/kvx
diff options
context:
space:
mode:
authorDavid Monniaux <David.Monniaux@univ-grenoble-alpes.fr>2021-12-17 12:10:38 +0100
committerDavid Monniaux <David.Monniaux@univ-grenoble-alpes.fr>2021-12-17 12:10:38 +0100
commit1e3340be6913b8988cde998c165e77eea480783c (patch)
tree3452e3fd79f64f8d3889e464abe998ec2d8a1590 /kvx
parent54cf78c0d3579dced79d846ee111b8c5edfee615 (diff)
downloadcompcert-kvx-1e3340be6913b8988cde998c165e77eea480783c.tar.gz
compcert-kvx-1e3340be6913b8988cde998c165e77eea480783c.zip
reorganize proof
Diffstat (limited to 'kvx')
-rw-r--r--kvx/FPDivision.v15
1 files changed, 14 insertions, 1 deletions
diff --git a/kvx/FPDivision.v b/kvx/FPDivision.v
index f22387d6..db44c30a 100644
--- a/kvx/FPDivision.v
+++ b/kvx/FPDivision.v
@@ -538,7 +538,8 @@ Proof.
pose proof (Rabs_triang (prod' - IZR a' * inv_b_r) (IZR a' * delta))%R.
lra.
}
- rewrite <- div_approx_reals_correct with (x := B2R _ _ prod); cycle 1. lia. exact NEAR.
+ pose proof (div_approx_reals_correct (Int.unsigned a) (Int.unsigned b) prod') as DIV_CORRECT.
+ rewrite <- DIV_CORRECT; cycle 1. lia. exact NEAR.
unfold div_approx_reals.
fold a' b' prod' prod_r.
@@ -586,6 +587,18 @@ Proof.
}
cbn.
f_equal.
+ rewrite Int64.add_signed.
+ rewrite (Int64.signed_repr prod_r) by (cbn ; lia).
+ rewrite Int64.signed_repr by (cbn ; lia).
+ unfold Int64.loword.
+ rewrite Int64.unsigned_repr. reflexivity.
+ fold prod' in NEAR.
+ fold a' in NEAR.
+ fold b' in NEAR.
+ split.
+ 2: cbn; lia.
+ apply le_IZR.
+ rewrite plus_IZR.
admit.
- replace (Int64.lt (Int64.repr (a' - prod_r * b')) Int64.zero) with false; cycle 1.
{ unfold Int64.lt.