我想使用Int向量作为数组索引。
蟒。
array = [12,45,66,34]
s= Solver()
x = Int('x')
s.add(array[x] == 66)
所以x应该是2 ..
我该怎么做?
答案 0 :(得分:2)
以下是一种方法:
from z3 import *
s = Solver ()
array = [12, 45, 66, 34]
A = Array ('A', IntSort(), IntSort())
i = 0
for elem in array:
A = Store(A, i, elem)
i = i + 1
x = Int ('x')
s.add(x >= 0)
s.add(x < len(array))
s.add(Select(A, x) == 66)
if s.check() == sat:
print s.model()
else:
print "Not found!"
打印:
$ python a.py
[x = 2]