Download pasta

A i386 Linux executable of pasta can be downloaded here. A recent version of Yices has to be available and accessible in the PATH.
Start it with pasta filename, where the file filename contains a PA-based TRS. The following example shows the syntax:
eval_1(x, y) -> eval_2(x + 1, 1) [ x >= 0 ]
eval_2(x, y) -> eval_2(x, y + 1) [ x >= 0 /\ y > 0 /\ x >= y ]
eval_2(x, y) -> eval_1(x - 2, y) [ x >= 0 /\ y > 0 /\ x < y ]

Empirical Evaluation

We have implemented our approach for the automated termination analysis of PA-based TRSs in the prototype termination prover pasta. For comparison, we also ran AProVE Integer on the same set of examples. For AProVE, a timeout of one minute was imposed. The results recorded below were obtained on an AMD Athlon™ processor running at 2.2 Ghz.

Notice that pasta is orders of magnitude faster than AProVE (a total/average of 1.91s/0.05s versus a total/average of 323.09s/8.08s). Furthermore, pasta is slightly more powerful than AProVE on this set of benchmarks.

FilepastaAProVE Integer
Total timeTime in YicesResultTotal timeResult
a.01.pasta0.0420.029YES1.72YES
a.02.pasta0.2840.254YES10.76YES
a.03.pasta0.3180.281YES50.12YES
a.04.pasta0.0370.022YES0.30YES
a.05.pasta0.0140.010YES0.32YES
a.06.pasta0.0130.008YES0.54YES
a.07.pasta0.0120.008YES0.39YES
a.08.pasta0.0140.009YES0.31YES
a.09.pasta0.0110.007YES0.38YES
a.10.pasta0.0350.026YES60.02TIMEOUT
a.11.pasta0.0570.045YES4.04YES
b.01.pasta0.0100.007YES0.34YES
b.02.pasta0.0100.007YES0.36YES
b.03.pasta0.0100.006YES0.41YES
b.04.pasta0.0070.007YES0.33YES
b.05.pasta0.0100.006YES0.23YES
b.06.pasta0.0100.006YES0.29YES
b.07.pasta0.0110.007YES0.42YES
b.08.pasta0.1660.154YES1.49YES
b.09.pasta0.0240.019YES1.84YES
b.10.pasta0.0300.022YES3.54YES
b.11.pasta0.0520.042YES5.29YES
b.12.pasta0.0600.050YES23.73YES
b.13.pasta0.0590.049YES57.85YES
b.14.pasta0.0310.026YES1.66YES
b.15.pasta0.0320.026YES3.07YES
b.16.pasta0.0390.029YES1.60YES
b.17.pasta0.0400.030YES2.33YES
b.18.pasta0.0700.059YES4.71YES
c.01.pasta0.0430.030YES1.71YES
c.02.pasta0.0420.030YES1.71YES
c.03.pasta0.0340.025YES2.54YES
c.04.pasta0.0360.030YES3.07YES
c.05.pasta0.0320.027YES8.45YES
c.06.pasta0.0860.070YES60.02TIMEOUT
c.07.pasta0.0120.007YES1.78YES
c.08.pasta0.0430.034YES2.13YES
c.09.pasta0.0310.023YES1.78YES
c.10.pasta0.0110.007YES0.51YES
c.11.pasta0.0320.023YES1.00YES