MCRL22LPS(1)
π
mcrl22lps(1) β translate an mCRL2 specification to an LPS β¨
okay bestie, this is the mcrl22lps page from the mCRL2 toolset, hanging out in the User Commands manual π it linearises your mCRL2 spec and gives you an LPS, and it is lowkey iconic.
πΈ NAME πΈ
mcrl22lps β translate an mCRL2 specification to an LPS π¦
β¨ SYNOPSIS β¨
mcrl22lps [OPTION]... [INFILE [OUTFILE]]
π DESCRIPTION π
Linearises the mCRL2 specification in INFILE and writes the resulting LPS to OUTFILE. If OUTFILE is not present, stdout is used. If INFILE is not present, stdin is used.
π OPTIONS π
OPTION can be any of the following:
--balance-summandsβ transform input expressionsp1 + ... + pninto a balanced tree before linearising. Sometimes helpful in preventing stack overflow. π³-b,--binaryβ when clustering use binary case functions instead of n-ary; in the presence of-w/--newstate, state variables are encoded by a vector of boolean variables.-e,--check-onlyβ check syntax and static semantics; do not linearise. π΅οΈββοΈ-c,--clusterβ all actions in the final LPS are clustered. Clustering means that summands with the same action labels are grouped together. For instance,a(f1) . P(g1) + a(f2) . P(g2)is replaced bysum b: Bool . a(if(b, f1, f2)) . P(if(b, f2, g2)). The advantage is that the number of summands can be reduced substantially in this way. The disadvantage is that sum operators are introduced and new data sorts with auxiliary functions are generated. In order to avoid the generation of new sorts, the option-b/--binarycan be used.-D,--deltaβ addtrue->deltasummands to each state in each process; these delta's subsume all other conditional timed delta's, effectively reducing the number of delta summands drastically in the resulting linear process; speeds up linearisation. This is the default, but it does not deal correctly with time. β°-lNAME,--lin-method=NAMEβ use linearisation methodNAME:'regular'β for generating an LPS in regular form (specification should be regular) (default)'regular2'β a variant of'regular'that uses more data variables (useful when'regular'does not work)'stack'β for using stack data types (useful when'regular'and'regular2'do not work)
-w,--newstateβ state variables are encoded using enumerated types instead of positive natural numbers (Pos). By using this option new finite sorts namedEnumkare generated wherekis the size of the domain. Also, auxiliary case functions and equalities are defined. In combination with the option--binarythe finite sorts are encoded by booleans. (requires linearisation method'regular'or'regular2'). π§-z,--no-alphaβ alphabet reductions are not applied. By defaultmcrl22lpsattempts to distribute communication, hiding and allow operators over the parallel composition operator as this reduces the size of intermediate linear processes. By using this option, this step can be avoided. The name stems from the alphabet axioms in process algebra.-n,--no-clusterβ the actions in intermediate LPSs are not clustered before they are put in parallel. By default these processes are clustered to avoid a blow-up in the number of summands when transforming two parallel linear processes into a single linear process. If a linear process withMsummands is put in parallel with a linear process withNsummands the resulting process hasMΓN + M + Nsummands. BothMandNcan be substantially reduced by clustering at the cost of introducing new sorts and functions. See-c/--cluster, esp. for a short explanation of the clustering process.--no-constelmβ do not try to apply constant elimination when generating a linear process.-g,--no-deltaelmβ avoid removing spurious delta summands. Due to the existence of time, delta summands cannot be omitted. Due to the presence of multi-actions the number of summands can be huge. The algorithm for removing delta summands simply works by comparing each delta summand with each other summand to see whether the condition of the one implies the condition of the other. Clearly, this has quadratic complexity, and can take a long time. π-f,--no-globvarsβ instantiate don't care values with arbitrary constants, instead of modelling them by global variables. This has no effect on global variables that are declared in the specification.-o,--no-rewriteβ do not rewrite data terms while linearising; useful when the rewrite system does not terminate. This option also switches off the application of constant elimination.-m,--no-sumelmβ avoid applying sum elimination in parallel composition.-QNUM,--qlimit=NUMβ limit enumeration of universal and existential quantifiers in data expressions toNUMiterations (defaultNUM=10,NUM=0for unlimited).-rNAME,--rewriter=NAMEβ use rewrite strategyNAME:'jitty'β jitty rewriting (default)'jittyc'β compiled jitty rewriting'jittyp'β jitty rewriting with prover
-a,--statenamesβ the name of the variable encoding the state of a parallel process has the shape"si", withian optional number. Using this flag this name is"Pi", wherePis the name of the process. This makes it easier to determine to which process the state variable belongs from. π-T,--timedβ translate the process to linear form preserving all timed information. In parallel processes the number of possible time constraints can be large, slowing down linearisation. Confer the--deltaoption which yields a much faster translation that does not preserve timing correctly.--timings[=FILE]β append timing measurements toFILE. Measurements are written to standard error if noFILEis provided.
π Standard options π
-q,--quietβ do not display warning messages.-v,--verboseβ display short log messages.-d,--debugβ display detailed log messages.--log-level=LEVELβ display log messages up to and including level; eitherwarn,verbose,debugortrace.-h,--helpβ display help information.--versionβ display version information.--help-allβ display help information, including hidden and experimental options.
π AUTHOR π
Written by Jan Friso Groote. β¨
π REPORTING BUGS π
Report bugs at http://www.mcrl2.org/issuetracker. π
π COPYRIGHT π
Copyright Β© 2025 Technische Universiteit Eindhoven.
This is free software. You may redistribute copies of it under the terms of the Boost Software License http://www.boost.org/LICENSE_1_0.txt. There is NO WARRANTY, to the extent permitted by law.
π SEE ALSO π
See also the manual at http://www.mcrl2.org/web/user_manual/tools/release/mcrl22lps.html. π¦
This page is from mcrl22lps mCRL2 toolset 202507..., dated October 2026 πβ¨ periodt.
π¦ where this page comes from
- nixos 26.05: mcrl2 202507
- nixpkgs unstable: mcrl2 202507
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms