z3数值约束:哪个更好?

时间:2013-07-22 18:48:27

标签: z3

使用z3求解整数实数约束时,以下两种写(等效)约束方式中的哪一种更适合(性能方面)?

(断言(=>(和(< = 0.0009765625值)(<值0.001953125))(=新值0.0009765625)))

                                     OR

(assert(=>(和(< =(/ 1.0 1024.0)值)(< value(/ 1.0 512.0)))(= new-value(/ 1.0 1024.0))))

请注意,我们在这里有两个幂的倒数(并且这种类型的约束包括更小和更大的数字)。

1 个答案:

答案 0 :(得分:3)

在内部,Z3将十进制表示法中的所有数字转换为分数。解析公式时执行此转换。无论如何,我们不希望看到这两种编码之间在性能上有任何重大差异。在Z3中解析时间通常是微不足道的(与解决时间相比)。