当我想获取SMT2实例中所有变量的值时,我使用命令(set-option :auto-config false)
。在Z3py中,设置此选项不起作用 - 模型不显示我定义但不在任何约束中使用的变量。如果我要求这些变量的值,我得到None
。我尝试了这些选项,但没有一个产生我想要的结果:
set_option('model_evaluator.completion', True)
set_option('smt.auto-config', False)
set_option('auto-config', False)
我该怎么做才能获得这些变量的具体值?
答案 0 :(得分:0)
auto-config
选项不会告诉Z3打印或省略部分模型;它只是启用或禁用解算器的自动配置(基于静态公式功能)。
当一个变量没有在模型中赋值时,它只是无关紧要,即你可以为它组成任何值,它仍然是一个正确的模型。根据您使用的解决方案/策略,选项model_evaluator.completion
可以解决该问题,但最安全的方法是在模型评估时启用模型完成,即使用eval(..)函数和{{} 1}}