Benchmark

non-incremental/QF_BV/brummayerbiere3/isqrtnoif.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 does not use an "if" inside 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
Size4748
Compressed Size1143
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 4740
Compressed Size1140
Max. Term Depth57
Asserts 1
Declared Functions0
Declared Constants1
Declared Sorts 0
Defined Functions0
Defined Recursive Functions 0
Defined Sorts0
Constants0
Declared Datatypes0

Symbols

ite3 not1 =2 let48
extract1 bvnot19 bvand32 bvor50
bvadd1 bvmul2 bvsub31 bvult2
bvlshr31 bvashr16 zero_extend3

Evaluations

Evaluation Rating Solver Variant Result Wallclock CPU Time
SMT Evaluation 2013 0.11 (8/9) 4Simp 4Simp-SMT-COMP-2012 default unsat ✅ 121.45900
Abziz abziz_portfolio_2011_minfeatures_2 default unsat ✅ 227.72900
abziz_portfolio_2011_solvers_2 default unsat ✅ 228.33600
abziz_portfolio_2012_minfeatures default unsat ✅ 170.04300
abziz_portfolio_2012_solvers default unsat ✅ 68.74510
AbzizPortfolio-SMT-COMP-2012 default unsat ✅ 430.34300
Boolector Boolector-1.5.118-SMT-EVAL-2013 default unsat ✅ 151.23600
Boolector-SMT-COMP-2011 default unsat ✅ 224.09100
Boolector-SMT-COMP-2012 default unsat ✅ 165.17300
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 unsat ✅ 143.19300
MathSAT MathSAT5-5.2.6-SMT-EVAL-2013 default unsat ✅ 171.19300
MathSAT5-HeavyBV-SMT-COMP-2012 default unsat ✅ 155.60000
MathSAT5-SMT-COMP-2011 default unsat ✅ 201.31300
MathSAT5-SMT-COMP-2012 default unsat ✅ 222.70800
SONOLAR SONOLAR-2013-05-15-SMT-EVAL-2013 default unsat ✅ 337.54600
SONOLAR-SMT-COMP-2010 default unsat ✅ 739.77200
SONOLAR-SMT-COMP-2011 default unsat ✅ 396.93100
SONOLAR-SMT-COMP-2012 default unsat ✅ 517.87200
STP STP2-SMT-COMP-2011 default unsat ✅ 240.92500
STP2-SMT-COMP-2012 default unsat ✅ 63.17390
simplifyingSTP-SMT-COMP-2010 default unsat ✅ 124.85600
Z3 Z3-4.3.2.a054b099c1d6-x64-debian-6.0.6-SMT-EVAL-2013 default unsat ✅ 290.23200
Z3-SMT-COMP-2011 default unsat ✅ 275.79100
SMT-COMP 2014 0.11 (8/9) 4Simp 4Simp - 2014 default unsat ✅ 82.85770 82.88440
Abziz abziz_portfolio_all_features default unsat ✅ 67.99220 67.91340
abziz_portfolio_min_features default unsat ✅ 83.55020 83.46510
Boolector Boolector boolector unknown ❌ 2399.12000 2400.07000
CVC4 CVC4 f7118b2 default unsat ✅ 104.91800 210.51500
MathSAT MathSAT-5.2.12-Main default unsat ✅ 228.40600 228.47500
SONOLAR sonolar_smtcomp-2014 default unsat ✅ 102.79600 102.82500
STP stp-cryptominisat4 default unsat ✅ 113.23000 113.26300
Yices2 Yices-2.2.1-smtcomp2014 default unsat ✅ 297.99300 298.12400
Z3 Z3-4.3.2.a054b099c1d6-x64-debian-6.0.6-SMT-COMP-2014 default unsat ✅ 285.54400 285.59700
SMT-COMP 2015 0.14 (6/7) Boolector Boolector SMT15 QF_BV final boolector_qf_bv unsat ✅ 2007.25000 2007.72000
CVC4 CVC4-master-2015-06-15-9b32405-main default unsat ✅ 112.75900 226.30000
CVC4-experimental-2015-06-15-ff5745a-main default unsat ✅ 136.15400 273.15700
MathSAT MathSat 5.3.6 main smtcomp2015_main unsat ✅ 108.94600 108.99000
SMT-RAT SMT-RAT-final default unknown ❌ 2400.01000 2401.01000
STP stp-cryptominisat4 default unsat ✅ 123.02300 123.08300
stp-cmsat4-v15 default unsat ✅ 106.06300 106.10600
stp-cmsat4-mt-v15 default unknown ❌ 0.07805 0.07699
stp-minisat-v15 default unsat ✅ 248.77800 248.89800
Yices2 Yices default unsat ✅ 250.93700 251.03900
Z3 z3 4.4.0 default unsat ✅ 383.34400 383.50800
SMT-COMP 2016 ABC ABC_default default_abc unsat ✅ 298.85700 299.04100
ABC_glucose glucose unsat ✅ 57.38250 57.41140
Boolector Boolector boolector unsat ✅ 1756.67000 1757.65000
Boolector preprop boolector unsat ✅ 1784.65000 1785.68000
CVC4 CVC4-master-2016-05-27-cfef263-main default unsat ✅ 147.11500 295.22000
MapleSTP MapleSTP default unsat ✅ 70.74440 70.78480
MapleSTP-mt default unsat ✅ 56.61890 224.81600
MathSAT mathsat-5.3.11-linux-x86_64-Main default unsat ✅ 111.23000 111.29400
MinkeyRink Minkeyrink 2016 default unsat ✅ 93.43140 369.70600
Q3B Q3B default unsat ✅ 1765.93000 5300.03000
STP stp-cms-exp-2016 default unsat ✅ 91.89090 91.93840
stp-cms-mt-2016 default unsat ✅ 82.42100 327.30700
stp-cms-st-2016 default unsat ✅ 86.13560 86.18550
stp-minisat-st-2016 default unsat ✅ 2071.25000 2072.63000
Yices2 Yices-2.4.2 default unsat ✅ 293.45700 293.62700
Z3 z3-4.4.1 default unsat ✅ 322.86600 323.06000
SMT-COMP 2017 0.25 (6/8) Boolector Boolector+CaDiCaL SMT17 final boolector unknown ❌ 600.01600 599.97100
Boolector SMT17 final boolector unknown ❌ 600.01400 599.93100
CVC4 CVC4-smtcomp2017-main default unsat ✅ 148.81400 298.57900
MathSAT mathsat-5.4.1-linux-x86_64-Main default unsat ✅ 117.43300 117.42500
MinkeyRink MinkeyRink 2017.3a default unsat ✅ 118.10700 229.86000
Q3B Q3B default unknown ❌ 600.03900 1799.55000
STP stp_st default unsat ✅ 104.48300 104.48500
stp_mt default unsat ✅ 109.26700 347.84800
Yices2 Yices2-Main default unsat ✅ 259.84900 259.82200
Z3 z3-4.5.0 default unsat ✅ 384.81100 384.79100
SMT-COMP 2018 Boolector Boolector_default unsat ✅ 242.77200 242.73400
CVC4 master-2018-06-10-b19c840-competition-default_default unsat ✅ 121.95200 121.93500
MathSAT mathsat-5.5.2-linux-x86_64-Main_default unsat ✅ 107.81300 107.79900
MinkeyRink Minkeyrink MT_mt unsat ✅ 68.73560 272.53700
Minkeyrink ST_st unsat ✅ 117.18700 117.18300
STP STP-CMS-st-2018_default-no-stderr unsat ✅ 83.57630 83.57330
STP-CMS-mt-2018_multicore-no-stderr unsat ✅ 67.23910 267.10600
STP-Riss-st-2018_riss-no-stderr unsat ✅ 104.51400 104.49200
Yices2 Yices 2.6.0_default unsat ✅ 273.40900 273.39700
Z3 z3-4.7.1_default unsat ✅ 422.73000 422.72700
SMT-COMP 2019 Boolector Boolector-wrapped-sq_default unsat ✅ 1427.58000 1427.50000
Poolector-wrapped-sq_default unsat ✅ 964.04300 3818.76000
Boolector-ReasonLS boolector-ReasonLS-wrapped-sq_default unsat ✅ 1284.93000 1284.80000
CVC4 CVC4-2019-06-03-d350fe1-wrapped-sq_default unsat ✅ 93.33890 93.32540
MinkeyRink MinkeyRink MT-wrapped-sq_default unsat ✅ 70.19630 278.66600
MinkeyRink ST-wrapped-sq_default unsat ✅ 115.60200 115.58600
Par4 Par4-wrapped-sq_default unsat ✅ 134.35500 402.80000
STP STP-2019-wrapped-sq_default unsat ✅ 88.34540 88.28840
stp-mergesat-fixed-wrapped-sq_default unsat ✅ 67.75150 67.75230
stp-minisat-wrapped-sq_default unsat ✅ 241.53100 241.52200
stp-mt-wrapped-sq_default unsat ✅ 47.87520 189.96400
stp-portfolio-fixed-wrapped-sq_default unsat ✅ 241.78200 402.11200
stp-riss-wrapped-sq_default unknown ❌ 0.06852 0.06874
Yices2 Yices 2.6.2-wrapped-sq_default unsat ✅ 223.39400 223.40400
Yices 2.6.2 Cadical-wrapped-sq_default unsat ✅ 67.23330 67.23240
Yices 2.6.2 Cryptominisat-wrapped-sq_default unsat ✅ 69.46950 69.47310
Yices 2.6.2 MCSAT BV-wrapped-sq_default unsat ✅ 237.35400 237.33800
Yices 2.6.2 new bvsolver-wrapped-sq_default unsat ✅ 79.93960 79.93340
Z3 z3-4.8.4-d6df51951f4c-wrapped-sq_default unsat ✅ 141.47300 141.47100
SMT-COMP 2020 0.22 (7/9) Bitwuzla Bitwuzla-fixed_default unsat ✅ 118.70900 118.70000
Boolector Boolector-wrapped-sq_default unknown ❌ 1200.01000 1199.89000
Poolector-wrapped-sq_default unsat ✅ 1035.05000 4100.58000
CVC4 CVC4-sq-final_default unsat ✅ 219.97400 219.96000
LazyBV2Int LazyBV2Int20200523_default.sh unknown ❌ 1200.11000 1199.66000
MathSAT MathSAT5_default.sh unsat ✅ 206.67300 206.65200
MinkeyRink MinkeyRink Solver 2020.3.1_default unknown ❌ 0.09545 0.09572
MinkeyRink Solver 2020.3_default unsat ✅ 124.68000 495.29600
STP STP_default unsat ✅ 89.19590 353.91800
STP ++ Mergsat v1_default unsat ✅ 104.07800 104.07500
Yices2 Yices 2.6.2 bug fix_default unsat ✅ 49.85330 49.85360
Z3 z3-4.8.8_default unknown ❌ 1200.02000 1199.90000
SMT-COMP 2021 Bitwuzla Bitwuzla-fixed_default unsat ✅ 115.64300 115.64200
MathSAT mathsat-5.6.6_default unsat ✅ 186.71000 186.69200
STP STP 2021.0_default unsat ✅ 88.41420 351.25400
Z3 z3-4.8.11_default unsat ✅ 180.88500 180.84700
SMT-COMP 2022 0.14 (6/7) Bitwuzla Bitwuzla-fixed_default unsat ✅ 114.70400 114.68100
Bitwuzla-wrapped_default unsat ✅ 119.07700 119.07700
cvc5 cvc5-default-2022-07-02-b15e116-wrapped_sq unsat ✅ 249.09800 249.09300
MathSAT MathSAT-5.6.8_default unsat ✅ 173.39000 173.32100
STP STP 2022.4_default unsat ✅ 80.42470 80.43000
Yices2 Yices 2.6.2 for SMTCOMP 2021_default unsat ✅ 47.83210 47.82770
Z3++BV z3++bv_0702_default unsat ✅ 75.30430 75.29940
Z3 z3-4.8.17_default unknown ❌ 1200.08000 1199.98000
SMT-COMP 2024 0.17 (5/6) Bitwuzla Bitwuzla unsat ✅ 56.77630 56.67287
cvc5 cvc5 unsat ✅ 224.66851 224.40601
SMTInterpol SMTInterpol unknown ❌ 1201.71746 1249.65700
STP STP unsat ✅ 66.89198 66.75595
Yices2 Yices2 unsat ✅ 37.10555 37.00407
Z3alpha Z3-alpha unsat ✅ 280.58056 280.36614