我在以下看似微不足道的基准测试中尝试了几个 SMT 求解器(CVC3、CVC4 和 Z3):
(set-logic LIA)
(set-info :smt-lib-version 2.0)
(assert (forall (( x Int)) (forall ((y Int)) (= y x))))
(check-sat)
(exit)
求解器都返回未知数。我知道这是一个无法确定的片段(非线性),但我期待会有一些简单的实例化启发式方法可以解决它。我还尝试使用常量添加一些额外的断言,但它没有帮助。
有没有办法解决这些问题? SMT 中量化算术的推理限制是什么?