Benchmark

non-incremental/QF_BV/20230224-grsbits-truby/grs-64-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
Size141262
Compressed Size9815
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 141254
Compressed Size10200
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.67 (2/6) Bitwuzla Bitwuzla-fixed_default unsat ✅ 1093.60000 1093.45000
cvc5 cvc5-default-2023-05-16-ea045f305_sq unknown ❌ 1200.03000 1199.88000
STP STP 2022.4_default unsat ✅ 1150.86000 1150.78000
STP 2022.4_default unknown ❌ 1200.12000 1199.96000
UltimateEliminator UltimateIntBlastingWrapper+SMTInterpol_default unknown ❌ 4.97385 13.81250
Yices2 Yices 2 for SMTCOMP 2023_default unknown ❌ 1200.02000 1200.05000
Z3-Owl z3-Owl-Final_default unknown ❌ 1200.03000 1199.73000
z3-Owl-Final_default unknown ❌ 1200.02000 1199.95000
SMT-COMP 2024 0.67 (2/6) Bitwuzla Bitwuzla unsat ✅ 1193.68513 1193.13874
cvc5 cvc5 unknown ❌ 1201.72072 1201.03312
SMTInterpol SMTInterpol unknown ❌ 1201.72138 1258.35577
STP STP unknown ❌ 1201.23351 1200.94077
Yices2 Yices2 unsat ✅ 917.79222 917.28241
Z3alpha Z3-alpha unknown ❌ 1201.75986 1201.05780
SMT-COMP 2025 0.67 (3/9) Bitwuzla Bitwuzla unsat ✅ 829.71908 829.45941
Bitwuzla-MachBV-base unsat ✅ 1012.41779 1012.19481
Bitwuzla-MachBV Bitwuzla-MachBV unsat ✅ 927.56901 927.37165
BVDecide bv_decide unknown ❌ 1202.69993 1202.60259
bv_decide-nokernel unknown ❌ 1202.62502 1202.70328
cvc5 cvc5 unknown ❌ 1201.79221 1201.00617
SMTInterpol SMTInterpol unknown ❌ 1201.48612 1259.39540
Yices2 Yices2 unsat ✅ 933.07783 932.83213
Z3alpha Z3-alpha unknown ❌ 1201.00534 4801.32923
Z3 Z3-alpha-base unknown ❌ 1201.31211 1201.04313
Z3-Owl-base unknown ❌ 1201.27092 1200.96019
z3siri-base unknown ❌ 1201.28102 1200.92140
Z3-Owl Z3-Owl unknown ❌ 1201.75767 1201.15696