В интерфейсе SMTLib check-sat-using
- это способ указать z3, какую тактику использовать. Когда вы используете z3py, вы напрямую используете язык tacti c и явно создаете решатели. Таким образом, в некотором смысле в z3py нет соответствующего вызова check-sat-using
. Вместо этого вы получаете целый язык tacti c, который является гораздо более гибким и мощным.
Для примеров см .: http://www.cs.tau.ac.il/~msagiv/courses/asv/z3py/strategies-examples.htm
Обратите внимание, что check-sat-using
объединяет тактику и настройки в некотором смысле, в z3py вы используете set_param
для достижения настроек параметров и язык tacti c для express, какую стратегию вы хотите использовать.
Как общее правило большой палец, не пытайтесь «переводить» между интерфейсами SMTLib и Z3 Python. Хотя оба могут express выполнять одни и те же запросы, модель программирования различна, и попытка перевести «команда за командой» приведет к неидиоматическому c и сложному в обслуживании коду. Вместо этого, если вы хотите использовать Z3py, просто узнайте, как там все делается, помня, что они могут сильно отличаться от земли SMTLib. Это отличный ресурс для прочтения, чтобы вы могли начать: http://www.cs.tau.ac.il/~msagiv/courses/asv/z3py/