Z3(版本4.4.1)报告"未知"对于我编写的工具生成的许多查询,我已将问题缩小到使用(_ as-array ...)
:
(declare-sort MyType)
(declare-fun f (MyType) Bool)
(declare-const a1 (Array MyType Bool))
(declare-const a2 (Array MyType Bool))
; This works fine! (output is SAT)
(push)
(assert (distinct a1 a2))
(check-sat)
(pop)
; This does not! (output is UNKNOWN)
(push)
(assert (distinct a1 (_ as-array f)))
(check-sat)
(pop)
我是否陷入了一个已知不可判断的案件(或在Z3中未实施)?