Combining Stable Infiniteness and (Strong) Politeness
Résumé
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.