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

Logic autodetection is wrong using yices and SReal #209

Closed
rwbarton opened this issue Jan 5, 2016 · 2 comments
Closed

Logic autodetection is wrong using yices and SReal #209

rwbarton opened this issue Jan 5, 2016 · 2 comments

Comments

@rwbarton
Copy link

rwbarton commented Jan 5, 2016

When I try to solve a problem involving SReal with yices, I get this error from yices:

(error "at line 8, column 19: undefined sort: Real")

From the verbose output:

(set-logic QF_AUFLIA); has algebraic reals, using solver-default logic.

This is wrong of course, since QF_AUFLIA does not include reals at all.

No big deal, since I can just set the logic manually.

LeventErkok added a commit that referenced this issue Jan 6, 2016
@LeventErkok
Copy link
Owner

Quite right. Unfortunately, selecting a logic is not a straightforward thing to do in SMTLib.. Most solvers are lenient, so we can just not set the logic, and they'll do the right thing. Others, such as CVC4 and Yices, always require fixing the logic. In the CVC4 case, they have a magic ALL_SUPPORTED logic that acts as a fall-back, but not so for Yices. For instance, there doesn't seem to be a combination of Bit-vectors and reals together that we can use for Yices.

In any case, I altered the code so it picks QF_UFLRA for Yices when it detects reals are used; but this isn't guaranteed to work either if you also mix in bit-vectors for the reasons mentioned above. Hopefully this'll be "less incorrect" however. The fallback is always setting it by-hand of course, as you already discovered.

@LeventErkok
Copy link
Owner

Oh, and I still don't have a full-name for you to put in the ACKS list.. I do appreciate the feedback!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants