Soundness Bug with QF_NRA formula.
(declare-fun c () Real) (declare-fun d () Real) (assert (when execute above formula in dreal 'dreal --precision 1e-9 --model file.smt2', dReal returns 'delta-sat'.
delta-sat with delta = 1e-100 c : [-1.797693134862315708e+308, -1.797693134862315708e+308] d : [-0.1666666666666666852, -0.1666666666666666852]But I think this formula is unsat.
and according to following unsatisfiable formula, dreal returns 'delta-sat'.
(declare-fun x () Real) (declare-fun y () Real) (assert ( x 2.0)) (assert (But I also think this formula is unsat. Thank you.
Version Info: dReal : 'dReal v4.21.06.2 (Release Build)' OS :
Distributor ID: Ubuntu Description: Ubuntu 18.04.3 LTS Release: 18.04 Codename: bionic
Hi,
-
delta-sat doesn't not exclude the case where the original formula is unsatisfiable. It merely indicates that the delta-perturbation of the original formula is satisfiable.
-
If you provide finite bounds on
c,x,y, they will turn into UNSAT. In theory, dReal should be able to branch on any intervaliif|i| > delta. However, because our implementation is using IEEE-754doubles to represent intervals, it is possible to have a case where|i| > deltabut we cannot find subintervalsi1andi2which coveri. We have been thinking about a better way to handle this case. We will update the solver behavior in the future.