Satisfiability Modulo Theories (SMT) solvers check the satisfiability of quantifier-free first-order logic formulas. We consider the theory of non-linear real arithmetic where the formulae are logical combinations of polynomial constraints. Here a commonly used tool is the Cylindrical Algebraic Decomposition (CAD) to decompose real space into cells where the constraints are truth-invariant through the use of projection polynomials. An improved approach is to repackage the CAD theory into a search-based algorithm: one that guesses sample points to satisfy the formula, and generalizes guesses that conflict constraints to cylindrical cells around samples which are avoided in the continuing search. Such an approach can lead to a satisfying assignment more quickly, or conclude unsatisfiability with fewer cells. A notable example of this approach is Jovanovi\'c and de Moura's NLSAT algorithm. Since these cells are produced locally to a sample we might need fewer projection polynomials than the traditional CAD projection. The original NLSAT algorithm reduced the set a little; while Brown's single cell construction reduced it much further still. However, the shape and size of the cell produced depends on the order in which the polynomials are considered. This paper proposes a method to construct such cells levelwise, i.e. built level-by-level according to a variable ordering. We still use a reduced number of projection polynomials, but can now consider a variety of different reductions and use heuristics to select the projection polynomials in order to optimise the shape of the cell under construction. We formulate all the necessary theory as a proof system: while not a common presentation for work in this field, it allows an elegant decoupling of heuristics from the algorithm and its proof of correctness.
翻译:满足性 Modulo Theories (SMT) 解析器检查无量化器第一阶逻辑公式的可参数性。 我们考虑的是非线性实际算术理论, 公式是多式制约的逻辑组合。 这里常用的工具是 Cylindrical Algebraic Decomposition (CAD), 将真实空间分解到通过使用投影多数值算法的制约是真异性的单元格中。 一个改进的方法是将 CAD 理论重新包装成基于搜索的算法: 一种非样本点可以满足公式, 并且将非线性实际算术理论理论的理论推理。 这种方法可以更快地将真实性空间分解到通过投影化多数值的多数值。 这种方法的一个显著例子是 Jovanovi\c 和 de Moura 的 NLSAT 算法。 由于这些单元格是本地生成的, 我们可能需要比传统的 CADIVI 更低的解算法, 将原始的解算算法用于原始的解算法 。 但是, 将原始的解算算算算算算算算法可以更小的解到 。