aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Experiments/NewPipeline/Arithmetic.v9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/Experiments/NewPipeline/Arithmetic.v b/src/Experiments/NewPipeline/Arithmetic.v
index d388beca9..f165e1db1 100644
--- a/src/Experiments/NewPipeline/Arithmetic.v
+++ b/src/Experiments/NewPipeline/Arithmetic.v
@@ -235,10 +235,10 @@ Module Associational.
then div_s
(if fst t' <=? fst t
then mul two_c_t [t']
- else mul [t] two_c_t)
+ else mul [t] two_c_t')
else (if fst t' <=? fst t
then mul two_t [t']
- else mul [t] two_t))
+ else mul [t] two_t'))
ts)
++ acc)
p.
@@ -246,6 +246,11 @@ Module Associational.
: eval (reduce_square s c p) mod (s - eval c)
= (eval p * eval p) mod (s - eval c).
Proof.
+ cbv [reduce_square Let_In let_bind_for_reduce_square]; cbn [map].
+ induction p as [|a p IHp]; cbn [list_rect map]; push; [ reflexivity | ].
+ rewrite Z.mul_add_distr_r, !Z.mul_add_distr_l.
+ rewrite !Z.add_assoc; apply Z.add_mod_Proper; cbv [Z.equiv_modulo]; [ clear IHp | assumption ].
+
(*rewrite <- (eval_sort p).
cbv [reduce_square Let_In]; generalize (RevWeightSort.sort p) (RevWeightSort.StronglySorted_sort p _); clear p; intros p Hpsort.
induction Hpsort; cbn [list_rect]; push; [ nsatz | ].