Как позволить командной строке z3 выводить режим (или несинусное ядро), а не сат / несат?

z3 -smt2 <filename> выводит только "sat" или "unsat". Я хотел бы, чтобы Z3 выводил модель, если ограничение выполнено, или несогласованное ядро, если не выполнено. Какие варианты Z3 я должен использовать?

1 ответ

Решение

Для этого нет параметров командной строки, так как в SMTLIB2 они являются отдельными командами, (get-model) а также (get-unsat-core)оба определены только тогда, когда (check-sat) возвращает сат или несат соответственно.

Варианты model а также unsat-core должны быть включены независимо от того, используются ли те или иные команды, просто для того, чтобы решатель отслеживал правильную информацию, в противном случае (get-model) а также (get-unsat-core) Команды могут потерпеть неудачу позже.

Другие вопросы по тегам