在SMT中哪种做法更好:添加多个断言或单个和?

时间:2014-07-12 08:57:18

标签: smtp z3 smtplib smt sat-solvers

假设我有两个我想在SMT中建模的子句,最好将它们添加为单独的断言,如

(assert (> x y))
(assert (< y 2))

或者添加一个断言和像这样的运算符

(assert (and 
(> x y)
(< y 2)
))

这对于SMT求解器性能方面的大规模问题是否重要?我正在使用Z3。

1 个答案:

答案 0 :(得分:4)

连接被分成多个断言,因此它并不重要。 如果你引入一个大型连接,Z3的解析器将创建一个包含所有连接的术语,但这只是维持连接的基础上的常量开销。