LTSCOMPARE(1)

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

πŸ’… ltscompare(1) β€” User Commands, bestie

okay so like, welcome to ltscompare, the tool that answers the one question every LTS girlie needs answered: are these two things literally the same, or nah? This is the LTSCOMPARE(1) situation and honestly it's giving main character energy. πŸ¦‹


✨ NAME ✨

ltscompare β€” compare two LTSs


🌸 SYNOPSIS 🌸

ltscompare [OPTION]... [INFILE1] INFILE2

πŸ’– DESCRIPTION πŸ’–

So here's the vibe check: ltscompare determines whether or not the labelled transition systems (LTSs) in INFILE1 and INFILE2 are related by some equivalence or preorder. That's it, that's the whole job, and it ate. πŸ’…

  • If INFILE1 is not supplied, stdin is used.
  • If INFILE1 and/or INFILE2 is -, stdin is used.
  • Reading two LTSs via stdin is only supported for the 'aut' format, and those LTSs must be separated by an EOT character (4). no cap, that's a hard requirement bestie 🫢

The input formats are determined by the contents of INFILE1 and INFILE2. If you don't trust the vibes, options --in1 and --in2 can be used to force the input format of INFILE1 and INFILE2, respectively. The supported formats are:

  • 'aut' for the Aldebaran format (CADP)
  • 'dot' for the GraphViz format (no longer supported as input format) πŸ’€
  • 'fsm' for the Finite State Machine format
  • 'lts' for the mCRL2 LTS format

πŸ”₯ OPTIONS πŸ”₯

OPTION can be any of the following:

  • -c, --counter-example β€” generate a counter example if the input lts's are not equivalent. iconic behavior tbh 😭
  • --counter-example-file=NAME β€” the file to which the counterexample should be written
  • -eNAME), --equivalence=NAME) β€” use equivalence NAME (not allowed in combination with -p/--preorder). here's the whole menu, bestie, and yes you're gonna read all of it πŸ™ˆ
    • 'none' β€” identity equivalence (default)
    • 'bisim' β€” strong bisimilarity using the O(m log n) algorithm [Jansen/Groote/Keiren/Wijs 2019]
    • 'bisim-gv' β€” strong bisimilarity using the O(mn) algorithm [Groote/Vaandrager 1990]
    • 'bisim-gjkw' β€” strong bisimilarity using the O(m log m) algorithm [Groote/Jansen/Keiren/Wijs 2017]
    • 'bisim-gj' β€” strong bisimilarity using the O(m log n) experimental algorithm [Groote/Jansen 2024]
    • 'branching-bisim' β€” branching bisimilarity using the O(m log n) algorithm [Jansen/Groote/Keiren/Wijs 2019]
    • 'branching-bisim-gv' β€” branching bisimilarity using the O(mn) algorithm [Groote/Vaandrager 1990]
    • 'branching-bisim-gjkw' β€” branching bisimilarity using the O(m log m) algorithm [Groote/Jansen/Keiren/Wijs 2017]
    • 'branching-bisim-gj' β€” branching bisimilarity using the O(m log n) experimental algorithm [Groote/Jansen 2024]
    • 'dpbranching-bisim' β€” divergence-preserving branching bisimilarity using the O(m log n) algorithm [Jansen/Groote/Keiren/Wijs 2019]
    • 'dpbranching-bisim-gv' β€” divergence-preserving branching bisimilarity using the O(mn) algorithm [Groote/Vaandrager 1990]
    • 'dpbranching-bisim-gjkw' β€” divergence-preserving branching bisimilarity using the O(m log m) algorithm [Groote/Jansen/Keiren/Wijs 2017]
    • 'dpbranching-bisim-gj' β€” divergence-preserving branching bisimilarity using the O(m log n) experimental algorithm [Groote/Jansen 2024]
    • 'weak-bisim' β€” weak bisimilarity
    • 'dpweak-bisim' β€” divergence-preserving weak bisimilarity
    • 'sim' β€” strong simulation equivalence
    • 'ready-sim' β€” strong ready simulation equivalence
    • 'trace' β€” strong trace equivalence
    • 'weak-trace' β€” weak trace equivalence
    • 'coupled-sim' β€” coupled simulation equivalence
  • -iFORMAT, --in1=FORMAT β€” use FORMAT as the format for INFILE1 (or stdin)
  • -jFORMAT, --in2=FORMAT β€” use FORMAT as the format for INFILE2
  • -pNAME, --preorder=NAME β€” use preorder NAME (not allowed in combination with -e/--equivalence). the preorder lineup, get into it ✨
    • 'unknown' β€” default void preorder (default)
    • 'sim' β€” strong simulation preorder
    • 'ready-sim' β€” strong ready simulation preorder
    • 'trace' β€” strong trace preorder
    • 'weak-trace' β€” weak trace preorder
    • 'trace-ac' β€” trace preorder based on an anti chain algorithm
    • 'weak-trace-ac' β€” weak trace preorder based on an anti chain algorithm
    • 'failures' β€” failures refinement
    • 'weak-failures' β€” weak failures refinement
    • 'failures-divergence' β€” failures divergence refinement (automatically weak)
    • 'impossible-futures' β€” impossible futures
  • -sNAME, --strategy=NAME β€” explore the state space using strategy NAME (only for antichain based algorithms; includes all failures refinements):
    • 'b', 'breadth' β€” breadth-first search (default)
    • 'd', 'depth' β€” depth-first search
  • --tau=ACTNAMES β€” consider actions with a name in the comma separated list ACTNAMES to be internal (tau) actions in addition to those defined as such by the input
  • --timings[=FILE] β€” 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
  • --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 πŸ‘€

πŸŽ€ AUTHOR πŸŽ€

Written by Muck van Weerdenburg. we stan 🫢


πŸ¦‹ REPORTING BUGS πŸ¦‹

Report bugs at <http://www.mcrl2.org/issuetracker>. please do it, the maintainers wanna know fr fr 😭


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. (that's the dramatic part, bestie β€” no warranty at all πŸ’€)


πŸ’œ SEE ALSO πŸ’œ

See also the manual at <http://www.mcrl2.org/web/user_manual/tools/release/ltscompare.html>. iykyk πŸ”₯


and that's the whole page, no skips, no cap. go compare some LTSs, you're gonna slay. πŸ‘‘

ltscompare β€” mCRL2 toolset 20250... β€” October 2026 β€” that's the version and date, mwah πŸ’‹

πŸ“¦ where this page comes from