🤖 AI Summary
Satisfiability checking for non-polynomial integer arithmetic—particularly involving exponential functions—remains a major challenge in program verification; existing SMT solvers support only polynomial constraints and lack systematic handling of exponential integer arithmetic.
Method: This paper presents the first sound, complete, and practical SMT solver for exponential integer arithmetic. It introduces an incremental linearization framework tailored to exponential semantics, constructs exact cutting planes leveraging both convexity and discreteness, and designs a semantic-lemma-driven spurious-counterexample elimination mechanism. The solver integrates conflict-driven clause learning (CDCL), integer programming, and interval propagation for efficient reasoning.
Results: Experimental evaluation on diverse program verification benchmarks shows that our approach achieves over a 3× improvement in solving success rate and reduces average solving time by 62%, significantly outperforming state-of-the-art tools.
📝 Abstract
SMT solvers use sophisticated techniques for polynomial (linear or non-linear) integer arithmetic. In contrast, non-polynomial integer arithmetic has mostly been neglected so far. However, in the context of program verification, polynomials are often insufficient to capture the behavior of the analyzed system without resorting to approximations. In the last years, incremental linearization has been applied successfully to satisfiability modulo real arithmetic with transcendental functions. We adapt this approach to an extension of polynomial integer arithmetic with exponential functions. Here, the key challenge is to compute suitable lemmas that eliminate the current model from the search space if it violates the semantics of exponentiation. An empirical evaluation of our implementation shows that our approach is highly effective in practice.