diff options
Diffstat (limited to 'src/SpecificGen/GF25519_64Bounded.v')
-rw-r--r-- | src/SpecificGen/GF25519_64Bounded.v | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/SpecificGen/GF25519_64Bounded.v b/src/SpecificGen/GF25519_64Bounded.v index 71b859d32..6dedca56b 100644 --- a/src/SpecificGen/GF25519_64Bounded.v +++ b/src/SpecificGen/GF25519_64Bounded.v @@ -150,7 +150,8 @@ Proof. { match goal with |- (_,word128ToZ (_ ^- (Interpretations128.WordW.ZToWordW ?x) ^& _)) = (_,_ - (?y &' _)) => assert (x = y) as Hxy by reflexivity; repeat rewrite <-Hxy; clear Hxy end. - change ZToWord128 with Interpretations128.WordW.ZToWordW in *. + change ZToWord128 with Interpretations128.WordW.ZToWordW in *. + preunfold_is_bounded. rewrite !Interpretations128.WordW.wordWToZ_sub; rewrite !Interpretations128.WordW.wordWToZ_land; rewrite !Interpretations128.WordW.wordWToZ_ZToWordW; @@ -169,12 +170,13 @@ Proof. end. } - unfold_is_bounded. - change ZToWord128 with Interpretations128.WordW.ZToWordW in *. + change ZToWord128 with Interpretations128.WordW.ZToWordW in *; + preunfold_is_bounded. rewrite !Interpretations128.WordW.wordWToZ_sub; rewrite !Interpretations128.WordW.wordWToZ_land; rewrite !Interpretations128.WordW.wordWToZ_ZToWordW; repeat match goal with |- _ /\ _ => split; Z.ltb_to_lt end; + Z.ltb_to_lt; unfold_is_bounded; Z.ltb_to_lt; try match goal with | |- 0 <= ModularBaseSystemListZOperations.neg _ _ < 2 ^ _ => apply ModularBaseSystemListZOperationsProofs.neg_range; omega | |- 0 <= _ < 2 ^ Z.of_nat _ => vm_compute; split; [refine (fun x => match x with eq_refl => I end) | reflexivity] |