Combining Stable Infiniteness and (Strong) Politeness

Combining Stable Infiniteness and (Strong) Politeness” by Ying Sheng, Yoni Zohar, Christophe Ringeissen, Andrew Reynolds, Clark Barrett, and Cesare Tinelli. Journal of Automated Reasoning, vol. 67, no. 34, Sep. 2023, Springer.


Polite theory combination is a method for obtaining a solver for a combination of two (or more) theories using the solvers of each individual theory as black boxes. Unlike the earlier Nelson–Oppen method, which is usable only when both theories are stably infinite, only one of the theories needs to be strongly polite in order to use the polite combination method. In its original presentation, politeness was required from one of the theories rather than strong politeness, which was later proven to be insufficient. The first contribution of this paper is a proof that indeed these two notions are different, obtained by presenting a polite theory that is not strongly polite. We also study several variants of this question. The cost of the generality afforded by the polite combination method, compared to the Nelson–Oppen method, is a larger space of arrangements to consider, involving variables that are not necessarily shared between the purified parts of the input formula. The second contribution of this paper is a hybrid method (building on both polite and Nelson–Oppen combination), which aims to reduce the number of considered variables when a theory is stably infinite with respect to some of its sorts but not all of them. The time required to reason about arrangements is exponential in the worst case, so reducing the number of variables considered has the potential to improve performance significantly. We show preliminary evidence for this by demonstrating significant speed-up on a smart contract verification benchmark.

BibTeX entry:

   author = {Ying Sheng and Yoni Zohar and Christophe Ringeissen and
	Andrew Reynolds and Clark Barrett and Cesare Tinelli},
   title = {Combining Stable Infiniteness and (Strong) Politeness},
   journal = {Journal of Automated Reasoning},
   volume = {67},
   number = {34},
   publisher = {Springer},
   month = sep,
   year = {2023},
   doi = {10.1007/s10817-023-09684-0},
   url = {}

(This webpage was created with bibtex2web.)