Benchmark

non-incremental/QF_BV/20230224-grsbits-truby/grs-96-96.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
Size109858
Compressed Size8616
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 109850
Compressed Size8626
Max. Term Depth7
Asserts 693
Declared Functions0
Declared Constants710
Declared Sorts 0
Defined Functions0
Defined Recursive Functions 0
Defined Sorts0
Constants0
Declared Datatypes0

Symbols

ite456 not2 or16 and854
xor4 =2454 distinct1 concat18
extract248 bvadd12 bvsub204 bvuge24
bvshl196 bvlshr6

Evaluations

Evaluation Rating Solver Variant Result Wallclock CPU Time
SMT-COMP 2024 0.50 (3/6) Bitwuzla Bitwuzla unsat ✅ 840.16075 840.02320
cvc5 cvc5 unknown ❌ 1201.71533 1201.13571
SMTInterpol SMTInterpol unknown ❌ 1201.74603 1268.89936
STP STP unsat ✅ 1180.79553 1180.41519
Yices2 Yices2 unsat ✅ 705.47779 705.08625
Z3alpha Z3-alpha unknown ❌ 1201.71419 1201.13469
SMT-COMP 2025 0.67 (3/9) Bitwuzla Bitwuzla unsat ✅ 503.97843 503.79996
Bitwuzla-MachBV-base unsat ✅ 653.79430 653.51884
Bitwuzla-MachBV Bitwuzla-MachBV unsat ✅ 878.31127 878.06442
BVDecide bv_decide unknown ❌ 1202.42258 1202.40283
bv_decide-nokernel unknown ❌ 1202.41960 1202.41678
cvc5 cvc5 unknown ❌ 1201.75065 1201.03646
SMTInterpol SMTInterpol unknown ❌ 1201.50312 1313.00637
Yices2 Yices2 unsat ✅ 696.05004 695.82822
Z3alpha Z3-alpha unknown ❌ 1201.00680 4801.35700
Z3 Z3-alpha-base unknown ❌ 1201.35643 1201.13161
Z3-Owl-base unknown ❌ 1201.31748 1201.09642
z3siri-base unknown ❌ 1201.31208 1200.95759
Z3-Owl Z3-Owl unknown ❌ 1201.75790 1201.09543