基于线性算术模SAT求解非线性多项式算术问题
1. 引言
多项式(非线性)约束在许多应用领域中都有出现,如程序分析或混合系统分析。特别是在程序终止证明工具的开发中,多项式约束求解有着悠久而成功的历史。近年来,有一些新的多项式约束求解器实现,它们通过将问题转化为SAT或CSP来超越以往的求解器。
我们的目标是开发能在整数或实数的有限子集上找到解的非线性算术约束求解器(实际上,我们主要关注有理数)。我们的求解器将用于最先进的自动终止证明器中,因此必须始终保证求解结果的正确性,并且在解域有限时,求解器的完备性也是理想的。我们提出了一种简单的方法,通过考虑整数和实数的有限子域,并将约束转化为线性(整数或实数)算术模SAT,来求解整数和实数上的非线性多项式约束。
2. 从非线性到线性约束的转换
我们要解决的是无量词命题公式的非线性算术问题,因此将其从非线性算术模SAT转换为线性算术模SAT,因为后者有快速的求解器。
- 定义相关概念
- 非线性单项式:表达式 $v_1^{p_1} \cdots v_m^{p_m}$,其中 $m > 0$,$p_i > 0$ 且 $v_i \neq v_j$($i \neq j$)。
- 非线性算术公式:命题公式,原子形式为 $\sum_{1\leq i\leq n} c_i \cdot M_i \triangleleft k$,其中 $\triangleleft \in {=, \geq, >, \leq, <}$,$k$ 为整数或有理数,$M_i$ 为非线性单项式,$c_i$ 为整数或有理数。
- 考虑不同的解域
超级会员免费看
订阅专栏 解锁全文
434

被折叠的 条评论
为什么被折叠?



