# Presburger arithmetic

**Presburger arithmetic** is the first-order theory of the natural numbers with addition. It is not as powerful as the Peano axioms because multiplication is omitted. In fact, Mojzesz Presburger proved in 1929 that Presburger arithmetic is decidable. In other words, there is an algorithm which decides for any given statement in Presburger arithmetic whether it is true or not. No such algorithm exists for general arithmetic as a consequence of the negative answer to the Entscheidungsproblem. Furthermore, Presburger proved that his arithmetic is consistent (does not contain contradictions) and complete (every statement can either be proven or disproven). Again, such a proof cannot be given for general arithmetic; in fact, it follows from Gödel's incompleteness theorem that general arithmetic cannot be both consistent and complete.

The decidability of Presburger arithmetic can be shown using quantifier elimination.

Presburger arithmetic is an interesting example in computational complexity theory and computation because Fischer and Rabin proved in 1974 that every algorithm which decides the truth of Presburger statements has a runtime of at least 2^(2^(*cn*)) for some constant *c*. Here, *n* is the length of the Presburger statement. Hence, the problem is one of the few that provably need more than polynomial run time (indeed, even more than exponential time!).

In the formal description of the theory, we use the object constants 0 and 1, the function constant +, and the predicate constant =. The axioms are:

- ∀
*x*: ¬ (0 =*x*+ 1) - ∀
*x*∀*y*: ¬ (*x*=*y*) ⇒ ¬ (*x*+ 1 =*y*+ 1) - ∀
*x*:*x*+ 0 =*x* - ∀
*x*∀*y*: (*x*+*y*) + 1 =*x*+ (*y*+ 1) - This is an axiom scheme consisting of infinitely many axioms. If
*P*(*x*) is any formula involving the constants 0, 1, +, = and a single free variable*x*, then the following formula is an axiom:

- (
*P*(0) ∧ ∀*x*:*P*(*x*) ⇒*P*(*x*+ 1) ) ⇒ ∀*x*:*P*(*x*)

Concepts such as divisibility or prime number cannot be formalized in Presburger arithmetic. Here is a typical theorem that can be proven from the above axioms:

- ∀
*x*∀*y*: ( (∃*z*:*x*+*z*=*y*+ 1) ⇒ (∀*z*: ¬ (((1 +*y*) + 1) +*z*=*x*) ) )

It says that if *x* ≤ *y* + 1, then *y* + 2 > *x*.

## References

- M. Presburger: "Über die Vollständigkeit eines gewissen Systems der Arithmetik ganzer Zahlen, in welchem die Addition als einzige Operation hervortritt". In
*Comptes Rendus du I congrès de Mathématiciens des Pays Slaves,*Warszawa, 1929, pp.92-101 - M.J. Fischer, M.O.Rabin: "Super-Exponential Complexity of Presburger Arithmetic".
*Proceedings of the SIAM-AMS Symposium in Applied Mathematics,*1974, vol. 7, pp.27-41 - C. R. Reddy and D. W. Loveland: "Presburger Arithmetic with Bounded Quantifier Alternation".
*ACM Symposium on Theory of Computing,*, 1978, pp.320-325 - Jeanne Ferrante and Charles W. Rackoff: "The Computational Complexity of Logical Theories". Lecture Notes in Mathematics 718. Springer. 1979.
- D. C. Cooper: "Theorem Proving in Arithmetic without Multiplication". In B. Meltzer and D. Michie (eds.):
*Machine Intelligence,*, Edinburgh University Press, 1972. pp.91-100 - William Pugh: "The Omega test: a fast and practical integer programming algorithm for dependence analysis", 1991. http://doi.acm.org/10.1145/125826.125848 .