Benchmark

non-incremental/QF_BV/brummayerbiere3/isqrtadd.smt2

Integer square root algorithm isqrt(x), where x is an unsigned 32 bit integer.
From the book "Hacker's delight" by Henry S. Warren, Jr., page 210
We use a variant of the algorithm that uses "add" instead of "or" in the loop.

We show that if the most significant bit of x is zero, then 
y^2 == x or (y^2 < x and (y+1)^2 > x) holds, where y is the result.

Contributed by Robert Brummayer (robert.brummayer@gmail.com)
Benchmark
Size5162
Compressed Size1287
License Creative Commons Attribution 4.0 International (CC-BY-4.0)
Categorycrafted
First Occurrence2009-08-02
Generated By
Generated On
Generator
Dolmen OK1
strict Dolmen OK1
check-sat calls1
Query 1
Status unsat
Inferred Status unsat
Size 5154
Compressed Size1302
Max. Term Depth58
Asserts 1
Declared Functions0
Declared Constants1
Declared Sorts 0
Defined Functions0
Defined Recursive Functions 0
Defined Sorts0
Constants0
Declared Datatypes0

Symbols

ite50 not1 =18 let49
extract1 bvnot3 bvand1 bvor2
bvadd33 bvmul2 bvsub15 bvult2
bvule16 bvlshr31 zero_extend2

Evaluations

