aboutsummaryrefslogtreecommitdiff
path: root/src/Compilers/Z
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-06-17 16:20:14 -0400
committerGravatar Jason Gross <jgross@mit.edu>2017-06-17 16:20:14 -0400
commit599922047d89a89afe6fca798cb52d5f6adc7615 (patch)
tree8bd7e09c0d2d881e68c82958e8ddb8edbec12971 /src/Compilers/Z
parent16382f1e356cadfd8d50252ae397306d9f246ba9 (diff)
Unfold Z.mul_split_at_bitwidth for reification
Also reimplement it with a shift and a mask
Diffstat (limited to 'src/Compilers/Z')
-rw-r--r--src/Compilers/Z/Bounds/InterpretationLemmas/IsBoundedBy.v3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/Compilers/Z/Bounds/InterpretationLemmas/IsBoundedBy.v b/src/Compilers/Z/Bounds/InterpretationLemmas/IsBoundedBy.v
index 3c3ac61b2..72bbfb03a 100644
--- a/src/Compilers/Z/Bounds/InterpretationLemmas/IsBoundedBy.v
+++ b/src/Compilers/Z/Bounds/InterpretationLemmas/IsBoundedBy.v
@@ -9,6 +9,7 @@ Require Import Crypto.Compilers.Z.Bounds.InterpretationLemmas.Tactics.
Require Import Crypto.Compilers.SmartMap.
Require Import Crypto.Util.ZUtil.
Require Import Crypto.Util.ZUtil.Stabilization.
+Require Import Crypto.Util.ZUtil.MulSplit.
Require Import Crypto.Util.PointedProp.
Require Import Crypto.Util.Bool.
Require Import Crypto.Util.FixedWordSizesEquality.
@@ -348,8 +349,10 @@ Proof.
[ apply is_bounded_by_truncation_bounds..
| split; ibbio_do_cbv;
[ eapply is_bounded_by_compose with (T1:=TZ) (f_v := fun v => ZToInterp (v mod _)) (v:=ZToInterp _);
+ [ .. | cbn -[Z.mul_split_at_bitwidth]; rewrite Z.mul_split_at_bitwidth_mod ];
ibbio_prefin_by_apply
| eapply is_bounded_by_compose with (T1:=TZ) (f_v := fun v => ZToInterp (v / _)) (v:=ZToInterp _);
+ [ .. | cbn -[Z.mul_split_at_bitwidth]; rewrite Z.mul_split_at_bitwidth_div ];
ibbio_prefin_by_apply ]
| apply is_bounded_by_truncation_bounds
| split; ibbio_do_cbv;