Есть ли способ получить соответствующее имя переменной python для имени модели z3?
Предположим, у меня есть следующий код:
from z3 import *
s = Solver()
a = [Real('a_%s' % k) for k in range(10)]
for i in range(10):
s.add(a[i] > 10)
s.check()
m = s.model()
for d in m:
print(d, m[d])
Здесь d
в m
равны a_0, a_1, a_2,..., a_9
, а все их значения равны 11
. Я пытаюсь установить некоторые ограничения, которые делают переменные не равными предыдущему результату проверки, например:
s.add(a[0] != m['a_0']
...
s.add(a[9] != m['a_9']
Поэтому мой вопрос заключается в том, что у Z3 есть метод для получения соответствующего имени переменной python для имени модели z3? Если так, то мне не нужно перечислять все имена переменных. Потому что это будет огромной работой, если у нас будет много переменных. То, чего я хочу достичь, может быть следующим:
m = s.model()
for d in m:
s.add(corresponding_python_variabl_name(d) != m[d])
Имеет ли Z3 эту функцию corresponding_python_variable_name()
? Заранее спасибо!