Benchmark

non-incremental/QF_BV/20230224-grsbits-truby/grs-32-128.smt2

Publications: Upcoming bachelor thesis, tentatively called _Generating word-level floating-point benchmarks_ by Robin Trüby

Verification of integer multiplication is known to be a hard problem when working on bits.
In this work we consider the multiplication of doubles/floating point/bfloat8/...
as implemented in hardware. The idea is to use only three extra bits (calles GRS) and
their value decide how rounding is done. We simply check that a+b = b+a.


We use a word-level representation of the number, i.e., we represent the exponent
and mantissa as bitvectors instead of bit-level.

The naming convention of the benchmarks is 'grs-<exponent-size>-<mantissa-size>.smt2'.
For reference, a float64 would be grs-11-52.smt2.
Benchmark
Size140878
Compressed Size9873
License Creative Commons Attribution 4.0 International (CC-BY-4.0)
Categoryindustrial
First Occurrence2023-07-06
Generated ByRobin Trüby, Mathias Fleury, and Armin Biere
Generated On2023-02-24 00:00:00
Generatorcustom C code
Dolmen OK1
strict Dolmen OK1
check-sat calls1
Query 1
Status unsat
Inferred Status unsat
Size 140870
Compressed Size10267
Max. Term Depth7
Asserts 885
Declared Functions0
Declared Constants902
Declared Sorts 0
Defined Functions0
Defined Recursive Functions 0
Defined Sorts0
Constants0
Declared Datatypes0

Symbols

ite584 not2 or16 and1110
xor4 =3158 distinct1 concat18
extract312 bvadd12 bvsub268 bvuge24
bvshl260 bvlshr6

Evaluations

Evaluation Rating Solver Variant Result Wallclock CPU Time
SMT-COMP 2023 0.50 (3/6) Bitwuzla Bitwuzla-fixed_default unsat ✅ 687.32200 687.33800
cvc5 cvc5-default-2023-05-16-ea045f305_sq unknown ❌ 1200.11000 1200.06000
STP STP 2022.4_default unsat ✅ 798.00500 797.92900
STP 2022.4_default unsat ✅ 807.65600 807.59000
UltimateEliminator UltimateIntBlastingWrapper+SMTInterpol_default unknown ❌ 5.11711 13.68700
Yices2 Yices 2 for SMTCOMP 2023_default unknown ❌ 1200.01000 1199.92000
Z3-Owl z3-Owl-Final_default unknown ❌ 1200.02000 1200.00000
z3-Owl-Final_default unsat ✅ 1005.09000 1004.98000
SMT-COMP 2024 0.50 (3/6) Bitwuzla Bitwuzla unsat ✅ 799.75454 799.62407
cvc5 cvc5 unknown ❌ 1201.71294 1201.13033
SMTInterpol SMTInterpol unknown ❌ 1201.74451 1272.05629
STP STP unsat ✅ 717.30311 717.17402
Yices2 Yices2 unsat ✅ 506.05097 505.93296
Z3alpha Z3-alpha unknown ❌ 1201.73438 1200.86471
SMT-COMP 2025 0.67 (3/9) Bitwuzla Bitwuzla unsat ✅ 455.04733 454.81081
Bitwuzla-MachBV-base unsat ✅ 679.02588 678.81388
Bitwuzla-MachBV Bitwuzla-MachBV unsat ✅ 511.45320 511.27886
BVDecide bv_decide unknown ❌ 1202.49730 1202.52084
bv_decide-nokernel unknown ❌ 1202.52877 1202.50140
cvc5 cvc5 unknown ❌ 1201.74490 1200.99775
SMTInterpol SMTInterpol unknown ❌ 1201.48202 1261.32382
Yices2 Yices2 unsat ✅ 371.41342 371.25066
Z3alpha Z3-alpha unknown ❌ 1201.00677 4801.29200
Z3 Z3-alpha-base unknown ❌ 1201.30463 1201.04525
Z3-Owl-base unknown ❌ 1201.28339 1200.94038
z3siri-base unknown ❌ 1201.29164 1201.03437
Z3-Owl Z3-Owl unknown ❌ 1201.75888 1201.01554