The algorithm applies a transformation on data expressions of a linear process specification (LPS), by which other tools (such as lpsparelm, lpsconstelm) can apply their transformations more effectively. In concrete, this tool unfolds a sort with associated constructor functions to a set of process parameters in the LPS, in such a way that all behaviour is preserved.



lpsparunfold   [OPTION]... [INFILE [OUTFILE]]


Unfolds a set of given process parameters of the linear process specification (LPS) in INFILE and writes the result to OUTFILE. If INFILE is not present, stdin is used. If OUTFILE is not present, stdout is used.

Command line options

-a , --alt-case

use an alternative placement method for case functions

-i[NUM] , --index=[NUM]

unfolds process parameters for comma separated indices

-x , --no-pattern

do not unfold pattern matching functions in state updates

-p , --possibly-inconsistent

add rewrite rules that can make a data specification inconsistent

-QNUM , --qlimit=NUM

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

-nNUM , --repeat=NUM

repeat unfold NUM times

-rNAME , --rewriter=NAME

use rewrite strategy NAME:


jitty rewriting


compiled jitty rewriting


jitty rewriting with prover

-sNAME , --sort=NAME

unfolds all process parameters of sort NAME


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


Frank Stappers