Benchmark

non-incremental/QF_ABV/brummayerbiere2/countbitstableoffbyone0256.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
Size58597
Compressed Size3038
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 58589
Compressed Size3094
Max. Term Depth325
Asserts 1
Declared Functions0
Declared Constants2
Declared Sorts 0
Defined Functions0
Defined Recursive Functions 0
Defined Sorts0
Constants0
Declared Datatypes0

Symbols

ite513 not1 =514 let285
concat32 extract32 bvnot257 bvand256
bvadd287 bvshl256 bvlshr31 zero_extend256
select32 store256

Evaluations

Evaluation Rating Solver Variant Result Wallclock CPU Time
SMT-COMP 2012 Boolector Boolector sat ✅ 30.20000
Boolector 1.5.23-833 sat ✅ 113.30000
CVC3 CVC3 v2.4.2 sat ✅ 340.50000
CVC4 1.0rc.3931 sat ✅ 562.80000
CVC4 1.0rc.3970 sat ✅ 559.60000
SONOLAR SONOLAR sat ✅ 275.20000
Tiffany de Wintermonte Tiffany de Wintermonte & Sonolar sat ✅ 12.20000
SMT Evaluation 2013 0.86 (1/7) Boolector Boolector-1.5.118-SMT-EVAL-2013 default unknown ❌
Boolector-SMT-COMP-2011 default unknown ❌
Boolector-SMT-COMP-2012 default unknown ❌
CVC3 CVC3-SMT-COMP-2010 default unknown ❌
CVC3-SMT-COMP-2011 default unknown ❌
CVC3-SMT-COMP-2012 default sat ✅ 224.54300
CVC4 CVC4-SMT-COMP-2012-Resubmission default unknown ❌
CVC4-SMT-EVAL-2013 default unknown ❌
MathSAT MathSAT5-5.2.6-SMT-EVAL-2013 default unknown ❌
MathSAT5-SMT-COMP-2011 default unknown ❌
MathSAT5-SMT-COMP-2012 default unknown ❌
SONOLAR SONOLAR-2013-05-15-SMT-EVAL-2013 default unknown ❌
SONOLAR-SMT-COMP-2011 default unknown ❌
SONOLAR-SMT-COMP-2012 default unknown ❌
Tiffany de Wintermonte TdW-SMT-COMP-2012 default unknown ❌
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.29 (5/7) Boolector Boolector boolectord sat ✅ 10.26080 10.25340
Boolector boolectorj sat ✅ 149.01900 149.03300
CVC4 CVC4 f7118b2 default sat ✅ 459.12200 459.23800
Kleaver Kleaver-indie-more-typed kleaver_indie_1 unknown ❌ 0.03323 0.02300
Kleaver-indie-more-typed kleaver_portfolio unknown ❌ 0.04818 0.03799
MathSAT MathSAT-5.2.12-Main default sat ✅ 1038.67000 1039.06000
SONOLAR sonolar_smtcomp-2014 default sat ✅ 563.17200 563.33000
Yices2 Yices-2.2.1-smtcomp2014 default sat ✅ 1.12193 1.11383
Z3 Z3-4.3.2.a054b099c1d6-x64-debian-6.0.6-SMT-COMP-2014 default unknown ❌ 2399.51000 2400.10000
SMT-COMP 2015 0.20 (4/5) Boolector Boolector SMT15 QF_AUFBV final boolector_qf_aufbv sat ✅ 15.95400 15.95960
CVC4 CVC4-master-2015-06-15-9b32405-main default sat ✅ 286.20100 286.28300
CVC4-experimental-2015-06-15-ff5745a-main default sat ✅ 85.19370 85.22200
MathSAT MathSat 5.3.6 main smtcomp2015_main sat ✅ 1204.35000 1204.83000
Yices2 Yices default sat ✅ 1.06904 1.06884
Z3 z3 4.4.0 default unknown ❌ 2400.01000 2400.88000
SMT-COMP 2016 0.20 (4/5) Boolector Boolector boolector sat ✅ 25.03650 25.04740
CVC4 CVC4-master-2016-05-27-cfef263-main default sat ✅ 100.65600 89.66090
MathSAT mathsat-5.3.11-linux-x86_64-Main default sat ✅ 777.12100 777.57600
Yices2 Yices-2.4.2 default sat ✅ 1.09670 1.09727
Z3 z3-4.4.1 default unknown ❌ 2400.01000 2401.58000
SMT-COMP 2017 0.20 (4/5) Boolector Boolector SMT17 final boolector sat ✅ 23.77640 23.77320
CVC4 CVC4-smtcomp2017-main default sat ✅ 182.85100 171.56300
MathSAT mathsat-5.4.1-linux-x86_64-Main default sat ✅ 414.48500 414.45000
Yices2 Yices2-Main default sat ✅ 1.07762 1.07332
Z3 z3-4.5.0 default unknown ❌ 600.01900 599.78100
SMT-COMP 2018 0.40 (3/5) Boolector Boolector_default sat ✅ 49.07750 49.07890
CVC4 master-2018-06-10-b19c840-competition-default_default sat ✅ 260.91100 253.11200
MathSAT mathsat-5.5.2-linux-x86_64-Main_default unknown ❌ 205.25700 205.24000
Yices2 Yices 2.6.0_default sat ✅ 1.02997 1.02961
Z3 z3-4.7.1_default unknown ❌ 1200.02000 1199.86000
SMT-COMP 2019 0.20 (4/5) Boolector Boolector-wrapped-sq_default sat ✅ 60.86820 60.87030
Poolector-wrapped-sq_default sat ✅ 5.03293 19.37640
CVC4 CVC4-2019-06-03-d350fe1-wrapped-sq_default sat ✅ 310.74500 300.53100
Par4 Par4-wrapped-sq_default sat ✅ 1.11423 3.22000
Yices2 Yices 2.6.2-wrapped-sq_default sat ✅ 1.05435 1.05430
Z3 z3-4.8.4-d6df51951f4c-wrapped-sq_default unknown ❌ 2400.12000 2400.07000
SMT-COMP 2021 0.33 (2/3) MathSAT mathsat-5.6.6_default sat ✅ 498.20800 498.14500
Yices2 Yices 2.6.2 bug fix_default sat ✅ 1.05403 1.05392
Yices 2.6.2 for SMTCOMP2020_default sat ✅ 1.05343 1.05329
Z3 z3-4.8.11_default unknown ❌ 1200.08000 1199.78000
SMT-COMP 2022 0.20 (4/5) Bitwuzla Bitwuzla-wrapped_default sat ✅ 15.68640 15.68490
cvc5 cvc5-default-2022-07-02-b15e116-wrapped_sq sat ✅ 329.45400 318.60600
MathSAT MathSAT-5.6.8_default sat ✅ 456.50600 456.39800
Yices2 Yices 2.6.2 for SMTCOMP 2021_default sat ✅ 1.04411 1.04402
Z3 z3-4.8.17_default unknown ❌ 1200.11000 1200.01000
SMT-COMP 2025 0.67 (2/6) Bitwuzla Bitwuzla sat ✅ 4.09857 3.97114
cvc5 cvc5 unknown ❌ 1201.74737 1201.09960
SMTInterpol SMTInterpol unknown ❌ 1201.47130 1394.43064
Yices2 Yices2 sat ✅ 0.85809 0.74034
Z3 Z3-Owl-base unknown ❌ 1201.26204 1200.94537
Z3-Owl Z3-Owl unknown ❌ 1201.75875 1201.02213