I'm not sure if this is expected, because I can't find any description of what Z3's power operator is supposed to do, but apparently the following returns unsat:
(assert (not (= (^ 0 (- 2)) 0.0)))
(check-sat)
I didn't expect this result because 0 raised to the power of -2 is usually infinite in math, not zero, so I expected Z3 to return unknown (or perhaps sat?). I get the same unsat result if I use reals (i.e. if I change 0 => 0.0 and 2 => 2.0.
Also, Z3 appears to return unsat for this input, as expected:
I'm not sure if this is expected, because I can't find any description of what Z3's power operator is supposed to do, but apparently the following returns
unsat
:I didn't expect this result because
0
raised to the power of-2
is usually infinite in math, not zero, so I expected Z3 to returnunknown
(or perhapssat
?). I get the sameunsat
result if I use reals (i.e. if I change0 => 0.0
and2 => 2.0
.Also, Z3 appears to return
unsat
for this input, as expected:But it returns
unknown
for the following similar one:... even though replacing that assertion with
(assert (not (= (^ 1 0) 1.0))))
makes Z3 returnunsat
as expected.