Presprover — Prove formulas of Presburger arithmetic




Presprover lets you reason about formulas of Presburger arithmetic, which is the first-order theory of the natural numbers with addition.

In contrast to Peano arithmetic, Presburger arithmetic omits the multiplication operation. Presburger arithmetic is consistent, complete and decidable.

Source code: presprover.pl

To try it, download Scryer Prolog and run:

      $ scryer-prolog presprover.pl
    
A few example queries and their results:

      ?- valid(exists(x, x > 0)).
         true.

      ?- valid(forall(x, exists(y, 3*x + y > 2))).
         true.

      ?- valid(2*y + 3*x = 30 /\ x = 0 ==> y = 15).
         true.
    
Please see the source file for more information.


More about Prolog


Main page