можно ли отключить автоматическое упрощение логических выражений в Z3?
Например, выражение 2> 1 автоматически становится True, в то время как я хотел бы, чтобы оно оставалось 2> 1:
>>> t = 2 > 1
>>> t
True
Я нашел несколько вариантов, вызвав help_simplify () в Z3Py. Однако ни один из них, похоже, не имеет отношения к моей проблеме.
В другом руководстве (http://citeseerx.ist.psu.edu/viewdoc/download?rep=rep1&type=pdf&doi=10.1.1.225.8231) упоминалась опция «УПРОЩИТЕЛЬ КОНТЕКСТА»: «Этот параметр можно использовать для упрощения подформул до истинного или ложного. " Однако мне не удалось найти эту опцию в Z3Py.
Предпосылки: я хотел бы иметь возможность использовать такие выражения, как And (2> 1, 1! = 2), где 2> 1 и 1! = 2 автоматически генерируются раньше и иногда не содержат переменных (констант). Z3Py упрощает это до And (True, False), которое не принимается, потому что «По крайней мере, один из аргументов должен быть выражением Z3 или зондом». Поэтому я хотел бы исключить упрощение. Или есть способ сделать And (True, False) приемлемым выражением?
Заранее спасибо!