Benchmark

non-incremental/QF_ABV/brummayerbiere2/countbitstableoffbyone0128.smt2

Count bits pop(x) algorithm, table lookup method, buggy version
From the book "Hacker's delight" by Henry S. Warren, Jr., page 71
The algorithm precomputes pop(x) for x in range 0 to 255 and stores it
into a lookup table. However, one precomputed value has an off-by-one error.

We try to cross-check it with the obvious method of counting bits:
for (s = i = 0; i < BW; i++)
  if (x & (1 << i))
    s++;

Contributed by Robert Brummayer (robert.brummayer@gmail.com)
Benchmark
Size33221
Compressed Size2226
License Creative Commons Attribution 4.0 International (CC-BY-4.0)
Categorycrafted
First Occurrence2008-07-07
Generated By
Generated On
Generator
Dolmen OK1
strict Dolmen OK1
check-sat calls1
Query 1
Status sat
Inferred Status sat
Size 33213
Compressed Size2281
Max. Term Depth260
Asserts 1
Declared Functions0
Declared Constants2
Declared Sorts 0
Defined Functions0
Defined Recursive Functions 0
Defined Sorts0
Constants0
Declared Datatypes0

Symbols

ite257 not1 =258 let141
concat16 extract16 bvnot129 bvand128
bvadd143 bvshl128 bvlshr15 zero_extend128
select16 store256

Evaluations

Evaluation Rating Solver Variant Result Wallclock CPU Time
SMT Evaluation 2013 0.14 (6/7) Boolector Boolector-1.5.118-SMT-EVAL-2013 default sat ✅ 2.12390
Boolector-SMT-COMP-2011 default sat ✅ 29.69000
Boolector-SMT-COMP-2012 default sat ✅ 2.00076
CVC3 CVC3-SMT-COMP-2010 default sat ✅ 36.00600
CVC3-SMT-COMP-2011 default sat ✅ 35.57730
CVC3-SMT-COMP-2012 default sat ✅ 36.04360
CVC4 CVC4-SMT-COMP-2012-Resubmission default sat ✅ 287.64400
CVC4-SMT-EVAL-2013 default sat ✅ 164.98000
MathSAT MathSAT5-5.2.6-SMT-EVAL-2013 default sat ✅ 16.59690
MathSAT5-SMT-COMP-2011 default sat ✅ 380.52600
MathSAT5-SMT-COMP-2012 default sat ✅ 62.14170
SONOLAR SONOLAR-2013-05-15-SMT-EVAL-2013 default sat ✅ 11.16770
SONOLAR-SMT-COMP-2011 default sat ✅ 34.30700
SONOLAR-SMT-COMP-2012 default sat ✅ 3.35106
Tiffany de Wintermonte TdW-SMT-COMP-2012 default sat ✅ 1.50001
Z3 Z3-4.3.2.a054b099c1d6-x64-debian-6.0.6-SMT-EVAL-2013 default unknown ❌
Z3-SMT-COMP-2011 default unknown ❌
SMT-COMP 2014 0.14 (6/7) Boolector Boolector boolectord sat ✅ 0.42388 0.40094
Boolector boolectorj sat ✅ 0.60961 0.59891
CVC4 CVC4 f7118b2 default sat ✅ 137.66600 137.69600
Kleaver Kleaver-indie-more-typed kleaver_indie_1 unknown ❌ 0.02115 0.02000
Kleaver-indie-more-typed kleaver_portfolio unknown ❌ 0.04416 0.03399
MathSAT MathSAT-5.2.12-Main default sat ✅ 16.66670 16.65850
SONOLAR sonolar_smtcomp-2014 default sat ✅ 9.90917 9.90049
Yices2 Yices-2.2.1-smtcomp2014 default sat ✅ 0.12562 0.11698
Z3 Z3-4.3.2.a054b099c1d6-x64-debian-6.0.6-SMT-COMP-2014 default sat ✅ 452.56400 452.69000
SMT-COMP 2015 Boolector Boolector SMT15 QF_AUFBV final boolector_qf_aufbv sat ✅ 3.38686 3.38049
CVC4 CVC4-master-2015-06-15-9b32405-main default sat ✅ 386.47600 386.59500
CVC4-experimental-2015-06-15-ff5745a-main default sat ✅ 54.36530 54.37470
MathSAT MathSat 5.3.6 main smtcomp2015_main sat ✅ 33.11370 33.12600
Yices2 Yices default sat ✅ 0.12009 0.11898
Z3 z3 4.4.0 default sat ✅ 112.99500 113.05000
SMT-COMP 2016 Boolector Boolector boolector sat ✅ 3.60745 3.60937
CVC4 CVC4-master-2016-05-27-cfef263-main default sat ✅ 56.51810 54.80730
MathSAT mathsat-5.3.11-linux-x86_64-Main default sat ✅ 104.67400 104.73600
Yices2 Yices-2.4.2 default sat ✅ 0.11432 0.11432
Z3 z3-4.4.1 default sat ✅ 2089.43000 2090.63000
SMT-COMP 2017 0.20 (4/5) Boolector Boolector SMT17 final boolector sat ✅ 4.11704 4.11574
CVC4 CVC4-smtcomp2017-main default sat ✅ 138.73100 136.90100
MathSAT mathsat-5.4.1-linux-x86_64-Main default sat ✅ 15.65090 15.64890
Yices2 Yices2-Main default sat ✅ 0.11402 0.11317
Z3 z3-4.5.0 default unknown ❌ 600.01500 599.92900
SMT-COMP 2018 0.20 (4/5) Boolector Boolector_default sat ✅ 3.26114 3.26123
CVC4 master-2018-06-10-b19c840-competition-default_default sat ✅ 13.97150 13.97050
MathSAT mathsat-5.5.2-linux-x86_64-Main_default unknown ❌ 62.27740 62.27740
Yices2 Yices 2.6.0_default sat ✅ 0.11098 0.11092
Z3 z3-4.7.1_default sat ✅ 1002.51000 1002.39000
SMT-COMP 2019 Boolector Boolector-wrapped-sq_default sat ✅ 3.71987 3.71985
Poolector-wrapped-sq_default sat ✅ 1.10400 3.92000
CVC4 CVC4-2019-06-03-d350fe1-wrapped-sq_default sat ✅ 14.04160 14.03990
Par4 Par4-wrapped-sq_default sat ✅ 0.13689 0.00600
Yices2 Yices 2.6.2-wrapped-sq_default sat ✅ 0.11509 0.11510
Z3 z3-4.8.4-d6df51951f4c-wrapped-sq_default sat ✅ 565.85500 565.74100
SMT-COMP 2021 0.33 (2/3) MathSAT mathsat-5.6.6_default sat ✅ 244.76700 244.72200
Yices2 Yices 2.6.2 bug fix_default sat ✅ 0.11735 0.11730
Yices 2.6.2 for SMTCOMP2020_default sat ✅ 0.11721 0.11714
Z3 z3-4.8.11_default unknown ❌ 1200.04000 1199.93000
SMT-COMP 2025 0.50 (3/6) Bitwuzla Bitwuzla sat ✅ 1.17151 1.04468
cvc5 cvc5 sat ✅ 933.54625 933.30293
SMTInterpol SMTInterpol unknown ❌ 1201.76987 1242.76935
Yices2 Yices2 sat ✅ 0.31669 0.19479
Z3 Z3-Owl-base unknown ❌ 1201.25349 1200.97605
Z3-Owl Z3-Owl unknown ❌ 1201.75824 1201.03237