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}\]


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 , --qlimit=NUM

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

-rNAME , --rewriter=NAME

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


display help information, including hidden and experimental options


Jeroen Keiren