Benchmark
non-incremental/QF_NIA/20230328-sqrtmodinv-hoenicke/modInv32.smt2
This checks the validity of some code to compute the modular inverse
of an odd denominator mod 2^256. The code is:
assume (denominator mod 2) == 1
inv = (3 * denominator) xor 2
inv = inv * (2 - denominator * inv)
inv = inv * (2 - denominator * inv)
inv = inv * (2 - denominator * inv)
inv = inv * (2 - denominator * inv)
inv = inv * (2 - denominator * inv)
assert (denominator * inv) mod 2^128 = 1
| Benchmark |
| Size | 1276 |
| Compressed Size | 521 |
| License |
Creative Commons Attribution 4.0 International
(CC-BY-4.0)
|
| Category | crafted |
| First Occurrence | 2023-07-06 |
| Generated By | Jochen Hoenicke |
| Generated On | 2023-01-19 00:00:00 |
| Generator | Handwritten |
| Dolmen OK | 1 |
| strict Dolmen OK | 1 |
| check-sat calls | 1 |
| Status | unsat |
| Inferred Status | None |
| Size | 1268 |
| Compressed Size | 511 |
| Max. Term Depth | 4 |
| Asserts | 7 |
| Declared Functions | 0 |
| Declared Constants | 6 |
| Declared Sorts | 0 |
| Defined Functions | 0 |
| Defined Recursive Functions | 0 |
| Defined Sorts | 0 |
| Constants | 0 |
| Declared Datatypes | 0 |
Symbols
not | 1 |
= | 7 |
div | 1 |
mod | 3 |
+ | 2 |
- | 3 |
* | 9 |
| |
Evaluations
| Evaluation |
Rating |
Solver |
Variant |
Result |
Wallclock |
CPU Time |
|
SMT-COMP 2024
|
1.00 (0/4) |
cvc5 |
cvc5 |
unknown ❌
|
1201.73375
|
1200.80868
|
| |
SMTInterpol |
SMTInterpol |
unknown ❌
|
0.42893
|
0.45090
|
| |
Yices2 |
Yices2 |
unknown ❌
|
1201.37117
|
1200.95127
|
| |
Z3alpha |
Z3-alpha |
unknown ❌
|
1201.71895
|
1201.07863
|
|
SMT-COMP 2025
|
1.00 (0/5) |
cvc5 |
cvc5 |
unknown ❌
|
1201.78592
|
1200.95198
|
| |
SMTInterpol |
SMTInterpol |
unknown ❌
|
0.44610
|
0.42106
|
| |
Yices2 |
Yices2 |
unknown ❌
|
1201.41418
|
1201.18954
|
| |
Z3alpha |
Z3-alpha |
unknown ❌
|
1201.78663
|
3602.13790
|
| |
Z3 |
Z3-alpha-base |
unknown ❌
|
1201.24902
|
1200.95565
|
| |
|
z3siri-base |
unknown ❌
|
1201.25790
|
1201.04349
|