Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"early unsat" bookeeping error #196

Open
robdockins opened this issue Apr 1, 2022 · 0 comments
Open

"early unsat" bookeeping error #196

robdockins opened this issue Apr 1, 2022 · 0 comments
Labels
bug Something isn't working

Comments

@robdockins
Copy link
Contributor

Yices has an annoying "feature" where it will sometimes return an unsat result as soon as it discovers that the user has asserted an inconsistent set of assumptions, but before the user has called check. In this state, Yices will refuse to accept additional assertions, etc.

To handle this, we explicitly look for these early unsat results and pretend that we are doing work and sending results to yices, etc. until check is called. This is made more complicated by the need to pretend that we are also doing push/pop sequences, all while avoiding interacting with yices until a sufficient number of pops are performed to return to a (potentially) satisfiable state. We have an accounting scheme that mostly works.

However, I've just discovered that the bookeeping doesn't appear to be working correctly if an early unsat is encountered at the very top level of interaction (i.e., we have not done any previous push commands). The result will be a mysterious and unpleasant error reading "user error (Could not pop from empty entry stack.)" indicating that we have violated an internal invariant of the SMTWriter module.

@robdockins robdockins added the bug Something isn't working label Apr 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant