Benchmark
non-incremental/QF_NIA/20230328-sqrtmodinv-hoenicke/modInvStepSimplified.smt2
This checks the validity of a line in computing the inverse of
denominator mod 2^256. The code is:
assume s > 1 && (denominator * inv1) mod s = 1
inv2 = inv1 * (2 - denominator * inv1)
assert (denominator * inv2) mod (s * s) = 1
Here we used the first assume to obtain
(1) denominator * inv1 = 1 + k * s
Using the definition of inv2 we obtain
(2) denominator * inv2 = denominator * inv1 * (2 - (denominator * inv1))
Using (1) as a rewrite rule, we obtain
(3) denominator * inv2 = (1 + k * s) * (2 - (1 + k * s))
which can be simplified to
denominator * inv2 = 1 - k * k * s * s.
This is the second formula in the file below.
The contradiction can be obtained by inserting the definition of modulo.
| Benchmark |
| Size | 1299 |
| Compressed Size | 632 |
| 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 | 1291 |
| Compressed Size | 624 |
| Max. Term Depth | 4 |
| Asserts | 3 |
| Declared Functions | 0 |
| Declared Constants | 4 |
| Declared Sorts | 0 |
| Defined Functions | 0 |
| Defined Recursive Functions | 0 |
| Defined Sorts | 0 |
| Constants | 0 |
| Declared Datatypes | 0 |
Symbols
Evaluations
| Evaluation |
Rating |
Solver |
Variant |
Result |
Wallclock |
CPU Time |
|
SMT-COMP 2023
|
1.00 (0/5) |
cvc5 |
cvc5-default-2023-05-16-ea045f305_sq |
unknown ❌
|
1200.11000
|
1198.28000
|
| |
Yices2 |
Yices 2 for SMTCOMP 2023_default |
unknown ❌
|
1200.01000
|
1199.91000
|
| |
Yices-ismt |
yices-ismt-sq-0526_default |
unknown ❌
|
316.22900
|
316.16000
|
| |
Z3alpha |
z3alpha_default |
unknown ❌
|
1200.04000
|
1199.96000
|
| |
Z3++ |
z3++0715_default |
unknown ❌
|
203.02600
|
203.01700
|
| |
|
Z3++_sq_0526_default |
unknown ❌
|
1200.10000
|
1200.02000
|
|
SMT-COMP 2024
|
1.00 (0/4) |
cvc5 |
cvc5 |
unknown ❌
|
1201.72304
|
1200.99876
|
| |
SMTInterpol |
SMTInterpol |
unknown ❌
|
0.40429
|
0.40321
|
| |
Yices2 |
Yices2 |
unknown ❌
|
1201.21687
|
1200.51147
|
| |
Z3alpha |
Z3-alpha |
unknown ❌
|
1201.71530
|
1201.08290
|