Descripción del proyecto
Arithmetic theories are logical theories about systems of numbers that found important applications in several areas of computer science. For instance, those theories have a fundamental role in Satisfiability Modulo Theory (SMT), abstract interpretation and symbolic execution, the three most prominent algorithmic techniques to type check or bug test programs against rich specification languages. In optimisation, Integer Linear Programming offers a general framework to model many scheduling, planning and network problems using linear integer arithmetic. In Theoretical Computer Science, several computational problems stemming from formal logic and automata theory require arithmetic theories procedures to be solved.
Arithmetic theories are simple to describe, but their algorithms are based on profound mathematical theories. The goal of this proposal is to achieve a major advance in algorithms for decision and optimisation problems of existential arithmetic theories featuring the non-linear operators of exponentiation and divisibility. We choose to focus on these two operators for both theoretical and practical reasons. On the theory side, whereas multiplication often causes decidability issues (see e.g. the undecidability of Hilbert’s 10th problem), exponentiation and divisibility are much more algorithmically robust. On the practical side, these two non-linear operators have recently found several applications in the aforementioned areas of computer science.
To achieve our goal, our methodology combines several areas of mathematics and theoretical computer science: automata theory, combinatorics, non-convex geometry, model theory and number theory. While the content of the proposal is foundational in nature, the long-term goal is for algorithms developed during the project to serve as a basis to expand the capabilities of SMT solvers, static analysers and optimization tools, making them able to handle very expressive languages of arithmetic.