Как позволить командной строке 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)
Команды могут потерпеть неудачу позже.