Closed PatrickTrentin88 closed 6 years ago
I just found out that for some reasons z3
has changed output format and it now requires
(get-objectives)
to appear in the formula.
I am unsure why this change was introduced, but I think the issue can be closed.
note: if the command (get-objectives)
is issued before any (check-sat)
, the error that is printed is somewhat confusing, perhaps it can be adjusted.
It was changed because Levent Erkok pointed out that all other SMT-LIB2 commands print a single S-expression in response to a command. Printing both "sat" and the objectives would break this.
@NikolajBjorner so did you change the 'pareto-optimization' output as well?
I believe it is addressed. Levent also pointed out that the output for Pareto fronts was not conformant, or you did. You have to call check-sat multiple times to get the different fronts.
Thanks for your explanation, I was not aware of these changes until now.
I assume that any assert/assert-soft/reset/push/pop/minimize/maximize command 'resets' the pareto search, is that correct? Are there any other actions that may cause the pareto search to start from scratch at the next 'check-sat'?
z3 version: 5bc4c9809e232d63f46018b200cb930bca993ce5
issue:
z3
does not print the value of objective functions.steps to reproduce:
The following formula:
produces the following output:
whereas I would have expected something similar:
Which is the output I was used to see when running
z3
.Has anything changed in the source code? Am I doing something wrong?