特定のテキスト内の部分文字列を見つけるために、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 であってはならないときに、SAT であると言います。私は Z3 と SMT 理論にかなり慣れていないので、自分のコードの何が問題なのかわかりません。