-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
iZ3 - wrong interpolant from Farkas proof #48
Comments
Interpolation doesn't actually support reals. Just the theory AUFLIA. I suspect there are several places it needs to be patched for real support. Thanks for sending the patch, though. |
Ken, could you add a check so we get better error messages for this and similar cases? We have existing probes for QF_AUFLIA in probe_arith.h/.cpp |
I fixed this problem (wrong interpolant) by preventing rounding of real inequalities in a couple of places. The question of how to give a better error message when interpolation fails is still open. Closing this issue, however. |
Z3 computes a wrong interpolant for the example below.
I think this is due to the "rounding off" done in order to deal with
integer inequalities, which is performed regardless of whether the input
inequality is over the integer or over the rationals.
I'm also attaching a tentative patch for the issue.
Here's an SMT-LIB2 example showing the problem:
Here's a tentative patch:
The text was updated successfully, but these errors were encountered: