显示Z3模型(Python)中的所有值

显示Z3模型(Python)中的所有值,z3,smt,z3py,Z3,Smt,Z3py,当我想要获取SMT2实例中所有变量的值时,我使用命令(set option:auto-config-false)。在Z3py中,设置此选项不起作用-模型不显示我定义的变量,但不在任何约束中使用。如果我询问这些变量的值,我会得到None。我尝试过这些选项,但没有一个能产生我想要的结果: set_option('model_evaluator.completion', True) set_option('smt.auto-config', False) set_option('auto-config

当我想要获取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)

如何获得这些变量的具体值?

自动配置选项不会告诉Z3打印或省略部分模型;它只是启用或禁用解算器的自动配置(基于静态公式功能)

当一个变量在模型中没有赋值时,它只是无关紧要的,也就是说,你可以为它补齐任何值,它仍然是一个正确的模型。根据您使用的解决方案/策略,选项
model\u evaluator.completion
可能会解决该问题,但最安全的方法是在模型评估时启用模型完成,即使用函数
model\u completion=True