[SMT-LIB] QF_BV and division by zero
Trevor Hansen
trev_abroad at yahoo.com
Mon May 1 20:56:51 EDT 2017
Hi Clark,
I've implemented the proposed semantics in our solver, STP, and tested against SMTLIB QF_BV.
I believe that the status of four benchmarks needs to be changed to unsatisfiable, they are:QF_BV/spear/wget_v1.10.2/src_wget_vc18196.smt2
QF_BV/spear/wget_v1.10.2/src_wget_vc18197.smt2
QF_BV/spear/wget_v1.10.2/src_wget_vc18755.smt2
QF_BV/spear/wget_v1.10.2/src_wget_vc18756.smt2
Z3, the version of which I'm using that I believe implements the proposed semantics, gives the same results.
These benchmarks have been discussed previously:
http://www.cs.nyu.edu/pipermail/smt-lib/2008/000255.html
STP times-out/memory-outs on 42 benchmarks that have a known status and contain mod/div/rem. So I don't know if their result depends on the semantics of division/remainder-by-zero, they are listed below. These benchmarks may be structured to prevent division/remainder-by-zero. But unless someone else checks them, it seems best to me to set their status to unknown?
I've not checked the other affected divisions, e.g. BV, QF_AUFBV, QF_UFBV. Can someone else do this?
Division-by-zero in BV has been a pain for nearly a decade now, I'm looking forward to finally getting it resolved,
Trev.
-----
./QF_BV/bmc-bv-svcomp14/797336/s3_srvr_1_alt_true.BV.c.cil.c.17.smt2
./QF_BV/bmc-bv-svcomp14/797281/s3_srvr_1_alt_true.BV.c.cil.c.21.smt2
./QF_BV/challenge/892054/integerOverflow.smt2
./QF_BV/float/2016958/gaussian.c.125.smt2
./QF_BV/float/2016962/gaussian.c.175.smt2
./QF_BV/float/2016959/gaussian.c.75.smt2
./QF_BV/float/797539/sin2.c.10.smt2
./QF_BV/float/797442/sin2.c.15.smt2
./QF_BV/float/2016963/sin2.c.20.smt2
./QF_BV/log-slicing/815113/bvudiv_25.smt2
./QF_BV/log-slicing/815160/bvsdiv_19.smt2
./QF_BV/log-slicing/815168/bvsdiv_20.smt2
./QF_BV/log-slicing/815218/bvsdiv_21.smt2
./QF_BV/log-slicing/815248/bvsdiv_22.smt2
./QF_BV/log-slicing/815217/bvsdiv_23.smt2
./QF_BV/log-slicing/815185/bvsdiv_24.smt2
./QF_BV/log-slicing/815172/bvsdiv_25.smt2
./QF_BV/log-slicing/815226/bvsmod_17.smt2
./QF_BV/log-slicing/815112/bvsmod_18.smt2
./QF_BV/log-slicing/815239/bvsmod_19.smt2
./QF_BV/log-slicing/815158/bvsmod_20.smt2
./QF_BV/log-slicing/815190/bvsrem_17.smt2
./QF_BV/log-slicing/815235/bvsrem_18.smt2
./QF_BV/log-slicing/815138/bvsrem_19.smt2
./QF_BV/log-slicing/815111/bvsrem_20.smt2
./QF_BV/log-slicing/815146/bvudiv_18.smt2
./QF_BV/log-slicing/815207/bvudiv_19.smt2
./QF_BV/log-slicing/815133/bvudiv_20.smt2
./QF_BV/log-slicing/815150/bvudiv_21.smt2
./QF_BV/log-slicing/815192/bvudiv_22.smt2
./QF_BV/log-slicing/815234/bvudiv_23.smt2
./QF_BV/log-slicing/815246/bvudiv_24.smt2
./QF_BV/log-slicing/815144/bvurem_16.smt2
./QF_BV/log-slicing/815230/bvurem_17.smt2
./QF_BV/log-slicing/815116/bvurem_18.smt2
./QF_BV/log-slicing/815245/bvurem_19.smt2
./QF_BV/log-slicing/815215/bvurem_20.smt2
./QF_BV/log-slicing/815119/bvurem_21.smt2
./QF_BV/log-slicing/815137/bvurem_22.smt2
./QF_BV/galois/368975/iffyInterleavedModMult-128.smt2
./QF_BV/galois/368976/iffyInterleavedModMult-32.smt2
./QF_BV/galois/368978/iffyInterleavedModMult-8.smt2
Show original message On Sunday, 16 April 2017, 1:46, Clark Barrett <barrett at cs.stanford.edu> wrote:
Yes. I will circulate a new draft of QF_BV early next week.
-Clark
On Tue, Apr 11, 2017 at 11:05 PM, Trevor Hansen <trev_abroad at yahoo.com> wrote:
Hi Clark,
I think it's reasonable to go with the majority's preference for the division & remainder-by-zero semantics.
Is there still time to get it finalised in time for this year's SMTCOMP?
Thanks,
Trev.
On Tuesday, 4 April 2017, 21:28, Armin Biere <armin.biere at gmail.com> wrote:
With (bvurem x 0) = x we also get that bvurem is surjective.
Otherwise ~0 can not be produced (we came across this during
our work on local search with propagation). So it seems more
natural from this side too.
Armin
On Tue, Apr 4, 2017 at 10:31 AM, Vijay Ganesh <vijay.ganesh at uwaterloo.ca> wrote:
I agree. From my perspective, Bruno nailed the argument nicely.
Cheers,
Vijay Ganesh.
https://ece.uwaterloo.ca/~ vganesh
______________________________ __________
From: smt-lib-bounces at cs.nyu.edu [smt-lib-bounces at cs.nyu.edu] on behalf of Aina Niemetz [aina.niemetz at jku.at]
Sent: Tuesday, April 04, 2017 3:58 AM
To: Alberto Griggio; Bruno Dutertre; Clark Barrett; Martin Nyx Brain
Cc: Trevor Hansen; smt-lib at cs.nyu.edu
Subject: Re: [SMT-LIB] QF_BV and division by zero
I also agree with Bruno.
Aina
On 04/04/2017 08:39 AM, Alberto Griggio wrote:
>> From an implementation point of view, the simplest approach is one that
>> avoids special treatments for division by zero and makes things
>> uniform.
>
> [snip]
>
> I agree with Bruno.
>
> Alberto
> ______________________________ _________________
> SMT-LIB mailing list
> SMT-LIB at cs.nyu.edu
> http://www.cs.nyu.edu/mailman/ listinfo/smt-lib
>
______________________________ _________________
SMT-LIB mailing list
SMT-LIB at cs.nyu.edu
http://www.cs.nyu.edu/mailman/ listinfo/smt-lib
More information about the SMT-LIB
mailing list