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 |
| Size | 141262 |
| Compressed Size | 9815 |
| License |
Creative Commons Attribution 4.0 International
(CC-BY-4.0)
|
| Category | industrial |
| First Occurrence | 2023-07-06 |
| Generated By | Robin Trüby, Mathias Fleury, and Armin Biere |
| Generated On | 2023-02-24 00:00:00 |
| Generator | custom C code |
| Dolmen OK | 1 |
| strict Dolmen OK | 1 |
| check-sat calls | 1 |
| Status | unsat |
| Inferred Status | unsat |
| Size | 141254 |
| Compressed Size | 10200 |
| Max. Term Depth | 7 |
| Asserts | 885 |
| Declared Functions | 0 |
| Declared Constants | 902 |
| Declared Sorts | 0 |
| Defined Functions | 0 |
| Defined Recursive Functions | 0 |
| Defined Sorts | 0 |
| Constants | 0 |
| Declared Datatypes | 0 |
Symbols
ite | 584 |
not | 2 |
or | 16 |
and | 1110 |
xor | 4 |
= | 3158 |
distinct | 1 |
concat | 18 |
extract | 312 |
bvadd | 12 |
bvsub | 268 |
bvuge | 24 |
bvshl | 260 |
bvlshr | 6 |
| | | |
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
|