我正在尝试优化使用 Z3 来证明有关一阶理论的事实。目前,我在 Python 中指定了一个一阶理论,将量词固定在那里,并将所有子句连同证明目标的否定一起发送到 Z3。我有以下想法,希望可以优化结果:我只想将与证明目标相关的理论公式发送到 Z3。我不会详细讨论这个概念,但我认为直觉很简单:我的理论是公式的合取,我只想发送可能影响证明目标真值的合取。
我的问题是:这是否会导致效率的提高,或者 Z3 是否已经使用了类似的方法?我猜不会,因为我不认为 Z3 总是假设最后一个断言是证明目标,所以它没有办法对此进行优化。