Непонятно, о чем вы спрашиваете; но когда z3 дает вам модель, это просто словарь, отображающий переменные в их значения. Вы можете легко держать их в Python:
from z3 import *
s = Solver()
x, y, z = Ints('x y z')
s.add(x + y > 5)
s.add(ForAll([z], z > z-1))
s.check()
m = s.model()
print m
# get the variables:
for v in m:
print v
Это печатает:
[y = 0, x = 6]
y
x
Как видите, y
и x
есть, а z
нет; как вы хотели, я думаю. Если у вас есть несколько моделей, вы можете просто запросить их по отдельности, искать различия и заниматься программированием по вашему желанию. Это то, что вы ищете?