什么时候应该在Z3中使用函数而不是变量?

时间:2015-10-02 15:28:37

标签: z3 z3py

我在Z3中编写过两个Sudoku求解器,一次使用81个变量,一次使用将x和y坐标映射到square [x] [y]中的数字的函数。 我想也可以使用数组。

拥有Z3变量的python数组,拥有Z3数组或Z3中的函数有什么区别? 我什么时候应该使用哪个?

1 个答案:

答案 0 :(得分:0)

这个问题没有普遍适用的答案。通常有不止一种方法来模拟问题,而且从来都不清楚哪一种方法在实践中是最好的。作为一般规则,将其保持在一个理论中是有意义的,因为这避免了昂贵的跨理论推理;即,坚持使用位向量或(有界)整数,但不要试图将整数转换为位向量(例如,int2bv项基本上被视为未被Z3解释)。此外,众所周知,有更好的解决方案来解决数组问题,而不是在Z3中实现,所以如果它们不是真正必要的话,它有助于消除它们。