据我了解,Z3 在遇到量化线性实数/有理算术时,应用了 Bjørner、IJCAR 2010 以及 Bjørner 和 Monniaux 最近的工作中描述的量词消除形式(qe_sat_tactic.cpp
至少是这么说的)。
我想知道
如果公式是多线性的,它是否仍然有效,因为“常数”是象征性的。例如∀x, ax≤b ⇒ ax≤0可以通过分离a<0、a=0和a>0的情况来处理。这可以使用 Weispfenning 的虚拟替换方法,但我不知道最终在 Z3 中实现了什么(也就是说,它是实现通用方法还是仅限于常数系数的方法)。
是否有可能在 Z3 中输出消除结果,而不仅仅是求解一个模型。这样做可能有 Z3 策略,但我不知道应该如何请求。
是否有可能在 Z3 中进行上述消除,然后使用新的非线性求解器来获得模型。同样,一连串的策略可能会奏效,但我不知道应该如何请求。
谢谢。