Evaluation Rating Solver Variant Result Wallclock CPU Time
SMT Evaluation 2013 1.00 (0/9) 4Simp 4Simp-SMT-COMP-2012 default unknown ❌
Abziz abziz_portfolio_2011_minfeatures_2 default unknown ❌
abziz_portfolio_2011_solvers_2 default unknown ❌
abziz_portfolio_2012_minfeatures default unknown ❌
abziz_portfolio_2012_solvers default unknown ❌
AbzizPortfolio-SMT-COMP-2012 default unknown ❌
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 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-HeavyBV-SMT-COMP-2012 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-2010 default unknown ❌
SONOLAR-SMT-COMP-2011 default unknown ❌
SONOLAR-SMT-COMP-2012 default unknown ❌
STP STP2-SMT-COMP-2011 default unknown ❌
STP2-SMT-COMP-2012 default unknown ❌
simplifyingSTP-SMT-COMP-2010 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.11 (8/9) 4Simp 4Simp - 2014 default unsat ✅ 67.60540 67.62270
Abziz abziz_portfolio_all_features default unsat ✅ 225.73700 225.73900
abziz_portfolio_min_features default unsat ✅ 320.70500 320.71900
Boolector Boolector boolector unsat ✅ 139.77000 139.82700
CVC4 CVC4 f7118b2 default unknown ❌ 1197.46000 2402.10000
MathSAT MathSAT-5.2.12-Main default unsat ✅ 1197.06000 1197.48000
SONOLAR sonolar_smtcomp-2014 default unsat ✅ 81.12580 81.14170
STP stp-cryptominisat4 default unsat ✅ 109.95500 109.98600
Yices2 Yices-2.2.1-smtcomp2014 default unsat ✅ 843.03300 843.36600
Z3 Z3-4.3.2.a054b099c1d6-x64-debian-6.0.6-SMT-COMP-2014 default unsat ✅ 433.02900 433.19400
SMT-COMP 2015 0.14 (6/7) Boolector Boolector SMT15 QF_BV final boolector_qf_bv unsat ✅ 195.51900 195.57500
CVC4 CVC4-master-2015-06-15-9b32405-main default unsat ✅ 606.49300 1217.34000
CVC4-experimental-2015-06-15-ff5745a-main default unsat ✅ 223.91500 448.99900
MathSAT MathSat 5.3.6 main smtcomp2015_main unsat ✅ 374.57000 374.71900
SMT-RAT SMT-RAT-final default unknown ❌ 2400.01000 2400.91000
STP stp-cryptominisat4 default unsat ✅ 110.08600 110.12600
stp-cmsat4-v15 default unsat ✅ 73.80000 73.82980
stp-cmsat4-mt-v15 default unknown ❌ 0.07022 0.06899
stp-minisat-v15 default unsat ✅ 261.80000 261.90600
Yices2 Yices default unsat ✅ 823.17200 823.49700
Z3 z3 4.4.0 default unsat ✅ 380.78000 380.93400
SMT-COMP 2016 ABC ABC_default default_abc unsat ✅ 273.00300 273.14400
ABC_glucose glucose unsat ✅ 58.60070 58.63230
Boolector Boolector boolector unsat ✅ 172.61200 172.72300
Boolector preprop boolector unsat ✅ 174.60000 174.69600
CVC4 CVC4-master-2016-05-27-cfef263-main default unsat ✅ 404.11800 811.54700
MapleSTP MapleSTP default unsat ✅ 105.14800 105.20300
MapleSTP-mt default unsat ✅ 75.89060 301.27200
MathSAT mathsat-5.3.11-linux-x86_64-Main default unsat ✅ 525.36600 525.64500
MinkeyRink Minkeyrink 2016 default unsat ✅ 47.98440 189.18300
Q3B Q3B default unsat ✅ 1722.24000 5054.88000
STP stp-cms-exp-2016 default unsat ✅ 94.71220 94.75500
stp-cms-mt-2016 default unsat ✅ 52.39910 207.83900
stp-cms-st-2016 default unsat ✅ 64.39870 64.34000
stp-minisat-st-2016 default unsat ✅ 2149.88000 2151.11000
Yices2 Yices-2.4.2 default unsat ✅ 452.26300 452.49100
Z3 z3-4.4.1 default unsat ✅ 420.44300 420.68200
SMT-COMP 2017 0.25 (6/8) Boolector Boolector+CaDiCaL SMT17 final boolector unsat ✅ 216.35400 216.33900
Boolector SMT17 final boolector unsat ✅ 191.77500 191.73600
CVC4 CVC4-smtcomp2017-main default unsat ✅ 282.58800 566.79100
MathSAT mathsat-5.4.1-linux-x86_64-Main default unknown ❌ 600.03800 599.94000
MinkeyRink MinkeyRink 2017.3a default unsat ✅ 139.01500 171.31800
Q3B Q3B default unknown ❌ 600.07800 1784.36000
STP stp_st default unsat ✅ 76.68500 76.68400
stp_mt default unsat ✅ 78.34780 250.17600
Yices2 Yices2-Main default unsat ✅ 512.47700 512.39100
Z3 z3-4.5.0 default unsat ✅ 576.63600 576.63700
SMT-COMP 2018 Boolector Boolector_default unsat ✅ 235.55100 235.53400
CVC4 master-2018-06-10-b19c840-competition-default_default unsat ✅ 158.13800 158.11200
MathSAT mathsat-5.5.2-linux-x86_64-Main_default unsat ✅ 562.42200 562.39500
MinkeyRink Minkeyrink MT_mt unsat ✅ 68.04950 269.83000
Minkeyrink ST_st unsat ✅ 100.04300 100.01600
STP STP-CMS-st-2018_default-no-stderr unsat ✅ 85.32900 85.32590
STP-CMS-mt-2018_multicore-no-stderr unsat ✅ 52.06560 206.89400
STP-Riss-st-2018_riss-no-stderr unsat ✅ 83.02070 83.01350
Yices2 Yices 2.6.0_default unsat ✅ 332.39600 332.39900
Z3 z3-4.7.1_default unsat ✅ 803.86900 803.80100
SMT-COMP 2019 Boolector Boolector-wrapped-sq_default unsat ✅ 87.05620 86.99000
Poolector-wrapped-sq_default unsat ✅ 89.66870 355.09000
Boolector-ReasonLS boolector-ReasonLS-wrapped-sq_default unsat ✅ 105.19000 105.19100
CVC4 CVC4-2019-06-03-d350fe1-wrapped-sq_default unsat ✅ 111.07700 111.08400
MinkeyRink MinkeyRink MT-wrapped-sq_default unsat ✅ 71.34500 283.27100
MinkeyRink ST-wrapped-sq_default unsat ✅ 104.16100 104.15600
Par4 Par4-wrapped-sq_default unsat ✅ 176.62900 529.70000
STP STP-2019-wrapped-sq_default unsat ✅ 92.30640 92.30130
stp-mergesat-fixed-wrapped-sq_default unsat ✅ 60.12900 60.12030
stp-minisat-wrapped-sq_default unsat ✅ 176.71800 176.70200
stp-mt-wrapped-sq_default unsat ✅ 54.55280 216.35800
stp-portfolio-fixed-wrapped-sq_default unsat ✅ 177.60600 333.57400
stp-riss-wrapped-sq_default unknown ❌ 0.06502 0.06524
Yices2 Yices 2.6.2-wrapped-sq_default unsat ✅ 303.14100 303.10900
Yices 2.6.2 Cadical-wrapped-sq_default unsat ✅ 56.49730 56.49110
Yices 2.6.2 Cryptominisat-wrapped-sq_default unsat ✅ 72.94290 72.93880
Yices 2.6.2 MCSAT BV-wrapped-sq_default unknown ❌ 2400.02000 2399.93000
Yices 2.6.2 new bvsolver-wrapped-sq_default unsat ✅ 73.24220 73.24240
Z3 z3-4.8.4-d6df51951f4c-wrapped-sq_default unsat ✅ 215.67300 215.65600
SMT-COMP 2020 0.22 (7/9) Bitwuzla Bitwuzla-fixed_default unsat ✅ 84.72550 84.71430
Boolector Boolector-wrapped-sq_default unsat ✅ 87.24870 87.24310
Poolector-wrapped-sq_default unsat ✅ 90.46540 357.07000
CVC4 CVC4-sq-final_default unsat ✅ 114.74400 114.74200
LazyBV2Int LazyBV2Int20200523_default.sh unknown ❌ 1200.07000 1199.95000
MathSAT MathSAT5_default.sh unsat ✅ 843.76200 843.56100
MinkeyRink MinkeyRink Solver 2020.3.1_default unknown ❌ 0.06567 0.06591
MinkeyRink Solver 2020.3_default unsat ✅ 108.18800 429.67000
STP STP_default unsat ✅ 83.92750 333.33800
STP ++ Mergsat v1_default unsat ✅ 102.22900 102.21600
Yices2 Yices 2.6.2 bug fix_default unsat ✅ 47.70370 47.70210
Z3 z3-4.8.8_default unknown ❌ 1200.01000 1200.01000
SMT-COMP 2023 0.17 (5/6) Bitwuzla Bitwuzla-fixed_default unsat ✅ 93.98130 93.96690
cvc5 cvc5-default-2023-05-16-ea045f305_sq unsat ✅ 89.11370 89.11250
STP STP 2022.4_default unsat ✅ 62.93530 62.93290
STP 2022.4_default unsat ✅ 62.43020 62.42030
UltimateEliminator UltimateIntBlastingWrapper+SMTInterpol_default unknown ❌ 4.47943 11.59400
Yices2 Yices 2 for SMTCOMP 2023_default unsat ✅ 345.44100 345.39300
Z3-Owl z3-Owl-Final_default unsat ✅ 639.40000 639.38200
z3-Owl-Final_default unsat ✅ 116.36300 116.33900
SMT-COMP 2024 0.17 (5/6) Bitwuzla Bitwuzla unsat ✅ 40.31429 40.21329
cvc5 cvc5 unsat ✅ 75.35815 75.21754
SMTInterpol SMTInterpol unknown ❌ 27.94082 44.54398
STP STP unsat ✅ 62.27866 62.15236
Yices2 Yices2 unsat ✅ 34.05703 33.95015
Z3alpha Z3-alpha unsat ✅ 395.26134 395.02166
SMT-COMP 2025 0.11 (8/9) Bitwuzla Bitwuzla unsat ✅ 35.96276 35.84137
Bitwuzla-MachBV-base unsat ✅ 34.27232 34.14444
Bitwuzla-MachBV Bitwuzla-MachBV unsat ✅ 37.94427 37.81240
BVDecide bv_decide unsat ✅ 137.83417 137.67505
bv_decide-nokernel unsat ✅ 116.81469 116.68563
cvc5 cvc5 unsat ✅ 63.70092 63.57502
SMTInterpol SMTInterpol unknown ❌ 9.94807 23.65330
Yices2 Yices2 unsat ✅ 29.42966 29.30629
Z3alpha Z3-alpha unsat ✅ 205.66685 821.04053
Z3 Z3-alpha-base unsat ✅ 117.82562 117.69174
Z3-Owl-base unsat ✅ 499.19296 498.98741
z3siri-base unsat ✅ 120.74436 120.61480
Z3-Owl Z3-Owl unsat ✅ 450.02327 449.82530