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)
最初のアサーションの「ストア」は、2番目のアサーションには影響しません。アレイにストア操作を実行して、アレイに永遠の変更を加えることはできますか?つまり、配列でstoreを使用すると、その場合、配列は永久に変更されます。たとえば、'(store a1 x 2)'を使用した後、毎回(select a1 x)は2に等しくなります。これを知っている人はいますか?ありがとう。