我正在尝试在 Z3 中使用数组和量词来查找给定文本中的子字符串。
我的代码如下:
(declare-const a (Array Int Int))
(declare-const x Int)
;; a|A
(assert (or (= (select a 0) 61) (= (select a 0) 41)))
;; b|B
(assert (or (= (select a 1) 62) (= (select a 1) 42)))
;; c|C
(assert (or (= (select a 2) 63) (= (select a 2) 43)))
(assert (>= x 0))
(assert (< x 3))
(assert (exists ((i Int)) (= (select a i) 72) ))
(check-sat)
Z3 在不应该的时候说那是 SAT。我对 Z3 和 SMT 理论相当陌生,我无法弄清楚我的代码有什么问题。