PBESINST(1)

πŸ“¦ version 202507, in nixos 26.05, nixpkgs unstable

πŸ’… PBESINST(1) πŸ’…

okay bestie, sit down, we're doing the pbesinst page from the User Commands manual and honestly? it's giving main character energy for a tool that just... converts one file into another file. but it's SO good at it. let's go 🫢


✨ NAME ✨

pbesinst β€” compute a BES out of a PBES

like, it takes your parameterised thing and gives you a non-parameterised thing. the way that it just does that. πŸ”₯


🌸 SYNOPSIS 🌸

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

πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the vibe: it transforms the PBES from INFILE into an equivalent BES and writes it to OUTFILE. That's the whole job. And it ate. πŸ’…

  • If INFILE isn't there β†’ standard input is used.
  • If OUTFILE isn't there β†’ standard output is used.

ngl the format of OUTFILE is determined by its extension (unless you specify it with an option, obviously). the supported formats are:

  • 'pbes' for the mCRL2 PBES format
  • 'bes' for the mCRL2 BES format

πŸŽ€ OPTIONS πŸŽ€

OPTION can be any of the following, and yes, we're listing every single one, because leaving stuff out is not the vibe:

  • -iFORMAT, --in=FORMAT β€” use input format FORMAT:
    • 'pbes' β€” PBES in internal format (this is the default, bestie)
    • 'pgsolver' β€” BES in PGSolver format
    • 'text' β€” PBES in textual (mCRL2) format
  • -oFORMAT, --out=FORMAT β€” use output format FORMAT:
    • 'bes' β€” BES in internal format
    • 'pbes' β€” PBES in internal format (default energy ✨)
    • 'pgsolver' β€” BES in PGSolver format
    • 'text' β€” PBES in textual (mCRL2) format
  • -QNUM, --qlimit=NUM β€” limit the enumeration of universal and existential quantifiers in data expressions to NUM iterations (default NUM=10, and NUM=0 means unlimited, so go off king πŸ‘‘).
  • -e, --remove-equations β€” remove redundant equations. decluttering era 🧹
  • -rNAME, --rewriter=NAME β€” use rewrite strategy NAME:
    • 'jitty' β€” jitty rewriting (default)
    • 'jittyc' β€” compiled jitty rewriting
    • 'jittyp' β€” jitty rewriting with prover
  • -zNAME, --search=NAME β€” search the state space using strategy NAME:
    • 'breadth-first' β€” 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. (default πŸ’–)
    • 'depth-first' β€” 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.
    • 'b' β€” shorthand for breadth-first.
    • 'd' β€” 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).
ngl this option only has effect when used together with --strategy=finite. like, it literally will not do anything otherwise. iykyk πŸ™ˆ
  • -sNAME, --strategy=NAME β€” compute the BES using strategy NAME:
    • 'lazy' β€” for computing only boolean equations which can be reached from the initial state
    • 'alternative-lazy' β€” an alternative version of the lazy strategy that supports more options (default)
    • 'finite' β€” for computing all possible boolean equations
  • --timings[=FILE] β€” append timing measurements to FILE. Measurements are written to standard error if no FILE is provided. clock it ⏱️
  • -ONAME, --transformation=NAME β€” optimize the BES using strategy NAME:
    • '0' β€” 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. (default)
    • '1' β€” 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.
    • '2' β€” 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.
    • '3' β€” 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 ⭐

the classics, the icons, the ones you actually use every day:

  • -q, --quiet β€” do not display warning messages. silence is golden πŸ’€
  • -v, --verbose β€” display short log messages
  • -d, --debug β€” display detailed log messages
  • --log-level=LEVEL β€” display log messages up to and including level; either warn, verbose, debug or trace
  • -h, --help β€” display help information
  • --version β€” display version information
  • --help-all β€” display help information, including hidden and experimental options. the secret menu, lowkey πŸ‘€

πŸ’œ AUTHOR πŸ’œ

Written by Wieger Wesselink; Alexander van Dam and Tim Willemse. legends, fr fr 🌈


πŸ“ REPORTING BUGS πŸ“

Report bugs at <http://www.mcrl2.org/issuetracker>.

bestie if it's broken, TELL THEM. do not suffer in silence 😭


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. like, none. zero. nada. 🫢

🌈 SEE ALSO 🌈

See also the manual at <http://www.mcrl2.org/web/user_manual/tools/release/pbesinst.html>.


and that's the page!! mwah πŸ’‹ this was pbesinst from the mCRL2 toolset version 202507...., dated October 2026 β€” yeah the version string really does end in four dots, we don't make the rules, we just think it's iconic πŸŽ€βœ¨πŸ‘‘

πŸ“¦ where this page comes from