使用.NET Z3 API生成Unsat核心

使用.NET Z3 API生成Unsat核心,z3,Z3,我正在尝试使用Z34.3.0和.NETAPI打开unsat核心生成 调用context.UpdateParamValue(“unsat\u core”,“true”)会引发异常,并显示消息“错误设置'unsat\u core',原因:未知选项” 检查上下文。SimpleParameterDescriptions仅列出以下参数: (:ite-extra-rules, :flat, :elim-and, :local-ctx, :local-ctx-limit, :blast-distinct, :

我正在尝试使用Z34.3.0和.NETAPI打开unsat核心生成

调用
context.UpdateParamValue(“unsat\u core”,“true”)
会引发异常,并显示消息“错误设置'unsat\u core',原因:未知选项”

检查
上下文。SimpleParameterDescriptions
仅列出以下参数:

(:ite-extra-rules, :flat, :elim-and, :local-ctx, :local-ctx-limit, :blast-distinct, :som, :som-blowup, :hoist-mul, :hoist-cmul, :algebraic-number-evaluator, :mul-to-power, :expand-power, :expand-tan, :max-degree, :eq2ineq, :sort-sums, :gcd-rounding, :arith-lhs, :elim-to-real, :push-to-real, :elim-rem, :udiv2mul, :split-concat-eq, :bit2bool, :blast-eq-value, :elim-sign-ext, :hi-div0, :mul2concat, :expand-select-store, :sort-store, :max-memory, :max-steps, :push-ite-arith, :push-ite-bv, :pull-cheap-ite, :cache-all)

这与一个似乎没有得到结论性答案的问题有关。

配置需要采取的确切形式取决于Z3的哪些部分以及使用的版本。SimplifyParameterDescriptions仅用于Simplifyer(调用Simplify策略或Expr.Simplify)。需要在上下文上(通过其构造函数和选项Unsat_core)或通过目标的参数(参见Context.MkGoal)启用Unsat核心生成


我现在无法测试它,但我认为旧版本(master/4.3.0)使用了相同的大写参数名。较新版本(即不稳定分支)还具有在global.SetParamValue中设置全局参数的功能。抱歉,混乱,但自从上次主控发布以来,参数设置基础设施完全被取代了。

unSaluxCube不起作用,但通过C++源看,它看起来像DePasyUnStuxCar可能是我想要的?然而,我仍然无法获得unsat核心,因为我不知道如何命名断言
AssertAndTrack
在4.3.0中不存在,我不理解所描述的“应答文字”的解决方法。不用担心,通过切换到夜间构建并使用参数
unsat\u core
并调用
AssertAndTrack
我就能够让它工作。