You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
z3 built on August 17 of 2021, produces the following nice output:
sat
((b false))
But a fresh compile of z3 from sources today produces:
sat
((b (forall ((x!1 Int)) (not (= x!1 1)))))
The response is correct, as (forall ((x!1 Int)) (not (= x!1 1))) is logically false; but it is very difficult of an upstream tool to parse and interpret this output for a call to get-value, especially when all we're looking for is a boolean value.
I'm not sure when this behavior did change, or perhaps it's tied to a configuration variable now? If so, I couldn't find anything appropriate in the z3 -pd list.
Just wanted to bring this to your attention should this be unintended. It breaks upstream tools that rely on Z3 to solve set-theoretic queries.
The text was updated successfully, but these errors were encountered:
Z3 is arguably responding "correctly" here, but this is a change in behavior; and makes the life of upstream tools rather hard when extracting models.
For this benchmark:
z3 built on August 17 of 2021, produces the following nice output:
But a fresh compile of z3 from sources today produces:
The response is correct, as
(forall ((x!1 Int)) (not (= x!1 1)))
is logicallyfalse
; but it is very difficult of an upstream tool to parse and interpret this output for a call toget-value
, especially when all we're looking for is a boolean value.I'm not sure when this behavior did change, or perhaps it's tied to a configuration variable now? If so, I couldn't find anything appropriate in the
z3 -pd
list.Just wanted to bring this to your attention should this be unintended. It breaks upstream tools that rely on Z3 to solve set-theoretic queries.
The text was updated successfully, but these errors were encountered: