-
Notifications
You must be signed in to change notification settings - Fork 36
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
Wrong unsat #4
Comments
FYI, this is a bug of dReal, not IBEX. Let me revisit this after finishing up |
Great :)
|
|
It kept haunting me so I spent a little more time on it to fix. When we convert an Enode expression |
You mean exp(y*log(x)) right? |
Yes. |
Btw let Zenna know about the new version with this problem fixed.
|
Thanks @soonhokong and @scungao, yes it builds. Sleep for more than four hours at a time! However, the following are both (wrongly) unsat
Also the following problem causes dReal to segfault
|
And the old version answers this particular problem correctly. |
The problem with rebuild? @soonhokong @zenna Were you building from a fresh clone of the source or updating a previous one? In the latter case, rm -rf the build directory and build again. I had a similar problem when seeing some seg faults.
|
@scungao I did a build from scratch. Do you get the same result on this example? |
@scungao I didn't do a fresh clone, but that shouldn't make a difference. I'll do it anyway. But from what I have seen it does look a lot faster. |
@zenna, I can reproduce the two wrongly UNSATs and one segmentation fault problem. Let me open two separate issues for them. |
This formula should be sat. New version returns unsat. Old version is correct.
(set-logic QF_NRA)
(declare-fun xd () Real)
(declare-fun theta () Real)
(declare-fun thetad () Real)
(declare-fun u () Real)
(assert (<= xd 10))
(assert (>= xd -10))
(assert (<= theta 4))
(assert (>= theta -4))
(assert (<= thetad 10))
(assert (>= thetad -10))
(assert (<= u 10))
(assert (>= u -10))
(assert (and (and (= thetad 0) (and (= xd 0) (= (/ (+ (+ (* (* (* 1.0 1.0) (sin theta)) (^ thetad 2)) (* 1.0 (* 9.8 (* (cos theta) (sin theta))))) u) (+ (* 1.0 (^ (sin theta) 2)) 2.0)) 0))) (= (/ (+ (+ (* (* (* (* 1.0 1.0) (sin theta)) (cos theta)) (^ thetad 2)) (* (* (+ 1.0 2.0) 9.8) (sin theta))) (* (cos theta) u)) (* (- 0 1.0) (+ (* 1.0 (^ (sin theta) 2)) 2.0))) 0)))
(check-sat)
(exit)
The text was updated successfully, but these errors were encountered: