[YICES-HELP] Search space
Bruno Dutertre
bruno at csl.sri.com
Fri Sep 7 10:24:09 PDT 2007
Stephan Zimmer wrote:
> Dear all,
>
> I'd like to ask one question which regards the boolean DPLL engine of yices: if I pass a large set of clauses (=> P C1), ..., (=> P Cn) to yices, where P is a propositional variable, and Ci clauses (including arithmeitcs), and additionally assert P to be false, then the whole context is trivially satisfiable (a model is simply given by (not P)).
>
> But, somehow in contrast to the intuition, yices needs a very long time to find this out, it seems that it is working on the formulae Fi even though this is not neccessary because a simply unit propagation step shows that P must be set to "false". What could be an explanation for this?
>
> Thanks in advance.
>
> Best,
> Stephan
Stephan,
That's correct. Yices has to assign a truth value to all
boolean variables including all formulas Fi's. There is no code
to detect whether or not Fi is relevant. So even though
P is false and all clauses are true, the search continues.
In your example, the cost is in finding consistent truth values
for a set of non-boolean formulas F_1 .... F_n. That can be expensive,
depending on what the formulas look like. Since Yices tries to build
a full model, this cost cannot be avoided altogether. Of course, if
it's known that the truth values of F_1 ... F_n do not really matter then
building a full model could be done cheaply. We'll investigate ways
of improving this in future versions of Yices.
The first version of Yices from 2005 maintained information about
relevant Boolean variables but that did not pay off overall in the
benchmarks we had at the time. It looks like we may need to put this
back.
Bruno
More information about the YICES-HELP
mailing list