我想知道,如果我能让 Z3“记住”数组的更新。
例如,以下输入是可满足的:
(declare-const x Int)
(declare-const a1 (Array Int Int))
(assert (= (select (store a1 x 2) x) 2))
(assert (not (= (select a1 x) 2)))
(check-sat)
第一个断言中的“存储”不影响第二个断言。我可以对阵列进行存储操作,从而导致阵列发生永久变化吗?我的意思是,如果我在数组上使用存储,那么数组将永远更改。例如,如果在我使用 '(store a1 x 2)' 之后,每次 (select a1 x) 都等于 2。有人知道吗?谢谢。