如何让 z3 命令行输出模式(或 unsat 核心)而不是 sat/unsat?

How to let z3 command line output the mode (or unsat core) rather than sat/unsat?

z3 -smt2 <filename> 仅输出 'sat' 或 'unsat'。如果约束得到满足,我希望 Z3 输出模型,如果不满足,则输出 unsat 核心。我应该使用 Z3 的哪些选项?

没有命令行选项,因为在 SMTLIB2 中它们是单独的命令,(get-model)(get-unsat-core),两者仅在 (check-sat) returns sat 或 unsat 时定义分别。

无论是否使用这些命令或其他命令,都必须启用选项 modelunsat-core,只是为了让求解器跟踪正确的信息,否则 (get-model)(get-unsat-core) 命令稍后可能会失败。