diff options
author | jadep <jadep@mit.edu> | 2019-02-15 13:18:37 -0500 |
---|---|---|
committer | jadep <jadep@mit.edu> | 2019-02-15 13:18:37 -0500 |
commit | a7bc3fde287c451d2b0e77602cd9fab560d62a43 (patch) | |
tree | 4d0a795c1445cb7a283c5f3c70de155348803407 /src/Fancy/Montgomery256.v | |
parent | 5ada7bb4874a2ddcc75ba72bbbfbc5f2c3864645 (diff) |
fix cast admits in Fancy
Diffstat (limited to 'src/Fancy/Montgomery256.v')
-rw-r--r-- | src/Fancy/Montgomery256.v | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/src/Fancy/Montgomery256.v b/src/Fancy/Montgomery256.v index a4b27c561..ec4848b0b 100644 --- a/src/Fancy/Montgomery256.v +++ b/src/Fancy/Montgomery256.v @@ -49,7 +49,7 @@ Module Montgomery256. 0 <= lo < R -> 0 <= hi < R -> 0 <= lo + R * hi < R * N -> - expr.Interp (@ident.interp) montred256 lo hi = ((lo + R * hi) * R') mod N. + expr.Interp (@ident.gen_interp cast_oor) montred256 lo hi = ((lo + R * hi) * R') mod N. Proof. intros. rewrite <-montred'_correct_specialized by assumption. @@ -62,7 +62,6 @@ Module Montgomery256. generalize MontgomeryReduction.montred'; vm_compute; reflexivity. } Qed. - Definition montred256_fancy' (RegMod RegPInv RegZero lo hi error : positive) := of_Expr 6%positive (make_consts [(RegMod, N); (RegZero, 0); (RegPInv, N')]) @@ -101,15 +100,6 @@ Module Montgomery256. | |- of_prefancy_scalar _ _ _ _ = _ => cbn; solve [eauto] end. - (* TODO(jgross): switch out casts *) - (* might need to use CheckCasts.interp_eqv_without_casts? *) - Lemma swap_casts lo hi : - expr.interp (@ident.gen_interp cast_oor) - (invert_expr.smart_App_curried (montred256 (type.interp base.interp)) (lo, (hi, tt))) = - expr.interp (@ident.interp) - (invert_expr.smart_App_curried (montred256 (type.interp base.interp)) (lo, (hi, tt))). - Admitted. - Lemma montred256_fancy_correct : forall lo hi error, 0 <= lo < R -> @@ -156,9 +146,7 @@ Module Montgomery256. { cbn. cbv [N' N]. repeat (econstructor; [ solve [valid_expr_subgoal] | intros ]). econstructor. valid_expr_subgoal. } - { cbn - [montred256]. cbv [id]. - f_equal. - apply swap_casts. } + { reflexivity. } Qed. Import Spec.Registers. |