Open philzook58 opened 2 years ago
Is the "bare" or
legal SMTLIB2? If so, perhaps we should report the issue to boolector (or submit a PR fixing it). If not, perhaps we should report the issue to Z3.
This is my vague understanding
or
isn't really part of the smtlib spec itself. And yet variable arity functions are not a feature of smtlib afaik. (ok maybe I'm wrong) So or
etc are special in sort of an understood but undocumented wayWe could kindly ask though
When running received error
Upon investigation it appears Z3 is printing smtlib differently in the new version. Here is a snippet of the problem
The bare
or
is presumably representingfalse
but is not accepted by boolector.A quick hacky fix is to change line 267 of z3_utils.ml to
But something more elegant may be desirable. I note that parsing the smtlib and doing to substitution over Sexp.t is not as straightforward as one might like. It is inefficient (who cares actually though), more importantly you have to deal with the escaping issues earlier. Such a fix still does not really get at the deeper issue of why these
or
are being generated anyway. Nevertheless, here's what I think such a transformation might look like