对于同一个程序,z3 模型是否相同?
Is z3 model the same for a same program?
我想知道,对于两个完全相同的问题(相同的变量名称、相同的断言、相同的语句顺序等),z3 是否总是 return 相同的模型,或者是否会从不时。
如果 z3 模型可以在这些约束下发生变化,是否有任何解决方法可以让我始终获得相同的结果?
我已经读过这篇文章,但一直在寻找更实际的答案:
Z3 randomness of generated model values
Z3 timing variation
提前致谢!
差不多; Z3 中的默认策略使用计时器,有时它们会在计时器中止某事之前产生一些重要的东西,或者它只是没有得到它。除此之外,性能应该相当稳定,您可以将默认策略替换为您自己的不使用计时器的策略。
当然,这不适用于不同版本的 Z3,即,如果您编译明天的版本,您可能会得到与今天的版本截然不同的行为。
我想知道,对于两个完全相同的问题(相同的变量名称、相同的断言、相同的语句顺序等),z3 是否总是 return 相同的模型,或者是否会从不时。 如果 z3 模型可以在这些约束下发生变化,是否有任何解决方法可以让我始终获得相同的结果?
我已经读过这篇文章,但一直在寻找更实际的答案: Z3 randomness of generated model values Z3 timing variation
提前致谢!
差不多; Z3 中的默认策略使用计时器,有时它们会在计时器中止某事之前产生一些重要的东西,或者它只是没有得到它。除此之外,性能应该相当稳定,您可以将默认策略替换为您自己的不使用计时器的策略。
当然,这不适用于不同版本的 Z3,即,如果您编译明天的版本,您可能会得到与今天的版本截然不同的行为。