1
下面的SMT2實例可以解決(它是UNSAT),但是如果我使用qfnra
求解器,結果是未知的。爲什麼這個非線性實例不能被QF_NRA求解器求解,但可以通過默認求解器解決?
(declare-fun NONDET_INT_32_1() Int)
(declare-fun lv_n_1_1() Int)
(declare-fun lv_n_8_1() Bool)
(declare-fun lv_n_9_1() Int)
(declare-fun lv_n_10_1() Bool)
(declare-fun lv_n_18_1() Bool)
(declare-fun lv_n_19_1() Int)
(declare-fun lv_n_15_1() Real)
(declare-fun lv_n_14_1() Int)
(assert (and true
(not (distinct lv_n_19_1 0))
(= lv_n_14_1 (* lv_n_1_1 lv_n_1_1))
(= lv_n_15_1 (to_real lv_n_14_1))
(= lv_n_18_1 (distinct (- lv_n_15_1 2.0) 0.0))
(= lv_n_19_1 (ite lv_n_18_1 1 0))
lv_n_10_1
(= lv_n_9_1 (ite lv_n_8_1 1 0))
(= lv_n_10_1 (distinct lv_n_9_1 0))
(= lv_n_8_1 (<= lv_n_1_1 10))
(>= lv_n_1_1 (- 10))
(= lv_n_1_1 NONDET_INT_32_1)
))
;(check-sat-using (then simplify sat qfnra))
(check-sat)
爲什麼會發生這種情況?