We make two contributions to the study of polite combination in satisfiability modulo theories. The first contribution is a separation between politeness and strong politeness, by presenting a polite theory that is not strongly polite. This result shows that proving strong politeness (which is often harder than proving politeness) is sometimes needed in order to use polite combination. The second contribution is an optimization to the polite combination method, obtained by borrowing from the Nelson-Oppen method. In its non-deterministic form, the Nelson-Oppen method is based on guessing arrangements over shared variables. In contrast, polite combination requires an arrangement over \emph{all} variables of the shared sort (not just the shared variables). We show that when using polite combination, if the other theory is stably infinite with respect to a shared sort, only the shared variables of that sort need be considered in arrangements, as in the Nelson-Oppen method. Reasoning about arrangements of variables is exponential in the worst case, so reducing the number of variables that are considered has the potential to improve performance significantly. We show preliminary evidence for this in practice by demonstrating a speed-up on a smart contract verification benchmark.
翻译:我们为研究礼节性模范理论中的礼节性组合作出了两项贡献。第一项贡献是将礼节性和强烈的礼节性区分开来,提出一种不十分礼貌的礼节性理论。这一结果显示,有时为了使用礼节性组合,需要证明强烈的礼节性(通常比证明礼貌性要难得多),第二项贡献是通过借用Nelson-Oppen方法获得的礼节性组合方法的优化。在非决定性的形式中,Nelson-Oppen方法基于对共享变量的猜测安排。相比之下,礼节性组合需要一种比共享类型变量(而不仅仅是共享变量)不同的安排。我们表明,在使用礼节性组合时,如果另一种理论在共享类型方面是无限的,则需要像Nelson-Oppen方法那样在安排中考虑到这种共同的变数。在最坏的情况下,以指数为根据的变数安排,因此,所考虑的变数数量的减少有可能显著地改善业绩。我们通过展示智能合同检验基准显示加速性,从而证明这种做法的初步证据。