Benchmark

non-incremental/QF_BV/20230224-grsbits-truby/grs-96-64.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
Size79342
Compressed Size7116
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 79334
Compressed Size7125
Max. Term Depth7
Asserts 501
Declared Functions0
Declared Constants518
Declared Sorts 0
Defined Functions0
Defined Recursive Functions 0
Defined Sorts0
Constants0
Declared Datatypes0

Symbols

ite328 not2 or16 and598
xor4 =1750 distinct1 concat16
extract186 bvadd12 bvsub140 bvuge24
bvshl132 bvlshr6

Evaluations

Evaluation Rating Solver Variant Result Wallclock CPU Time
SMT-COMP 2023 0.50 (3/6) Bitwuzla Bitwuzla-fixed_default unsat ✅ 382.17700 382.10000
cvc5 cvc5-default-2023-05-16-ea045f305_sq unknown ❌ 1200.12000 1199.97000
STP STP 2022.4_default unsat ✅ 514.51900 514.47100
STP 2022.4_default unsat ✅ 536.38700 535.98200
UltimateEliminator UltimateIntBlastingWrapper+SMTInterpol_default unknown ❌ 4.60424 12.17090
Yices2 Yices 2 for SMTCOMP 2023_default unknown ❌ 1200.02000 1199.91000
Z3-Owl z3-Owl-Final_default unknown ❌ 1200.02000 1199.92000
z3-Owl-Final_default unsat ✅ 982.06300 982.12000
SMT-COMP 2024 0.50 (3/6) Bitwuzla Bitwuzla unsat ✅ 343.92923 343.79339
cvc5 cvc5 unknown ❌ 1201.72386 1200.50592
SMTInterpol SMTInterpol unknown ❌ 1201.74453 1263.75677
STP STP unsat ✅ 466.97243 466.82183
Yices2 Yices2 unsat ✅ 242.42822 242.32409
Z3alpha Z3-alpha unknown ❌ 1201.71718 1201.10064
SMT-COMP 2025 0.67 (3/9) Bitwuzla Bitwuzla unsat ✅ 249.95354 249.76231
Bitwuzla-MachBV-base unsat ✅ 312.13674 311.93162
Bitwuzla-MachBV Bitwuzla-MachBV unsat ✅ 316.58308 316.43745
BVDecide bv_decide unknown ❌ 1202.58900 1202.49636
bv_decide-nokernel unknown ❌ 1202.61624 1202.60544
cvc5 cvc5 unknown ❌ 1201.79616 1200.99385
SMTInterpol SMTInterpol unknown ❌ 1201.49007 1267.06555
Yices2 Yices2 unsat ✅ 333.28607 333.13309
Z3alpha Z3-alpha unknown ❌ 1201.00411 4802.09966
Z3 Z3-alpha-base unknown ❌ 1201.26484 1200.97901
Z3-Owl-base unknown ❌ 1201.28694 1201.04419
z3siri-base unknown ❌ 1201.26797 1200.96436
Z3-Owl Z3-Owl unknown ❌ 1201.82975 1201.06962