The lpsuntime tool removes time from a linear process specification (LPS).

Consider an LPS with the following process section:

\[\begin{split}\begin{array}{l} P(d:D) =\\ \quad \sum_{e_0:E_0} c_0(d,e_0) \to a_0(f_0(d,e_0))^ct_0(d,e_0) \cdot P(g_0(d,e_0)) + {}\\ \quad \sum_{e_1:E_1} c_1(d,e_1) \to a_1(f_1(d,e_1))^ct_1(d,e_1) \cdot P(g_1(d,e_1)) + {}\\ \quad \ldots \end{array}\end{split}\]

The tool transforms this to the following equivalent untimed version:

\[\begin{split}\begin{array}{l} P(d:D,t:\mathbb{R}) =\\ \quad \sum_{e_0:E_0} c_0(d,e_0) \land t_0(d,e_0) > t \to a_0(f_0(d,e_0)) \cdot P(g_0(d,e_0),t_0(d,e_0)) + {}\\ \quad \sum_{e_1:E_1} c_1(d,e_1) \land t_1(d,e_1) > t \to a_1(f_1(d,e_1)) \cdot P(g_1(d,e_1),t_1(d,e_1)) + {}\\ \quad \ldots \end{array}\end{split}\]

Manual page for lpsuntime


lpsuntime   [OPTION]... [INFILE [OUTFILE]]


Remove time from the linear process specification (LPS) in INFILE and write the result to OUTFILE. If INFILE is not present, stdin is used. If OUTFILE is not present, stdout is used.

Command line options

-e , --eliminate-sumvars

when possible, eliminate summation variables of type Real using the Fourier Motzkin algorithm. This can significantly change the structure of the conditions.

-i , --invariant

add invariants for parameters of type Real to the output

-QNUM , --qlimitNUM

limit enumeration of quantifiers to NUM iterations. (Default NUM=1000, NUM=0 for unlimited).

-rNAME , --rewriterNAME

use rewrite strategy NAME:


jitty rewriting


compiled jitty rewriting


jitty rewriting with prover


append timing measurements to FILE. Measurements are written to standard error if no FILE is provided

Standard options

-q , --quiet

do not display warning messages

-v , --verbose

display short intermediate messages

-d , --debug

display detailed intermediate messages


display intermediate messages up to and including level

-h , --help

display help information


display version information


Jeroen Keiren