Benchmark

non-incremental/QF_ABV/brummayerbiere2/countbitstableoffbyone1024.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
Size216581
Compressed Size6672
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 216573
Compressed Size6754
Max. Term Depth1285
Asserts 1
Declared Functions0
Declared Constants2
Declared Sorts 0
Defined Functions0
Defined Recursive Functions 0
Defined Sorts0
Constants0
Declared Datatypes0

Symbols

ite2049 not1 =2050 let1149
concat128 extract128 bvnot1025 bvand1024
bvadd1151 bvshl1024 bvlshr127 zero_extend1024
select128 store256

Evaluations

Evaluation Rating Solver Variant Result Wallclock CPU Time
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 ❌ 299.49300
CVC3-SMT-COMP-2011 default unknown ❌
CVC3-SMT-COMP-2012 default unknown ❌
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 ❌ 76.04250
MathSAT5-SMT-COMP-2012 default unknown ❌ 24.80880
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 sat ✅ 231.38500
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.71 (2/7) Boolector Boolector boolectord sat ✅ 10.00320 9.99448
Boolector boolectorj sat ✅ 49.17920 49.19350
CVC4 CVC4 f7118b2 default unknown ❌ 2399.12000 2400.10000
Kleaver Kleaver-indie-more-typed kleaver_indie_1 unknown ❌ 0.06074 0.04799
Kleaver-indie-more-typed kleaver_portfolio unknown ❌ 0.07081 0.06899
MathSAT MathSAT-5.2.12-Main default unknown ❌ 2399.21000 2400.06000
SONOLAR sonolar_smtcomp-2014 default unknown ❌ 2399.31000 2400.10000
Yices2 Yices-2.2.1-smtcomp2014 default sat ✅ 93.88050 93.91570
Z3 Z3-4.3.2.a054b099c1d6-x64-debian-6.0.6-SMT-COMP-2014 default unknown ❌ 2398.91000 2400.04000
SMT-COMP 2015 0.60 (2/5) Boolector Boolector SMT15 QF_AUFBV final boolector_qf_aufbv sat ✅ 1414.67000 1414.98000
CVC4 CVC4-master-2015-06-15-9b32405-main default unknown ❌ 2400.01000 2400.81000
CVC4-experimental-2015-06-15-ff5745a-main default unknown ❌ 2400.01000 2400.65000
MathSAT MathSat 5.3.6 main smtcomp2015_main unknown ❌ 349.43000 349.47000
Yices2 Yices default sat ✅ 86.45440 86.48790
Z3 z3 4.4.0 default unknown ❌ 2400.01000 2400.96000
SMT-COMP 2016 0.80 (1/5) Boolector Boolector boolector unknown ❌ 2400.02000 2401.37000
CVC4 CVC4-master-2016-05-27-cfef263-main default unknown ❌ 2400.02000 1780.62000
MathSAT mathsat-5.3.11-linux-x86_64-Main default unknown ❌ 54.99020 55.02310
Yices2 Yices-2.4.2 default sat ✅ 114.57600 114.62900
Z3 z3-4.4.1 default unknown ❌ 2400.02000 2400.70000
SMT-COMP 2017 0.80 (1/5) Boolector Boolector SMT17 final boolector unknown ❌ 600.04900 599.98000
CVC4 CVC4-smtcomp2017-main default unknown ❌ 600.02000 554.05000
MathSAT mathsat-5.4.1-linux-x86_64-Main default unknown ❌ 53.80400 53.79420
Yices2 Yices2-Main default sat ✅ 88.29610 88.29120
Z3 z3-4.5.0 default unknown ❌ 600.06300 339.75000
SMT-COMP 2018 0.80 (1/5) Boolector Boolector_default unknown ❌ 1200.02000 1199.88000
CVC4 master-2018-06-10-b19c840-competition-default_default unknown ❌ 1200.11000 692.16000
MathSAT mathsat-5.5.2-linux-x86_64-Main_default unknown ❌ 51.72180 51.71320
Yices2 Yices 2.6.0_default sat ✅ 71.06220 71.05660
Z3 z3-4.7.1_default unknown ❌ 1200.05000 1200.01000
SMT-COMP 2019 0.40 (3/5) Boolector Boolector-wrapped-sq_default sat ✅ 967.50600 967.19700
Poolector-wrapped-sq_default sat ✅ 1105.84000 4383.51000
CVC4 CVC4-2019-06-03-d350fe1-wrapped-sq_default unknown ❌ 2400.04000 1967.00000
Par4 Par4-wrapped-sq_default sat ✅ 80.59190 215.27000
Yices2 Yices 2.6.2-wrapped-sq_default sat ✅ 87.17310 87.17240
Z3 z3-4.8.4-d6df51951f4c-wrapped-sq_default unknown ❌ 2400.05000 2399.06000
SMT-COMP 2021 0.67 (1/3) MathSAT mathsat-5.6.6_default unknown ❌ 392.52000 392.44000
Yices2 Yices 2.6.2 bug fix_default sat ✅ 87.56060 87.51230
Yices 2.6.2 for SMTCOMP2020_default sat ✅ 82.78100 82.77240
Z3 z3-4.8.11_default unknown ❌ 1200.08000 1199.82000
SMT-COMP 2022 0.60 (2/5) Bitwuzla Bitwuzla-wrapped_default sat ✅ 241.83700 241.83700
cvc5 cvc5-default-2022-07-02-b15e116-wrapped_sq unknown ❌ 1200.05000 591.79000
MathSAT MathSAT-5.6.8_default unknown ❌ 404.68800 404.58000
Yices2 Yices 2.6.2 for SMTCOMP 2021_default sat ✅ 86.66820 86.65800
Z3 z3-4.8.17_default unknown ❌ 1200.03000 1199.59000
SMT-COMP 2025 0.67 (2/6) Bitwuzla Bitwuzla sat ✅ 484.67982 484.42131
cvc5 cvc5 unknown ❌ 279.77588 281.66758
SMTInterpol SMTInterpol unknown ❌ 1201.48526 1231.29353
Yices2 Yices2 sat ✅ 56.50040 56.36666
Z3 Z3-Owl-base unknown ❌ 1201.44261 1201.17519
Z3-Owl Z3-Owl unknown ❌ 1201.75573 1201.19044