【发布时间】:2013-04-08 10:22:33
【问题描述】:
我有几个关于 Z3 战术的问题,其中大部分是关于 simplify 的。
我注意到应用
simplify后的线性不等式经常被否定。 例如(> x y)由simplify转换为(not (<= x y))。理想情况下,我希望整数 [in] 等式不被否定,以便(not (<= x y))转换为(<= y x)。我能保证这样的行为吗?此外,在 、>= 中,最好在简化公式的所有整数谓词中只使用一种类型的不等式,例如
simplify的:som参数有什么作用?我可以看到描述说它用于将多项式以单项形式表示,但也许我没有做对。您能否举一个将:som设置为 true 和 false 的简化行为的示例?我是对的,在应用
simplify算术表达式后将始终以a1*t1+...+an*tn的形式表示,其中ai是常量,ti是不同的术语(变量、未解释的常量或函数符号) ?特别是减法运算总是不会出现在结果中的情况?有没有关于
ctx-solver-simplify策略的可用描述?从表面上看,我知道这是一个昂贵的算法,因为它使用了求解器,但是了解更多关于底层算法的信息会很有趣,这样我就可以知道我可能期望有多少求解器调用等等。也许你可以给出一个参考论文或给出算法的简要草图?最后,here 提到可能会出现关于如何在 Z3 代码库中编写战术的教程。有吗?
谢谢。
【问题讨论】:
标签: z3