pbesinst   [OPTION]... [INFILE [OUTFILE]]


Transforms the PBES from INFILE into an equivalent BES and writes it to OUTFILE. If INFILE is not present, standard input is used. If OUTFILE is not present, standard output is used.The format of OUTFILE is determined by its extension (unless it is specified by an option). The supported formats are:

‘pbes’ for the mCRL2 PBES format, ‘bes’ for the mCRL2 BES format,

Command line options


use input format FORMAT:


PBES in internal format


BES in PGSolver format


PBES in textual (mCRL2) format


use output format FORMAT:


BES in internal format


PBES in internal format


BES in PGSolver format


PBES in textual (mCRL2) format

-QNUM , --qlimit=NUM

limit enumeration of universal and existential quantifiers in data expressions to NUM iterations (default NUM=10, NUM=0 for unlimited).

-e , --remove-equations

remove redundant equations

-rNAME , --rewriter=NAME

use rewrite strategy NAME:


jitty rewriting


compiled jitty rewriting


jitty rewriting with prover

-zNAME , --search=NAME

search the state space using strategy NAME:


Compute the right hand side of the boolean variables in a first come first served basis. This is comparable with a breadth-first search. This is good for generating counter examples.


Compute the right hand side of a boolean variables where the last generated variable is investigated first. This corresponds to a depth-first search. This can substantially outperform breadth-first search when the validity of a formula is determined at a larger depth.


Shorthand for breadth-first.


Shorthand for depth-first.

-f[PARAMS] , --select[=PARAMS]

select finite parameters that need to be expanded. Examples: –select=X1(b:Bool,c:Bool);X2(b:Bool) or –select=*(*:Bool). Note: this option only has effect when used together with –strategy=finite.

-sNAME , --strategy=NAME

compute the BES using strategy NAME:


for computing only boolean equations which can be reached from the initial state


an alternative version of the lazy strategy that supports more options


for computing all possible boolean equations


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

-ONAME , --transformation=NAME

optimize the BES using strategy NAME:


Compute all boolean equations which can be reached from the initial state, without optimization. This is is the most data efficient option per generated equation.


Optimize by immediately substituting the right hand sides for already investigated variables that are true or false when generating an expression. This is as memory efficient as 0.


In addition to 1, also substitute variables that are true or false into an already generated right hand side. This can mean that certain variables become unreachable (e.g. X0 in X0 and X1, when X1 becomes false, assuming X0 does not occur elsewhere. It will be maintained which variables have become unreachable as these do not have to be investigated. Depending on the PBES, this can reduce the size of the generated BES substantially but requires a larger memory footprint.


In addition to 2, investigate for generated variables whether they occur on a loop, such that they can be set to true or false, depending on the fixed point symbol. This can increase the time needed to generate an equation substantially.

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


Wieger Wesselink; Alexander van Dam and Tim Willemse