Я хочу знать, могу ли я заставить 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)
«Хранилище» в первом утверждении не влияет на второе утверждение. Могу ли я сделать операцию сохранения в массиве, что приведет к вечным изменениям в массиве? Я имею в виду, что если я использую хранилище для массива, то массив изменяется навсегда. например, если после того, как я использую «(сохранить a1 x 2)», то каждый раз (выберите a1 x) равно 2. Кто-нибудь знает это? Спасибо.