z3:断言约束的顺序会影响它们被评估的顺序吗?

z3: do the orders of constraints being asserted affect the orders they are evaluated?

我的 z3py 代码正在进行推理并遇到一些性能(延迟)问题。目前我正在尝试提出一些启发式方法来修剪搜索 space 以希望提高推理速度。

我的问题是:断言约束的顺序会影响它们被评估的顺序吗?换句话说,如果一个约束可以显着减少搜索space,我是否应该先断言它,以便在评估之后在早期排除许多不可能的解决方案?

断言的顺序可能会对以后的启发式算法产生影响,但没有执行 "best" 的预定义顺序。通常,较早声明特定约束并不意味着它们将首先得到解决。