【发布时间】:2020-12-15 15:43:51
【问题描述】:
Z3 为简单问题提供未知数:
(assert
(forall ((y (Array Int Int)))
(= (select y 1) 0))
)
(check-sat)
我发现如果否定forall就会变成sat,但这似乎是一件特别简单的事情无法解决。
这会导致问题,因为我要解决的问题类别更像是,
(declare-fun u () Int)
(assert
(forall ((y (Array Int Int)) )
(=>
(= u 0) (<= (select y 1) 0))
)
)
(check-sat)
单独否定 forall 不是同一个问题,所以这里不能这样做。有什么方法可以向 Z3 提出这种类型的问题以获得 un/sat 结果?
【问题讨论】:
标签: arrays z3 quantifiers