选项`rlimit`和`timeout`之间的关系是什么?

时间:2017-08-02 09:39:40

标签: z3

this Z3 issue comment建议选项rlimit优先于timeout

  

将超时与搜索算法相结合可以实现一切   非确定性的,所以现在你甚至不必改变随机性   种子让它失败!使用rlimits((set-option :rlimit <n>)和   类似的)确定资源边界的方式。

我试图在Z3的帮助中找到有关rlimit的更多信息(z3 -pd),但提供的说明只有非常短的内容。

具体来说,我有以下问题:

  • Q1 :什么样的&#34;解算器资源&#34; rlimit限制 - 只是时间还是记忆?
  • Q2 :rlimit 1000等同于:timeout 1000,因为解算器必须在1000毫秒后终止?
  • Q3 :可以重复设置rlimittimeout可以)还是只设置一次?

1 个答案:

答案 0 :(得分:5)

A1:无论我们认为什么都有道理。这个想法是计算类似&#34;基本操作&#34;之类的东西,但是这个定义在我们继续进行时会改变并添加新的&#34;操作&#34;。对于不同版本的Z3,无法保证它保持不变。但是,只要你继续使用相同的二进制文件,它就是确定性的。

A2:不,没有等价,但一旦超过rlimit,Z3将终止。我们最近修复了一些它没有终止的错误,我确定那里还有一些错误,但我们当然会修复它们。

A3:是的,你可以做到

... (set-option :rlimit 12345) (check-sat) ...