aboutsummaryrefslogtreecommitdiff
path: root/src/Specific/montgomery32_2e256m88x2e240m1_8limbs/fenz.v
blob: f436e18558111d9d5e2f2adcf82dbe8bfcaae916 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Require Import Coq.ZArith.ZArith.
Require Import Crypto.Arithmetic.PrimeFieldTheorems.
Require Import Crypto.Specific.montgomery32_2e256m88x2e240m1_8limbs.Synthesis.
Local Open Scope Z_scope.

(* TODO : change this to field once field isomorphism happens *)
Definition nonzero :
  { nonzero : feBW_small -> BoundedWord.BoundedWord 1 adjusted_bitwidth bound1
  | forall a, (BoundedWord.BoundedWordToZ _ _ _ (nonzero a) =? 0) = (if Decidable.dec (phiM_small a = F.of_Z m 0) then true else false) }.
Proof.
  Set Ltac Profiling.
  Time synthesize_nonzero ().
  Show Ltac Profile.
Time Defined.

Print Assumptions nonzero.