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
Size1276
Compressed Size521
License Creative Commons Attribution 4.0 International (CC-BY-4.0)
Categorycrafted
First Occurrence2023-07-06
Generated ByJochen Hoenicke
Generated On2023-01-19 00:00:00
GeneratorHandwritten
Dolmen OK1
strict Dolmen OK1
check-sat calls1
Query 1
Status unsat
Inferred Status None
Size 1268
Compressed Size511
Max. Term Depth4
Asserts 7
Declared Functions0
Declared Constants6
Declared Sorts 0
Defined Functions0
Defined Recursive Functions 0
Defined Sorts0
Constants0
Declared Datatypes0

Symbols

not1 =7 div1 mod3
+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