We present a new model-based interpolation procedure for satisfiability modulo theories (SMT). The procedure uses a new mode of interaction with the SMT solver that we call solving modulo a model. This either extends a given partial model into a full model for a set of assertions or returns an explanation (a model interpolant) when no solution exists. This mode of interaction fits well into the model-constructing satisfiability (MCSAT) framework of SMT. We use it to develop an interpolation procedure for any MCSAT-supported theory. In particular, this method leads to an effective interpolation procedure for nonlinear real arithmetic. We evaluate the new procedure by integrating it into a model checker and comparing it with state-of-art model-checking tools for nonlinear arithmetic.
翻译:我们提出了一个新的基于模型的共性模调理论(SMT)的内插程序(SMT),该程序采用了一种与SMT求解器的新型互动模式,我们称之为解决模调模型。这或者将给定的部分模型扩展为一套主张的完整模型,或者在没有解决方案的情况下返回解释(模型内插器),这种互动模式非常适合SMT的建模可控性框架。我们用它来为任何MCSAT支持的理论制定一种内插程序。特别是,这种方法为非线性实际算术提供了有效的内插程序。我们通过将新程序纳入一个模型检查器,并将其与非线性算术的最新模型检查工具进行比较,来评估新程序。