Benchmark
non-incremental/QF_BV/20230221-oisc-gurtner/SRL-SAFE-64-1024.smt2
Publications: "A Formally Verified Reduction of the RV32I ISA", Sonja Gurtner
(https://epub.jku.at/obvulihs/content/titleinfo/8237703)
The benchmarks come from the master thesis from Sonja Gurtner "A Formally Verified Reduction of the
RV32I ISA" about translating RISC-V instructions using only memory operations, jump, and sub. The
translation was done by Rosette, a tool to translate constraints from a Racket-like language to the
SMT-LIB.
There are two parameters in the translation:
- the bitwidth we are considering
- the upper bound on the number of loop iterations (for
correctness, it must be larger than the bitwidth)
One limitation of the work is that the translation was verified one replacement at a time. We verify
that addition (RISC-V instruction add) can be replaced by two subtraction (RISC-V instruction sub),
but subsequently use the usual addition. Thanks to this, verification scales up to large
bitwidth. Otherwise, the verification of such nested instructions is very challenging.
Naming convention: <instruction_to_replace>[-nested]-<bitwidth>-<upper_bound>[-<counterexample-cause>.smt2
| Benchmark |
| Size | 1740215 |
| Compressed Size | 269536 |
| License |
Creative Commons Attribution 4.0 International
(CC-BY-4.0)
|
| Category | industrial |
| First Occurrence | 2023-07-06 |
| Generated By | Sonja Gurtner and Mathias Fleury |
| Generated On | 2023-02-19 00:00:00 |
| Generator | Rosette |
| Dolmen OK | 1 |
| strict Dolmen OK | 1 |
| check-sat calls | 1 |
| Status | unsat |
| Inferred Status | unsat |
| Size | 1740206 |
| Compressed Size | 269543 |
| Max. Term Depth | 3 |
| Asserts | 4 |
| Declared Functions | 0 |
| Declared Constants | 139 |
| Declared Sorts | 0 |
| Defined Functions | 0 |
| Defined Recursive Functions | 0 |
| Defined Sorts | 0 |
| Constants | 34154 |
| Declared Datatypes | 0 |
Symbols
Bool | 18352 |
ite | 5886 |
not | 4115 |
or | 5148 |
and | 5321 |
= | 3741 |
BitVec | 15802 |
bvand | 1 |
bvor | 11 |
bvneg | 1040 |
bvadd | 3089 |
bvsmod | 2 |
bvult | 11 |
bvule | 4 |
bvslt | 1 |
bvsle | 11 |
bvshl | 4092 |
bvlshr | 1037 |
| | | |
Evaluations
| Evaluation |
Rating |
Solver |
Variant |
Result |
Wallclock |
CPU Time |
|
SMT-COMP 2023
|
0.33 (4/6) |
Bitwuzla |
Bitwuzla-fixed_default |
unsat ✅
|
891.96400
|
891.55200
|
| |
cvc5 |
cvc5-default-2023-05-16-ea045f305_sq |
unsat ✅
|
928.07200
|
927.99000
|
| |
STP |
STP 2022.4_default |
unsat ✅
|
305.32600
|
305.29800
|
| |
|
STP 2022.4_default |
unsat ✅
|
312.55800
|
312.57900
|
| |
UltimateEliminator |
UltimateIntBlastingWrapper+SMTInterpol_default |
unknown ❌
|
4.40488
|
11.68490
|
| |
Yices2 |
Yices 2 for SMTCOMP 2023_default |
unknown ❌
|
1200.01000
|
1200.02000
|
| |
Z3-Owl |
z3-Owl-Final_default |
unknown ❌
|
1200.02000
|
1199.84000
|
| |
|
z3-Owl-Final_default |
unsat ✅
|
843.15800
|
843.00800
|
|
SMT-COMP 2024
|
0.33 (4/6) |
Bitwuzla |
Bitwuzla |
unsat ✅
|
336.71948
|
336.59656
|
| |
cvc5 |
cvc5 |
unsat ✅
|
829.82635
|
829.62710
|
| |
SMTInterpol |
SMTInterpol |
unknown ❌
|
1202.72381
|
1287.93151
|
| |
STP |
STP |
unsat ✅
|
1014.63736
|
1014.49657
|
| |
Yices2 |
Yices2 |
unsat ✅
|
163.13019
|
163.02331
|
| |
Z3alpha |
Z3-alpha |
unknown ❌
|
1201.71353
|
1201.07266
|