是否可以在 Z3 中禁用布尔表达式的自动简化?
例如,表达式 2 > 1 自动变为 True,而我希望它保持 2 > 1:
>>> t = 2 > 1
>>> t
True
我通过在 Z3Py 中调用 help_simplify() 找到了几个选项。但是,它们似乎都与我的问题无关。
在另一个教程(http://citeseerx.ist.psu.edu/viewdoc/download?rep=rep1&type=pdf&doi=10.1.1.225.8231)中提到了一个选项“CONTEXT SIMPLIFIER”:“此设置可用于简化子-公式判断真假。” 但是,我在 Z3Py 中找不到这个选项。
背景:我希望能够使用像 And(2>1, 1!=2) 这样的表达式,其中 2>1 和 1!=2 是较早自动生成的,有时不包含变量(常量)。Z3Py 将其简化为不被接受的 And(True, False),因为“至少有一个参数必须是 Z3 表达式或探针”。因此,我想抑制简化。或者有没有办法让 And(True, False) 成为可接受的表达式?
提前致谢!