This tool serves as a simple REPL (read-eval-print-loop) for the mCRL2 data language. It supports rewriting of expressions as well as solving Boolean expressions using enumeration. Details about each of the commands can be found in the manual page below.



mcrl2i   [OPTION]... [INFILE]


Evaluate mCRL2 data expressions via a text-based interface. If INFILE is present and if it contains an LPS or PBES, the data types of this specification may be used. If no input file is given, only the standard numeric datatypes are available. Commands are read from stdin. The following commands are available to manipulate mcrl2 data expressions. Essentially, there are commands to rewrite and type expressions, as well as generating the solutions for a boolean expression. The expressions can contain assigned or unassigned variables. Note that there are no bounds on the number of steps to evaluate or solve an expression, nor is the number of solutions bounded. Hence, the assign, eval solve commands can give rise to infinite loops.

h[elp] print this help message. q[uit] quit. t[ype] EXPRESSION print type of EXPRESSION. a[ssign] VAR=EXPRESSION evaluate the expression and assign it to the variable. e[val] EXPRESSION rewrite EXPRESSION and print result. v[ar] VARLIST declare variables in VARLIST. r[ewriter] STRATEGY use STRATEGY for rewriting (jitty, jittyc, jittyp, jittycp). s[solve] VARLIST. EXPRESSION give all valuations of the variables in VARLIST that satisfy EXPRESSION.

VARLIST is of the form x,y,…: S; … v,w,…: T.

Command line options

-QNUM , --qlimit=NUM

limit enumeration of universal and existential quantifiers in data expressions to NUM iterations (default NUM=10, 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 log messages

-d , --debug

display detailed log messages


display log messages up to and including level; either warn, verbose, debug or trace

-h , --help

display help information


display version information


display help information, including hidden and experimental options


Muck van Weerdenburg; Jan Friso Groote