I am playing around with Java Z3 API for a research problem and I am really confused about how this is happening:
I create a Solver
object and add a number of assertions, and repeatedly call the check()
method, adding additional assertions each time, until it returns UNSATISFIABLE
. Once it does, I call the getAssertions()
method on the original Solver
object and add all the assertions to a new Solver
object creating using the same Context
object using mkSolver()
. When I call check()
on the new Solver
object, it returns SATISFIABLE
.
How can two different SOLVER
objects with identical assertions and parameters be different in terms of satisfiablity? I'm not sure about the the models are used for evaluating satisfiability.