如何在Z3py中激活部分模式?

时间:2018-09-13 09:36:53

标签: python z3 z3py

我正在使用Z3的Python绑定,并且很好奇部分模式能否加快我的模型的速度。但是,似乎没有办法在Python中执行此操作。 (set_param(...)似乎没有参数)

我考虑迁移到pySMT,因为它声称支持Z3的部分模式,但我希望保留Z3Py。

奖金问题:部分模式实际上对我有好处吗?我正在模拟数组中的计算机内存,并希望Z3忽略从未引用的条目。

1 个答案:

答案 0 :(得分:2)

这是设置局部模型的方法:

from z3 import *

print get_param('model.partial')
set_param('model.partial', True)
print get_param('model.partial')

此打印:

false
true

关于您的红利问题:我怀疑部分模型会为您带来任何收益。 SMT求解器通常在sat的情况下找到模型,然后根据需要完成模型。 “查找模型”部分通常是代价高昂的行动,而不是完成模型。但这当然取决于您的特定问题。因此尝试尝试不会有任何伤害。