Кортеж python не находит отражение в Z3 кортежах. Вы можете создать тип кортежа для Z3 в следующем wayL
from z3 import *
a,b,c,d,e,f,g,h = Ints('a b c d e f g h')
tuple = Datatype('tuple')
tuple.declare('tuple',('1', IntSort()), ('2', IntSort()), ('3', IntSort()), ('4', IntSort()))
tuple = tuple.create()
tuple1=tuple.tuple(a,b,c,d)
tuple2=tuple.tuple(e,f,g,h)
# so far so good
s=Solver()
s.add(tuple1 != tuple2)
print s.check()
print s.model()
В этом случае вы получите кортеж неэквивалентности, что Z3 понимает. Z3 не понимает оператор! = Или == между кортежами python. Возможно, возможно расширить поддержку python до таких типов данных , но дистрибутив не поддерживает такие расширения.
Только один вопрос: могу ли я заменить кортежи массивами, размер которых будет установлен во время выполнения? А затем заполнить их и сравнить? –