-
Couldn't load subscription status.
- Fork 35
Open
Description
Correct case (
(declare-fun x () Real)
(assert (= x (^ 0.5 1074.0)))
(assert (> x 0))
(check-sat)
dReal v4.21.06.1 returns:
delta-sat with delta = 0.001
x : [4.9406564584124654e-324, 4.9406564584124654e-324]
Unsound case (
(declare-fun x () Real)
(assert (= x (^ 0.5 1075.0)))
(assert (> x 0))
(check-sat)
dReal v4.21.06.1 returns:
unsat
The threshold of 1075 (approx. 1024) reminds me of floating point FTZ/DAZ, I will look into that too.
z3 and cvc5 both return SAT, but their internal representation is as a rational of two integers.
dReal3 also has this issue, but the threshold is between 100 and 101.
EDIT:
- 1075 makes sense for a FP FTZ/DAZ issue. See https://stackoverflow.com/questions/79359588/with-ieee-754-floating-point-numbers-is-underflow-still-better-than-overflow
Metadata
Metadata
Assignees
Labels
No labels