diff --git a/.gitignore b/.gitignore index 75013fda5..2dca060d1 100644 --- a/.gitignore +++ b/.gitignore @@ -37,4 +37,3 @@ include/ /examples/*.lps /examples/abp.pbes nbproject -_site diff --git a/.travis.yml b/.travis.yml index 6ee7176d2..ba7fa4979 100644 --- a/.travis.yml +++ b/.travis.yml @@ -108,7 +108,7 @@ before_install: export SYLVAN_URL="https://github.com/trolando/sylvan/archive/v$SYLVAN_VERSION.tar.gz" && export SYLVAN_NAME="sylvan-$SYLVAN_VERSION" && export MCRL2_NAME="mCRL2.tar.gz" && - export MCRL2_URL="https://raw.githubusercontent.com/utwente-fmt/ltsmin-travis/master/$TRAVIS_OS_NAME/$MCRL2_NAME" + export MCRL2_URL="https://raw.githubusercontent.com/utwente-fmt/ltsmin-travis/master/$TRAVIS_OS_NAME/$MCRL2_NAME" && export PKG_CONFIG_PATH="$HOME/ltsmin-deps/lib/pkgconfig" - if [ "$TRAVIS_OS_NAME" = "linux" ]; then export PROB_NAME="ProB.linux64.tar.gz" && @@ -277,14 +277,37 @@ script: notifications: email: false +before_deploy: + - export OLD_WEBSITE_VERSION=$(git --no-pager show gh-pages:_config.yml | grep "version" || echo "version 0.0.0" | cut -d" " -f2) + - export NEW_WEBSITE_VERSION=$(cat "www/_config.yml" | grep "version" | cut -d" " -f2) + - echo "Old website version is $OLD_WEBSITE_VERSION, new website version is $NEW_WEBSITE_VERSION" + # If the LTSmin version is larger than the website version, + # we need to deploy a new website. + - ./deploy-web "$NEW_WEBSITE_VERSION" "$OLD_WEBSITE_VERSION" && + test -n "$TRAVIS_TAG" -a "x$RELEASE_BUILD" = "xyes" -a "$TRAVIS_OS_NAME" = "linux" && + export DEPLOY_WEBSITE="yes" && echo "The website will be deployed" ; true + - if [ "x$DEPLOY_WEBSITE" = "xyes" ]; then + mkdir -p www/assets/man && cp doc/*.html www/assets/man && + cp README.md www && + pushd www && gem install jekyll bundler && bundle install && + jekyll b && popd; fi + deploy: - provider: releases - # define $GITHUB_TOKEN in Travis CI build environment. - api_key: $GITHUB_TOKEN - file: - - "ltsmin-$TRAVIS_TAG-source.tgz" - - "/tmp/dist/$distname.tgz" - skip_cleanup: true - on: - tags: true - condition: "x$RELEASE_BUILD = xyes" + - provider: releases + # define $GITHUB_TOKEN in Travis CI build environment. + api_key: $GITHUB_TOKEN + file: + - "ltsmin-$TRAVIS_TAG-source.tgz" + - "/tmp/dist/$distname.tgz" + skip_cleanup: true + on: + tags: true + condition: "x$RELEASE_BUILD = xyes" + - provider: pages + # define $GITHUB_TOKEN in Travis CI build environment. + github_token: $GITHUB_TOKEN + local_dir: www/_site + skip_cleanup: true + on: + tags: true + condition: "x$DEPLOY_WEBSITE = xyes" diff --git a/RELEASE-CHECKLIST b/RELEASE-CHECKLIST index ef9a4a2e4..eb60ba389 100644 --- a/RELEASE-CHECKLIST +++ b/RELEASE-CHECKLIST @@ -8,15 +8,10 @@ Release Checklist Having this sym link means we remain compatible with autoconf. -* Verify the version (v) in configure.ac. - -* Verify the LTSmin version (v) - in the website config: _config.yml. - -* Copy the new HTML manpages to assets/man. +* Verify the version () in configure.ac. * Tag release - git tag v + git tag * make distcheck (creates tarball and checks whether it builds) To test specific configurations: @@ -24,6 +19,5 @@ Release Checklist * Push the tag to origin, Travis will perform the release for you :) -* Bump the version in configure.ac, and _config.yml, - and commit to master. +* Bump the version in configure.ac, and commit to master. diff --git a/assets/man/ce-mpi.html b/assets/man/ce-mpi.html deleted file mode 100644 index 758815043..000000000 --- a/assets/man/ce-mpi.html +++ /dev/null @@ -1,909 +0,0 @@ - - - - - -ce-mpi(1) - - - - - -
-
-

SYNOPSIS

-
-

ce-mpi [OPTION] <input> <output>

-
-
-
-

DESCRIPTION

-
-

This tool removes tau cycles (strongly connected components) from a -labeled transition system. The default reduction algorithm is -coloring.

-

For both, input and output only (old-style) DIR archives are -supported; see also ltsmin-convert(1).

-

Using the option --workers=N, this tool starts the command mpirun silently -in the background with the suitable options, i.e. -np 4. -Alternatively, one may wish to call mpirun with additional options. This can -be done using the --mpi option, e.g.:

-
-
-
mpirun -np 4 -mca btl tcp,self {manname} --mpi
-
-

The tool uses MPI for distributed -computation, thus it has to be started via mpirun. nodespec -determines which processors the tool is run on.

-

The workers send messages to themselves. So if you use -Open MPI, you have to use -mpirun -mca btl CONNECT,self NODESPEC where -CONNECT can be tcp, mx, ib, etc..

-
-
-
-

OPTIONS

-
-
-

Reductions

-
-
---color -
-
-

- Apply cycle elimination using coloring (default). -

-
-
---group -
-
-

- Apply cycle elimination using groups. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/dve2lts-dist.html b/assets/man/dve2lts-dist.html deleted file mode 100644 index ff82f78e9..000000000 --- a/assets/man/dve2lts-dist.html +++ /dev/null @@ -1,1735 +0,0 @@ - - - - - -dve2lts-dist(1) - - - - - -
-
-

SYNOPSIS

-
-

dve2lts-dist [OPTIONS]… input<_.dve_|.dve2C> [output.fmt]

-
-
-
-

DESCRIPTION

-
-

dve2lts-dist performs a reachability analysis on a specification provided -in input.dve or input.dve2C. Specifications are in dve format, -or in dve2C format generated by the divine tool. output.fmt -specifies the name of the output archive. The desired format is -deduced from the filename extension. Available formats are described -below.

-

Using the option --workers=N, this tool starts the command mpirun silently -in the background with the suitable options, i.e. -np 4. -Alternatively, one may wish to call mpirun with additional options. This can -be done using the --mpi option, e.g.:

-
-
-
mpirun -np 4 -mca btl tcp,self {manname} --mpi
-
-
-
-
-

DIVINE

-
-

Compile a DVE input model with divine:

-
-
-
divine compile -l input.dve
-
-

The command results in a compiled model input.dve2C.

-

If an LTL property is present in the model, a buchi automaton is created. -LTSmin can directly perform LTL model checking on such models:

-
-
-
dve2lts-mc --strategy=cndfs --threads=16 anderson.6.prop4.dve2C
-dve2lts-seq --por --proviso=color --strategy=scc anderson.6.prop4.dve
-
-

These two examples perform LTL model checking using: multi-core NDFS (cndfs), -and a sequential SCC-based algorithm with partial order reduction (--por and ---proviso, where different provisos are available). -Again one can provide additional options to store traces, etc.

-

Note that this requires a modified version of the DiVinE toolset, -which adds an LTSmin compilation backend (option -l). For -availability, refer to the -LTSmin website.

-
-
-
-

OPTIONS

-
-
-
---nice=LEVEL -
-
-

- Set the nice level of all worker processes. This is useful - when running on other people’s workstations. -

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
---filter=<patternlist> -
-
-

- Select the labels to be written to file from the - state vector elements, state labels and edge labels. - The argument is a semicolon separated list of shell - file patterns. Each pattern may be prefixed with "!" to - exclude a set of labels. If none of the patterns matches the default - is to exclude the label. Hence, all labels starting with - an "x" are specified as "x*". The complement all labels, - except those starting with an "x" are specified as "!x*;*". -

-
-
---cost=<edge label> -
-
-

- The given edge labels defines the cost of an edge. Based on this cost, - the lowest cost for reaching every state is computed. Moreover, the order - in which states are explored is such that lower cost states are explored - before higher costs ones. The levels reported when this options is in effect are - cost levels. The counter-example traces are guaranteed to be a lowest cost path. - However, the length of the trace may not be minimal. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Hybrid Runtime Options

-

The Hybrid Runtime Environment provides startup options for several parallel architectures.

-
-

Posix threads options

-

If the application supports it and Posix threads are supported by the OS then -the following option is available:

-
-
---threads[=count] -
-
-

-Start count worker threads. The default count is the number of CPU’s in the system. -

-
-
-
-
-

Posix processes options

-

If the application supports it and Posix shared memory is supported by the OS then -the following option is available:

-
-
---procs[=count] -
-
-

-Fork count worker processes. The default count is the number of CPUs in the system. -

-
-
-

Note that MacOS X only supports Posix shared memory from version 10.7 (Lion) -onwards.

-
-
-

MPI options

-

If the application supports it and MPI support was compiled into the binary then -the following options are available:

-
-
---workers=count -
-
-

-Start the program with count MPI workers. -

-
-
---mpirun=mpirun arguments -
-
-

-Invoke mpirun with the given arguments. -

-
-
---mpi -
-
-

-Ignore --workers and --mpirun options and start the MPI runtime. -

-
-
-
-
-
-

General Options

-
-
--v -
-
-

-Increase the level of verbosity -

-
-
--q -
-
-

-Be quiet; do not print anything to the terminal. -

-
-
---debug=file -
-
-

-Enable debugging output for file. -

-
-
---version -
-
-

-Print version string of this tool. -

-
-
--h, --help -
-
-

-Print help text -

-
-
---usage -
-
-

-Print short usage summary. -

-
-
---stats -
-
-

-Enable statistics gathering/printing. -

-
-
---where -
-
-

-Include file and line number in debug messages. -

-
-
---when -
-
-

-Include the wall time since program start in all messages. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/dve2lts-mc.html b/assets/man/dve2lts-mc.html deleted file mode 100644 index 861289449..000000000 --- a/assets/man/dve2lts-mc.html +++ /dev/null @@ -1,2002 +0,0 @@ - - - - - -dve2lts-mc(1) - - - - - -
-
-

SYNOPSIS

-
-

dve2lts-mc [OPTION]… input<_.dve_|.dve2C>

-
-
-
-

DESCRIPTION

-
-

dve2lts-mc performs multi-core reachability and LTL model checking on the -labelled transition system from a compiled specification provided in -input.dve or input.dve2C (precompiled). -LTS output is not supported by this tool, use the distributed tools instead.

-
-
-
-

DIVINE

-
-

Compile a DVE input model with divine:

-
-
-
divine compile -l input.dve
-
-

The command results in a compiled model input.dve2C.

-

If an LTL property is present in the model, a buchi automaton is created. -LTSmin can directly perform LTL model checking on such models:

-
-
-
dve2lts-mc --strategy=cndfs --threads=16 anderson.6.prop4.dve2C
-dve2lts-seq --por --proviso=color --strategy=scc anderson.6.prop4.dve
-
-

These two examples perform LTL model checking using: multi-core NDFS (cndfs), -and a sequential SCC-based algorithm with partial order reduction (--por and ---proviso, where different provisos are available). -Again one can provide additional options to store traces, etc.

-

Note that this requires a modified version of the DiVinE toolset, -which adds an LTSmin compilation backend (option -l). For -availability, refer to the -LTSmin website.

-
-
-
-

OPTIONS

-
-
-
---threads=NUMBER -
-
-

- Number of threads to use for state space exploration - (default: NUMBER=NUM_CORES). Maximum is 64. -

-
-
---strategy=TYPE -
-
-

- Select an exploration strategy. Two kinds of algorithms - are available: LTL model checking and reachability. - The multi-core LTL algorithms (Nested DFS) are implemented - in a swarmed fashion, however with a shared state storage. - On top of that, MCNDFS and ENDFS offer work sharing between threads - and can deliver speedups for some models. - Note that the LTL algorithms require buchi automata as input. - Such a model can be provided directly by the language frontend, - i.e., DiVinE property models are supported, or by the LTL - layer (see --ltl). - Note finally that strict reachability exploration orders - are not guaranteed by all multi-core search strategies. - TYPE can be one of the following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-sbfs -
-
-

- explore state space in strict breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in relaxed depth-first order. Relaxed meaning that - the inclusion check on the set of visited states is executed immediately - after generating a state. This saves stack space and improves performance - of the parallel reachability analysis. -

-
-
-ndfs -
-
-

- multi-core swarmed Nested Depth-First Search (Courcoubetis et al.). -

-
-
-nndfs -
-
-

- multi-core swarmed New Nested Depth-First Search (Schwoon, Esparza). -

-
-
-ldfs -
-
-

- Multi-Core Nested Depth-First Search (Laarman, Langerak, van de Pol, Weber, Wijs). -

-
-
-endfs -
-
-

- Multi-Core Nested Depth-First Search by Evangelista et al. The algorithm has - been adapted with the cyan color encoding and early cycle detection, as - described in "Variations on Multi-Core Nested Depth-First Search" - (Laarman, van de Pol). - Note that ENDFS requires a repair procedure, NNDFS is chosen by default. - Alternatives can be chosen by providing a list of strategies, for example: - "endfs,mcndfs", yields the NMC-NDFS algorithm as described in the Variations - paper (with load balancing). - Finally, we also allow multiple levels of ENDFS to be combined: - "endfs,endfs,nndfs". -

-
-
-cndfs -
-
-

- New CNDFS algorithm. - Multi-Core Nested Depth-First Search (Evangelista, Laarman, Petrucci, van de Pol). -

-
-
-tarjan -
-
-

- Tarjan’s sequential SCC algorithm. - Depth-First Search and Linear Graph Algorithms (Tarjan). -

-
-
-renault -
-
-

- Renault’s SCC algorithm. - Parallel Explicit Model Checking for Generalized Büchi Automata (Renault et al.). -

-
-
-ufscc -
-
-

- The UFSCC SCC algorithm. - Multi-Core On-The-Fly SCC Decomposition (Bloemen, Laarman, van de Pol). -

-
-
-
-
---perm=TYPE -
-
-

- Select the transition permutation, which is used to guide - different threads to different parts of the state space. - A good permutation can significantly speed up bug hunting. - TYPE can be one of the following options, each has - different properties in terms of performance and effectiveness - summarized as (perf./eff.) : -

-
-
-dynamic -
-
-

- use "fresh successor heuristics" described in - "Variations on Multi-Core Nested Depth-First Search" (Laarman, van de Pol). - (decent/very good for bug hunting). Default for LTL. -

-
-
-sort -
-
-

- sort on the unique id of the successor state (decent/good) -

-
-
-random -
-
-

- use multiple fixed random permutation schemes per worker (decent/good). -

-
-
-rr -
-
-

- randomized using a full random sort order on the states. This is more random - than the previous option, but requires more pre-computation time for the - random array (decent/almost perfect). -

-
-
-shift -
-
-

- shift the order of transitions by a fixed value per worker (fast/decent). -

-
-
-otf -
-
-

- sort according to a dynamic permutation scheme (slow/perfect). -

-
-
-none -
-
-

- use the same exploration order for all workers. Default for reachability. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-table -
-
-

- use a lockless hash table. -

-
-
-tree -
-
-

- use a lockless tree-compressed table. In many cases the tree - can compress states to two integers regardless of their length. To efficiently - accommodate more than 4*10^9 states, the table is split in a root and a leaf - table whose respective size can be adjusted using the --ratio option - (default). -

-
-
-cleary-tree -
-
-

- use a lockless tree-compressed hash table with a parallel Cleary table to - store roots. The compressed size of a state can approach one integer - with this approach. The leafs table is stored as a standard tree table (two - integers per subtree), which typically can be much smaller (up to the - square root of the root table size). To control the respective size of the - leaf table use the --ratio option. -

-
-
-
-
---ratio=NUMBER -
-
-

- Log_2 ratio between root and leaf table in tree compression. The ratio - can theoretically be as low as the square root of the root table size - (see --size). This will however only work if the state vectors are - perfectly combinatorial wrt their variable values. In most cases - the leaf table will grow larger, but find found that a factor four - (--ratio=2) works well for over 75% of the BEEM models. - (default: NUMBER=2). -

-
-
---size=NUMBER -
-
-

- Log_2 hash table size in elements (default: NUMBER=24). - This is also used for the internal node table of the tree. -

-
-
---zobrist=NUMBER -
-
-

- Save time by using zobrist incremental state hashing. - NUMBER defines the (log_2) size of the random number table - (default: 0=OFF). Large tables mean better hash distributions, - but more cache misses due to memory size. - Experiments have shown that small tables (2^6) suffice for - good distributions (equal or better than Jenkin’s hash). - Improvements are only noticable for fast state generators, like - DiVinE 2.2 (dve22lts-mc(1)). -

-
-
---max=NUMBER -
-
-

- Maximum search depth. -

-
-
---proviso=PROVISO -
-
-

- Change the proviso implementation for partial order reduction in presence - of safety properties or liveness properties. Parallel LTL is only supported - with the cndfs proviso in the cndfs search strategy. Sequentially, LTL is - also supported the stack proviso in the ndfs search strategy. - PROVISO can be either: -

-
-
-force-none -
-
-

- Disables the ignoring proviso check (only useful for benchmarking or - bug hunting). -

-
-
-closed-set -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack proviso. It works with both - the dfs and (p/s)bfs exploration strategies. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs or ndfs search strategy (for resp. safety or LTL properties). -

-
-
-cndfs -
-
-

- A special parallel cycle proviso is used to enable POR with multi-core - LTL model checking using the cndfs search strategy. -

-
-
-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/dve2lts-seq.html b/assets/man/dve2lts-seq.html deleted file mode 100644 index 3463393bc..000000000 --- a/assets/man/dve2lts-seq.html +++ /dev/null @@ -1,2045 +0,0 @@ - - - - - -dve2lts-seq(1) - - - - - -
-
-

SYNOPSIS

-
-

dve2lts-seq [OPTION]… input[.dve|.dve2C] <[output.fmt]>

-
-
-
-

DESCRIPTION

-
-

dve2lts-seq generates a labelled transition system from a specification -provided in input.dve or input.dve2C by enumerative reachability -analysis using a general state expanding algorithm. output.fmt -specifies the name of the output archive. The desired format is -deduced from the filename extension. Available formats are described -below.

-
-
-
-

DIVINE

-
-

Compile a DVE input model with divine:

-
-
-
divine compile -l input.dve
-
-

The command results in a compiled model input.dve2C.

-

If an LTL property is present in the model, a buchi automaton is created. -LTSmin can directly perform LTL model checking on such models:

-
-
-
dve2lts-mc --strategy=cndfs --threads=16 anderson.6.prop4.dve2C
-dve2lts-seq --por --proviso=color --strategy=scc anderson.6.prop4.dve
-
-

These two examples perform LTL model checking using: multi-core NDFS (cndfs), -and a sequential SCC-based algorithm with partial order reduction (--por and ---proviso, where different provisos are available). -Again one can provide additional options to store traces, etc.

-

Note that this requires a modified version of the DiVinE toolset, -which adds an LTSmin compilation backend (option -l). For -availability, refer to the -LTSmin website.

-
-
-
-

OPTIONS

-
-
-
---strategy=TYPE -
-
-

- Select exploration strategy. TYPE can be one of the - following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in depth-first order. -

-
-
-scc -
-
-

- perform LTL model checking based on Buchi automata with Couvreur’s - algorithm (accepting cycle detection). This requires an accepting - state label to be present. See below. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-tree -
-
-

- use a tree-compressed hash table (default). -

-
-
-table -
-
-

- use a hash table. -

-
-
-vset -
-
-

- use a vector set (decision diagram). -

-
-
-
-
---max=DEPTH -
-
-

- Maximum search depth, search until DEPTH. -

-
-
---proviso=closedset|stack|color -
-
-

- Change the proviso implementation for partial order reduction (ltl) -

-

Change the proviso used to detect that an accepting cycle is closed. -Three options are available, the default is closedset.

-
-
-closedset -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack or color proviso. It works with both - the dfs- and bfs exploration strategy. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs/scc search strategy (since bfs has no stack). -

-
-
-color -
-
-

- The color proviso requires a lot of extra work and memory - but can significantly improve the reduction. It too works - only with the dfs/scc search strategies. -

-
-
-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/dve2lts-sym.html b/assets/man/dve2lts-sym.html deleted file mode 100644 index 35cceb28a..000000000 --- a/assets/man/dve2lts-sym.html +++ /dev/null @@ -1,1927 +0,0 @@ - - - - - -dve2lts-sym(1) - - - - - -
-
-

SYNOPSIS

-
-

dve2lts-sym [OPTION]… input<_.dve_|.dve2C> [output.etf]

-
-
-
-

DESCRIPTION

-
-

dve2lts-sym performs a reachability analysis on a specification provided -in input.dve/input.dve2C. Specifications are in dve format, or in -dve2C format generated by the divine tool. output.etf -specifies the name of the output etf(5).

-
-
-
-

DIVINE

-
-

Compile a DVE input model with divine:

-
-
-
divine compile -l input.dve
-
-

The command results in a compiled model input.dve2C.

-

If an LTL property is present in the model, a buchi automaton is created. -LTSmin can directly perform LTL model checking on such models:

-
-
-
dve2lts-mc --strategy=cndfs --threads=16 anderson.6.prop4.dve2C
-dve2lts-seq --por --proviso=color --strategy=scc anderson.6.prop4.dve
-
-

These two examples perform LTL model checking using: multi-core NDFS (cndfs), -and a sequential SCC-based algorithm with partial order reduction (--por and ---proviso, where different provisos are available). -Again one can provide additional options to store traces, etc.

-

Note that this requires a modified version of the DiVinE toolset, -which adds an LTSmin compilation backend (option -l). For -availability, refer to the -LTSmin website.

-
-
-
-

OPTIONS

-
-
-
---order=ORDER -
-
-

- Select the exploration strategy: bfs-prev, bfs, chain-prev, - or chain. With bfs-prev and bfs, breadth-first search is - used. Here, bfs-prev only considers the states found at the - previous level, while bfs considers the whole visited set. With - chain-prev and chain, a chaining strategy is used. Here, - chain-prev at each level starts from the states found at the - previous level, while chain uses the whole visited set. Defaults - to bfs-prev. -

-

When using breadth-first search, the tool performs the next state computation -for all edge groups on the current level or current set of visited states. -Chaining means to apply next state for the first group to the visited -states, then apply next-state for the second group to the result, -etc. Thus, a chaining analysis can be completed in much less -iterations than a BFS analysis.

-
-
---saturation=SATURATION -
-
-

- Select a saturation strategy: none, sat-like, sat-loop, sat-fix, - sat. The sat-like strategy goes up and down the levels of the BDD - used to represent the state space. The sat-loop strategy loops over - the levels. The sat-fix strategy repeatedly performs a fixpoint - computation using saturation. The sat strategy does saturation as - described in the literature with on-the-fly expansion of the transition - relations. Defaults to none, i.e. no saturation. -

-

All strategies except sat-fix and sat work in combination with the order -to saturate levels.

-
-
---sat-granularity=GRANULARITY -
-
-

- Select the granularity of sat-like and sat-loop strategies. The - granularity indicates how many BDD levels are considered at the same - time. Defaults to 10. -

-
-
---save-sat-levels -
-
-

- Save the previous states seen at saturation levels. This option has - effect for any of the saturation strategies in combination with either - bfs-prev or chain-prev. -

-
-
---guidance=STRATEGY -
-
-

- Select a search strategy for searching for actions: unguided, - directed. The unguided strategy considers all transition - groups. The directed strategy focuses the search on the transition - groups in which the action occurs. Defaults to unguided. -

-
-
---dot=DIR -
-
-

- If this option is supplied DIR is a directory to which dot files of vector sets are written to. - Note that this option should only be used for smaller vector sets because of disk space. -

-

Three type of dot files are (over)written:

-
    -
  1. -

    -current-l<L>.dot: the nodes in the vector set at level L (and only level L), -

    -
  2. -
  3. -

    -visited-l<L>.dot: the nodes in the vector set up to and included level L, -

    -
  4. -
  5. -

    -group_next-l<L>-k<K>.dot: the nodes in the transition relation of group K at level L. -

    -
  6. -
-
-
---mu=MUFILE|MUFORMULA -
-
-

- After computing all reachable states, evaluate the mu-formula in MUFILE -

-

MUFILE is a file containing a Mu Calculus formula (see -ltsmin-mu(5)). Alternatively, the formula can be provide directly as -MUFORMULA. This formula is a propositional formula with least and greatest -fixpoint operator. It will be evaluated after generation of the complete state -space.

-
-
---ctl-star=CTLFILE|CTLFORMULA -
-
-

- CTLFILE is a file containing an Linear Temporal Logic Star (CTL*) formula - (see ltsmin-ctl(5)). Which content can also be provided directly as - CTLFORMULA. - The formula is translated to a mu-formula (see ltsmin-mu(5)), - which is evaluated after computing all reachable states. -

-
-
---no-matrix -
-
-

- Do not print the dependency matrix if -v (verbose) is used. -

-
-
---no-soundness-check -
-
-

- When using --pins-guards=assume-true disable the soundness check of the model specification. - The soundness check may be expensive and can be disabled when the model specification is known to be sound. - A guard may not evaluate to true or false but to maybe. A guard which evaluates to maybe depends on - the evaluation of another guard. For languages such as Promela and DVE it checks whether if - a guard evaluates to maybe there is another guard on the left which evaluates to false. For languages such as - mCRL2 it also checks whether a guard on the right evaluates to false. If for all states this holds then the - model specification is sound for guard-splitting. -

-
-
---precise -
-
-

- Compute the final number of states precisely. -

-
-
---next-union -
-
-

- If supported by the vset implementation; perform the computation of successor states simultaneously with unifying - the current states. Simultaneously, means with a single BDD/MDD operation. -

-
-
---inv-par -
-
-

- Checks all invariants in parallel. -

-
-
---inv-bin-par -
-
-

- Checks both sides of a binary operand in parallel in an invariant, requires --inv-par. - Note that this option may actually slow down invariant checking, because parallelization - of a binary operand disables short-circuit evaluation. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Symbolic Parity Game Options

-

A symbolic parity game can be generated either by using the --mucalc -option or by using the PBES language module.

-
-
---pg-solve -
-
-

- Solve the generated parity game. -

-
-
---pg-reduce -
-
-

- Reduce the generated parity game on-the-fly (experimental). -

-
-
---pg-write=FILE -
-
-

- Writes a symbolic parity game to FILE. -

-
-
-
-
-

Symbolic Parity Game Solver Options

-
-
---attr=default|chain|par|par2 -
-
-

- Choose attractor function. -

-

Available attractor functions:

-
-
-default -
-
-

- Straightforward attractor computation. -

-
-
-chain -
-
-

- Chaining attractor, applies transition groups in a different order - than default in computing an attractor level. -

-
-
-par -
-
-

- Spawns parallel tasks to compute forward and backward steps for each - attractor level. -

-
-
-par2 -
-
-

- Spawns more parallel tasks than par, by applying forward steps in - parallel to the result of the backward steps of the different - transition groups. -

-
-
-
-
---saturating-attractor -
-
-

- Use saturation in the chaining attractor. -

-
-
---pg-write-dot -
-
-

- Write dot files to disk during parity game solving for debugging. -

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/dve2torx.html b/assets/man/dve2torx.html deleted file mode 100644 index 5ce9ec10c..000000000 --- a/assets/man/dve2torx.html +++ /dev/null @@ -1,1337 +0,0 @@ - - - - - -dve2torx(1) - - - - - -
-
-

SYNOPSIS

-
-

dve2torx [OPTION]… input<_.dve_|.dve2C>

-
-
-
-

DESCRIPTION

-
-

dve2torx provides access to a labelled transition system from a -specification provided in input[.dve|.dveC] via the -TorX-Explorer textual interface on stdin and stdout.

-
-
-
-

DIVINE

-
-

Compile a DVE input model with divine:

-
-
-
divine compile -l input.dve
-
-

The command results in a compiled model input.dve2C.

-

If an LTL property is present in the model, a buchi automaton is created. -LTSmin can directly perform LTL model checking on such models:

-
-
-
dve2lts-mc --strategy=cndfs --threads=16 anderson.6.prop4.dve2C
-dve2lts-seq --por --proviso=color --strategy=scc anderson.6.prop4.dve
-
-

These two examples perform LTL model checking using: multi-core NDFS (cndfs), -and a sequential SCC-based algorithm with partial order reduction (--por and ---proviso, where different provisos are available). -Again one can provide additional options to store traces, etc.

-

Note that this requires a modified version of the DiVinE toolset, -which adds an LTSmin compilation backend (option -l). For -availability, refer to the -LTSmin website.

-
-
-
-

OPTIONS

-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
-
-

SEE ALSO

- -
-
-

- - - diff --git a/assets/man/etf-convert.html b/assets/man/etf-convert.html deleted file mode 100644 index 3f7d83fc3..000000000 --- a/assets/man/etf-convert.html +++ /dev/null @@ -1,888 +0,0 @@ - - - - - -etf-convert(1) - - - - - -
-
-

SYNOPSIS

-
-

etf-convert [OPTIONS] <input> <output>

-
-
-
-

DESCRIPTION

-
-

This tool translates etf(5) to DVE. -Note that the translation is a very simple one, that produces relatively -inefficient DVE code.

-
-
-
-

OPTIONS

-
-
-
---pvars=STRING -
-
-

- Give a list of independent variables that is used while generating - multiple process DVE models. -

-
-
---byte -
-
-

- Write the DVE output using the type byte rather than the type int. -

-
-
---ce -
-
-

- When writing ETF, this option eliminates constant state vector elements. - Note that the values of the eliminated variables are lost because - ETF has no way of defining constants. -

-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SEE ALSO

- -
-
-

- - - diff --git a/assets/man/etf.html b/assets/man/etf.html deleted file mode 100644 index fbc741753..000000000 --- a/assets/man/etf.html +++ /dev/null @@ -1,923 +0,0 @@ - - - - - -etf(5) - - - - - -
-
-

SYNOPSIS

-
-

A text based intermediate format for PINS models for efficient storage -of symbolically represented state spaces.

-
-
-
-

DESCRIPTION

-
-

An ETF file is a sequence of sections.

-
    -
  • -

    -The first section must be a state section, describing the state vector. -

    -
  • -
  • -

    -The second section must be an edge section, describing the edge labels. -

    -
  • -
  • -

    -There must be a single init section, describing the initial state(s). -

    -
  • -
  • -

    -There can be 0 or more map sections, defining a state label each. -

    -
  • -
  • -

    -There can be 0 or more sort sections, describing the values of sorts. -

    -
  • -
  • -

    -There can be 0 or more trans sections, describing a partition of the transition relation each. -

    -
  • -
-
-
-
-

GRAMMAR

-
-
-
-
etf         ::= state edge ( trans | map | sort )* init ( trans | map | sort )*
-state       ::= "begin state"
-                opt_decl*
-                "end state"
-edge        ::= "begin edge"
-                declaration*
-                "end edge"
-init        ::= "begin init"
-                number*
-                "end init"
-map         ::= "begin map" declaration
-                mapentry*
-                "end map"
-trans       ::= "begin trans"
-                transentry*
-                "end trans"
-sort        ::= "begin sort" ident
-                value*
-                "end ident"
-opt_decl    ::= (ident | "_") ":" (ident | "_")
-declaration ::= ident ":" ident
-mapentry    ::= ( number | "*" ) * ( value | number )
-transentry  ::= ((number "/" number)|"*")* ( value | number )*
-ident       ::= '_'*[':print:'] ([':print:']*
-number      ::= ['0'..'9']+
-value       ::= 'see below'
-
-

Note that the current parser is line based and requires that every section entry is one line and -that the begins and end are also lines. This version supports three kinds of values:

-
    -
  • -

    -A quoted string, e.g., "foo bar" (contained double quotes and backward slashes must be escaped with a backward slash) -

    -
  • -
  • -

    -A hex encoding of a byte string. That is, # followed by pairs of hex digits encoding chars followed by #. - E.g., #61FF62FF63#. -

    -
  • -
-
-
-
-

EXAMPLE

-
-

The LTS

-
-
-
+-------+           +-------+
-|+-----+|     a     |       |
-|| 0 0 || ------->  |  0 1  |
-|+-----+|           |       |
-+-------+           +-------+
-
-    |                   |
-    |b                  |b
-    V                   V
-   ___                 ___
-  /   \               /___\
- /     \     a       //   \\
-|  1 0  | ------->  || 1 1 ||
- \     /             \\___//
-  \___/               \___/
-
-

with initial state 00 is represented by the ETF specification:

-
-
-
begin state
-shape:shape  multiplicity:multiplicity
-end state
-begin edge
-action:action
-end edge
-begin init
-0 0
-end init
-begin trans
-0/1 * 1
-end trans
-begin trans
-* 0/1 0
-end trans
-begin map shape:shape
-0 * "square"
-1 * "circle"
-end map
-begin map multiplicity:multiplicity
-0 0 1
-0 1 0
-1 0 0
-1 1 1
-end map
-begin sort action
-"a"
-"b"
-end sort
-begin sort multiplicity
-"single"
-"double"
-end sort
-
-
-
- -
-

- - - diff --git a/assets/man/etf2lts-dist.html b/assets/man/etf2lts-dist.html deleted file mode 100644 index 53e543064..000000000 --- a/assets/man/etf2lts-dist.html +++ /dev/null @@ -1,1709 +0,0 @@ - - - - - -etf2lts-dist(1) - - - - - -
-
-

SYNOPSIS

-
-

etf2lts-dist [OPTIONS]… input.etf [output.fmt]

-
-
-
-

DESCRIPTION

-
-

etf2lts-dist generates a labelled transition system from a -specification provided in input.etf. Specifications are in -etf(5) format. output.fmt -specifies the name of the output archive. The desired format is -deduced from the filename extension. Available formats are described -below.

-

Using the option --workers=N, this tool starts the command mpirun silently -in the background with the suitable options, i.e. -np 4. -Alternatively, one may wish to call mpirun with additional options. This can -be done using the --mpi option, e.g.:

-
-
-
mpirun -np 4 -mca btl tcp,self {manname} --mpi
-
-
-
-
-

OPTIONS

-
-
-
---nice=LEVEL -
-
-

- Set the nice level of all worker processes. This is useful - when running on other people’s workstations. -

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
---filter=<patternlist> -
-
-

- Select the labels to be written to file from the - state vector elements, state labels and edge labels. - The argument is a semicolon separated list of shell - file patterns. Each pattern may be prefixed with "!" to - exclude a set of labels. If none of the patterns matches the default - is to exclude the label. Hence, all labels starting with - an "x" are specified as "x*". The complement all labels, - except those starting with an "x" are specified as "!x*;*". -

-
-
---cost=<edge label> -
-
-

- The given edge labels defines the cost of an edge. Based on this cost, - the lowest cost for reaching every state is computed. Moreover, the order - in which states are explored is such that lower cost states are explored - before higher costs ones. The levels reported when this options is in effect are - cost levels. The counter-example traces are guaranteed to be a lowest cost path. - However, the length of the trace may not be minimal. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Hybrid Runtime Options

-

The Hybrid Runtime Environment provides startup options for several parallel architectures.

-
-

Posix threads options

-

If the application supports it and Posix threads are supported by the OS then -the following option is available:

-
-
---threads[=count] -
-
-

-Start count worker threads. The default count is the number of CPU’s in the system. -

-
-
-
-
-

Posix processes options

-

If the application supports it and Posix shared memory is supported by the OS then -the following option is available:

-
-
---procs[=count] -
-
-

-Fork count worker processes. The default count is the number of CPUs in the system. -

-
-
-

Note that MacOS X only supports Posix shared memory from version 10.7 (Lion) -onwards.

-
-
-

MPI options

-

If the application supports it and MPI support was compiled into the binary then -the following options are available:

-
-
---workers=count -
-
-

-Start the program with count MPI workers. -

-
-
---mpirun=mpirun arguments -
-
-

-Invoke mpirun with the given arguments. -

-
-
---mpi -
-
-

-Ignore --workers and --mpirun options and start the MPI runtime. -

-
-
-
-
-
-

General Options

-
-
--v -
-
-

-Increase the level of verbosity -

-
-
--q -
-
-

-Be quiet; do not print anything to the terminal. -

-
-
---debug=file -
-
-

-Enable debugging output for file. -

-
-
---version -
-
-

-Print version string of this tool. -

-
-
--h, --help -
-
-

-Print help text -

-
-
---usage -
-
-

-Print short usage summary. -

-
-
---stats -
-
-

-Enable statistics gathering/printing. -

-
-
---where -
-
-

-Include file and line number in debug messages. -

-
-
---when -
-
-

-Include the wall time since program start in all messages. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/etf2lts-mc.html b/assets/man/etf2lts-mc.html deleted file mode 100644 index 4ac813f4a..000000000 --- a/assets/man/etf2lts-mc.html +++ /dev/null @@ -1,1976 +0,0 @@ - - - - - -etf2lts-mc(1) - - - - - -
-
-

SYNOPSIS

-
-

etf2lts-mc [OPTION]… input.etf

-
-
-
-

DESCRIPTION

-
-

etf2lts-mc generates a labelled transition system from a compiled -specification provided in input.etf (see etf(5)). -It does this concurrently for any given number of threads. -LTS output is not supported by this tool, use the distributed tools instead.

-
-
-
-

OPTIONS

-
-
-
---threads=NUMBER -
-
-

- Number of threads to use for state space exploration - (default: NUMBER=NUM_CORES). Maximum is 64. -

-
-
---strategy=TYPE -
-
-

- Select an exploration strategy. Two kinds of algorithms - are available: LTL model checking and reachability. - The multi-core LTL algorithms (Nested DFS) are implemented - in a swarmed fashion, however with a shared state storage. - On top of that, MCNDFS and ENDFS offer work sharing between threads - and can deliver speedups for some models. - Note that the LTL algorithms require buchi automata as input. - Such a model can be provided directly by the language frontend, - i.e., DiVinE property models are supported, or by the LTL - layer (see --ltl). - Note finally that strict reachability exploration orders - are not guaranteed by all multi-core search strategies. - TYPE can be one of the following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-sbfs -
-
-

- explore state space in strict breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in relaxed depth-first order. Relaxed meaning that - the inclusion check on the set of visited states is executed immediately - after generating a state. This saves stack space and improves performance - of the parallel reachability analysis. -

-
-
-ndfs -
-
-

- multi-core swarmed Nested Depth-First Search (Courcoubetis et al.). -

-
-
-nndfs -
-
-

- multi-core swarmed New Nested Depth-First Search (Schwoon, Esparza). -

-
-
-ldfs -
-
-

- Multi-Core Nested Depth-First Search (Laarman, Langerak, van de Pol, Weber, Wijs). -

-
-
-endfs -
-
-

- Multi-Core Nested Depth-First Search by Evangelista et al. The algorithm has - been adapted with the cyan color encoding and early cycle detection, as - described in "Variations on Multi-Core Nested Depth-First Search" - (Laarman, van de Pol). - Note that ENDFS requires a repair procedure, NNDFS is chosen by default. - Alternatives can be chosen by providing a list of strategies, for example: - "endfs,mcndfs", yields the NMC-NDFS algorithm as described in the Variations - paper (with load balancing). - Finally, we also allow multiple levels of ENDFS to be combined: - "endfs,endfs,nndfs". -

-
-
-cndfs -
-
-

- New CNDFS algorithm. - Multi-Core Nested Depth-First Search (Evangelista, Laarman, Petrucci, van de Pol). -

-
-
-tarjan -
-
-

- Tarjan’s sequential SCC algorithm. - Depth-First Search and Linear Graph Algorithms (Tarjan). -

-
-
-renault -
-
-

- Renault’s SCC algorithm. - Parallel Explicit Model Checking for Generalized Büchi Automata (Renault et al.). -

-
-
-ufscc -
-
-

- The UFSCC SCC algorithm. - Multi-Core On-The-Fly SCC Decomposition (Bloemen, Laarman, van de Pol). -

-
-
-
-
---perm=TYPE -
-
-

- Select the transition permutation, which is used to guide - different threads to different parts of the state space. - A good permutation can significantly speed up bug hunting. - TYPE can be one of the following options, each has - different properties in terms of performance and effectiveness - summarized as (perf./eff.) : -

-
-
-dynamic -
-
-

- use "fresh successor heuristics" described in - "Variations on Multi-Core Nested Depth-First Search" (Laarman, van de Pol). - (decent/very good for bug hunting). Default for LTL. -

-
-
-sort -
-
-

- sort on the unique id of the successor state (decent/good) -

-
-
-random -
-
-

- use multiple fixed random permutation schemes per worker (decent/good). -

-
-
-rr -
-
-

- randomized using a full random sort order on the states. This is more random - than the previous option, but requires more pre-computation time for the - random array (decent/almost perfect). -

-
-
-shift -
-
-

- shift the order of transitions by a fixed value per worker (fast/decent). -

-
-
-otf -
-
-

- sort according to a dynamic permutation scheme (slow/perfect). -

-
-
-none -
-
-

- use the same exploration order for all workers. Default for reachability. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-table -
-
-

- use a lockless hash table. -

-
-
-tree -
-
-

- use a lockless tree-compressed table. In many cases the tree - can compress states to two integers regardless of their length. To efficiently - accommodate more than 4*10^9 states, the table is split in a root and a leaf - table whose respective size can be adjusted using the --ratio option - (default). -

-
-
-cleary-tree -
-
-

- use a lockless tree-compressed hash table with a parallel Cleary table to - store roots. The compressed size of a state can approach one integer - with this approach. The leafs table is stored as a standard tree table (two - integers per subtree), which typically can be much smaller (up to the - square root of the root table size). To control the respective size of the - leaf table use the --ratio option. -

-
-
-
-
---ratio=NUMBER -
-
-

- Log_2 ratio between root and leaf table in tree compression. The ratio - can theoretically be as low as the square root of the root table size - (see --size). This will however only work if the state vectors are - perfectly combinatorial wrt their variable values. In most cases - the leaf table will grow larger, but find found that a factor four - (--ratio=2) works well for over 75% of the BEEM models. - (default: NUMBER=2). -

-
-
---size=NUMBER -
-
-

- Log_2 hash table size in elements (default: NUMBER=24). - This is also used for the internal node table of the tree. -

-
-
---zobrist=NUMBER -
-
-

- Save time by using zobrist incremental state hashing. - NUMBER defines the (log_2) size of the random number table - (default: 0=OFF). Large tables mean better hash distributions, - but more cache misses due to memory size. - Experiments have shown that small tables (2^6) suffice for - good distributions (equal or better than Jenkin’s hash). - Improvements are only noticable for fast state generators, like - DiVinE 2.2 (dve22lts-mc(1)). -

-
-
---max=NUMBER -
-
-

- Maximum search depth. -

-
-
---proviso=PROVISO -
-
-

- Change the proviso implementation for partial order reduction in presence - of safety properties or liveness properties. Parallel LTL is only supported - with the cndfs proviso in the cndfs search strategy. Sequentially, LTL is - also supported the stack proviso in the ndfs search strategy. - PROVISO can be either: -

-
-
-force-none -
-
-

- Disables the ignoring proviso check (only useful for benchmarking or - bug hunting). -

-
-
-closed-set -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack proviso. It works with both - the dfs and (p/s)bfs exploration strategies. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs or ndfs search strategy (for resp. safety or LTL properties). -

-
-
-cndfs -
-
-

- A special parallel cycle proviso is used to enable POR with multi-core - LTL model checking using the cndfs search strategy. -

-
-
-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/etf2lts-seq.html b/assets/man/etf2lts-seq.html deleted file mode 100644 index 0300ac59e..000000000 --- a/assets/man/etf2lts-seq.html +++ /dev/null @@ -1,2020 +0,0 @@ - - - - - -etf2lts-seq(1) - - - - - -
-
-

SYNOPSIS

-
-

etf2lts-seq [OPTION]… input'.etf ['output.fmt]

-
-
-
-

DESCRIPTION

-
-

etf2lts-seq generates a labelled transition system from a specification -provided in input.etf by enumerative reachability analysis using a -general state expanding algorithm. Specifications are in -etf(5) format. output.fmt -specifies the name of the output archive. The desired format is -deduced from the filename extension. Available formats are described -below.

-
-
-
-

OPTIONS

-
-
-
---strategy=TYPE -
-
-

- Select exploration strategy. TYPE can be one of the - following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in depth-first order. -

-
-
-scc -
-
-

- perform LTL model checking based on Buchi automata with Couvreur’s - algorithm (accepting cycle detection). This requires an accepting - state label to be present. See below. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-tree -
-
-

- use a tree-compressed hash table (default). -

-
-
-table -
-
-

- use a hash table. -

-
-
-vset -
-
-

- use a vector set (decision diagram). -

-
-
-
-
---max=DEPTH -
-
-

- Maximum search depth, search until DEPTH. -

-
-
---proviso=closedset|stack|color -
-
-

- Change the proviso implementation for partial order reduction (ltl) -

-

Change the proviso used to detect that an accepting cycle is closed. -Three options are available, the default is closedset.

-
-
-closedset -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack or color proviso. It works with both - the dfs- and bfs exploration strategy. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs/scc search strategy (since bfs has no stack). -

-
-
-color -
-
-

- The color proviso requires a lot of extra work and memory - but can significantly improve the reduction. It too works - only with the dfs/scc search strategies. -

-
-
-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/etf2lts-sym.html b/assets/man/etf2lts-sym.html deleted file mode 100644 index 15b4c17a2..000000000 --- a/assets/man/etf2lts-sym.html +++ /dev/null @@ -1,1901 +0,0 @@ - - - - - -etf2lts-sym(1) - - - - - -
-
-

SYNOPSIS

-
-

etf2lts-sym [OPTION]… input.etf [output.etf]

-
-
-
-

DESCRIPTION

-
-

etf2lts-sym performs a reachability analysis on a specification provided -in input.etf. Specifications are in etf(5) format. -output.etf specifies the name of the output archive, also written in -etf(5) format.

-
-
-
-

OPTIONS

-
-
-
---order=ORDER -
-
-

- Select the exploration strategy: bfs-prev, bfs, chain-prev, - or chain. With bfs-prev and bfs, breadth-first search is - used. Here, bfs-prev only considers the states found at the - previous level, while bfs considers the whole visited set. With - chain-prev and chain, a chaining strategy is used. Here, - chain-prev at each level starts from the states found at the - previous level, while chain uses the whole visited set. Defaults - to bfs-prev. -

-

When using breadth-first search, the tool performs the next state computation -for all edge groups on the current level or current set of visited states. -Chaining means to apply next state for the first group to the visited -states, then apply next-state for the second group to the result, -etc. Thus, a chaining analysis can be completed in much less -iterations than a BFS analysis.

-
-
---saturation=SATURATION -
-
-

- Select a saturation strategy: none, sat-like, sat-loop, sat-fix, - sat. The sat-like strategy goes up and down the levels of the BDD - used to represent the state space. The sat-loop strategy loops over - the levels. The sat-fix strategy repeatedly performs a fixpoint - computation using saturation. The sat strategy does saturation as - described in the literature with on-the-fly expansion of the transition - relations. Defaults to none, i.e. no saturation. -

-

All strategies except sat-fix and sat work in combination with the order -to saturate levels.

-
-
---sat-granularity=GRANULARITY -
-
-

- Select the granularity of sat-like and sat-loop strategies. The - granularity indicates how many BDD levels are considered at the same - time. Defaults to 10. -

-
-
---save-sat-levels -
-
-

- Save the previous states seen at saturation levels. This option has - effect for any of the saturation strategies in combination with either - bfs-prev or chain-prev. -

-
-
---guidance=STRATEGY -
-
-

- Select a search strategy for searching for actions: unguided, - directed. The unguided strategy considers all transition - groups. The directed strategy focuses the search on the transition - groups in which the action occurs. Defaults to unguided. -

-
-
---dot=DIR -
-
-

- If this option is supplied DIR is a directory to which dot files of vector sets are written to. - Note that this option should only be used for smaller vector sets because of disk space. -

-

Three type of dot files are (over)written:

-
    -
  1. -

    -current-l<L>.dot: the nodes in the vector set at level L (and only level L), -

    -
  2. -
  3. -

    -visited-l<L>.dot: the nodes in the vector set up to and included level L, -

    -
  4. -
  5. -

    -group_next-l<L>-k<K>.dot: the nodes in the transition relation of group K at level L. -

    -
  6. -
-
-
---mu=MUFILE|MUFORMULA -
-
-

- After computing all reachable states, evaluate the mu-formula in MUFILE -

-

MUFILE is a file containing a Mu Calculus formula (see -ltsmin-mu(5)). Alternatively, the formula can be provide directly as -MUFORMULA. This formula is a propositional formula with least and greatest -fixpoint operator. It will be evaluated after generation of the complete state -space.

-
-
---ctl-star=CTLFILE|CTLFORMULA -
-
-

- CTLFILE is a file containing an Linear Temporal Logic Star (CTL*) formula - (see ltsmin-ctl(5)). Which content can also be provided directly as - CTLFORMULA. - The formula is translated to a mu-formula (see ltsmin-mu(5)), - which is evaluated after computing all reachable states. -

-
-
---no-matrix -
-
-

- Do not print the dependency matrix if -v (verbose) is used. -

-
-
---no-soundness-check -
-
-

- When using --pins-guards=assume-true disable the soundness check of the model specification. - The soundness check may be expensive and can be disabled when the model specification is known to be sound. - A guard may not evaluate to true or false but to maybe. A guard which evaluates to maybe depends on - the evaluation of another guard. For languages such as Promela and DVE it checks whether if - a guard evaluates to maybe there is another guard on the left which evaluates to false. For languages such as - mCRL2 it also checks whether a guard on the right evaluates to false. If for all states this holds then the - model specification is sound for guard-splitting. -

-
-
---precise -
-
-

- Compute the final number of states precisely. -

-
-
---next-union -
-
-

- If supported by the vset implementation; perform the computation of successor states simultaneously with unifying - the current states. Simultaneously, means with a single BDD/MDD operation. -

-
-
---inv-par -
-
-

- Checks all invariants in parallel. -

-
-
---inv-bin-par -
-
-

- Checks both sides of a binary operand in parallel in an invariant, requires --inv-par. - Note that this option may actually slow down invariant checking, because parallelization - of a binary operand disables short-circuit evaluation. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Symbolic Parity Game Options

-

A symbolic parity game can be generated either by using the --mucalc -option or by using the PBES language module.

-
-
---pg-solve -
-
-

- Solve the generated parity game. -

-
-
---pg-reduce -
-
-

- Reduce the generated parity game on-the-fly (experimental). -

-
-
---pg-write=FILE -
-
-

- Writes a symbolic parity game to FILE. -

-
-
-
-
-

Symbolic Parity Game Solver Options

-
-
---attr=default|chain|par|par2 -
-
-

- Choose attractor function. -

-

Available attractor functions:

-
-
-default -
-
-

- Straightforward attractor computation. -

-
-
-chain -
-
-

- Chaining attractor, applies transition groups in a different order - than default in computing an attractor level. -

-
-
-par -
-
-

- Spawns parallel tasks to compute forward and backward steps for each - attractor level. -

-
-
-par2 -
-
-

- Spawns more parallel tasks than par, by applying forward steps in - parallel to the result of the backward steps of the different - transition groups. -

-
-
-
-
---saturating-attractor -
-
-

- Use saturation in the chaining attractor. -

-
-
---pg-write-dot -
-
-

- Write dot files to disk during parity game solving for debugging. -

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/etf2torx.html b/assets/man/etf2torx.html deleted file mode 100644 index e4146fa91..000000000 --- a/assets/man/etf2torx.html +++ /dev/null @@ -1,1312 +0,0 @@ - - - - - -etf2torx(1) - - - - - -
-
-

SYNOPSIS

-
-

etf2torx [OPTION]… input.etf

-
-
-
-

DESCRIPTION

-
-

etf2torx provides access to a labelled transition system from a -specification provided in input.etf via the TorX-Explorer textual -interface on stdin and stdout. Specifications are in -etf(5) format.

-
-
-
-

OPTIONS

-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
-
-

SEE ALSO

- -
-
-

- - - diff --git a/assets/man/gcf.html b/assets/man/gcf.html deleted file mode 100644 index ba4a04fd9..000000000 --- a/assets/man/gcf.html +++ /dev/null @@ -1,1059 +0,0 @@ - - - - - -gcf(1) - - - - - -
-
-

SYNOPSIS

-
-

gcf --create <gcf> [input1 [input2 […]]]

-

gcf --extract <gcf> [--output=<dir>] …

-

gcf --list <gcf>

-

gcf --copy <gcf_source> <gcf_target>

-

gcf --compress (<file>|<dir>)*

-

gcf --decompress (<file>|<dir>)*

-

gcf --to-zip <gcf_source> <zip_target>

-

gcf --from-zip <zip_source> <gcf_target>

-
-
-
-

DESCRIPTION

-
-

This tool can build a GCF archive from a given list of files and files within -given directories. It can extract the files from a GCF archive and write them -to a directory or to a set of files given by a pattern.

-

A GCF archive provides interleaved storage of multiple large files within one -very large file. The GCF file structure was designed with distributed file -systems and distributed applications in mind. The key points of the structure -are that a GCF file contains one or more clusters and each of those clusters -contains 2 or more blocks. One block in each cluster is reserved for meta data.

-
-
-
-

OPERATIONS

-
-
-
---create -
-
-

-Create a GCF archive in a file. This is the default. -

-
-
--x, --extract -
-
-

-Extract files from GCF archive. By default files are extracted into the working -directory. This behaviour can be changed with the --output option. When no -additional arguments are given, all fields are extracted. If additional -arguments are given only files matching one of the arguments are extracted. -

-
-
--l, --list -
-
-

-List the files contained within the archive. -

-
-
---copy -
-
-

-Create a new archive by copying the contents of an existing archive. -This is useful to change the compression policy for an archive. -

-
-
--c, --compress -
-
-

-For every argument name that is a file, the file is compressed according -to the policy and written as name.gzf. -For every argument name that is a directory, the contents are compressed -into the GCF archive name.gcf. -

-
-
--d, --decompress -
-
-

-Reverse operation of --compress. -

-
-
---to-zip -
-
-

-Copy the contents of the GCF archive to a ZIP archive. -

-
-
---from-zip -
-
-

-Copy the contents of the ZIP archive to a GCF archive. -

-
-
-
-
-
-

OPTIONS

-
-
-
--f, --force -
-
-

-By default extraction to a directory fails is a file or directory already -exists. If this flag is used any existing file or directory is removed. -

-
-
---block-size=BYTES -
-
-

-Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

-Number of blocks in a cluster. Defaults to 32. -

-
-
--z, --compression=<policy> -
-
-

-Set the compression policy used in the archive. The default is to apply gzip -to every file. On specifying compression policies, see below. -

-
-
--o, --output=STRING -
-
-

-Specify the directory into which the --extract should write the extracted -files. -

-
-
---zip-code=<policy> -
-
-

-Set the compression policy used for ZIP archives. The default is no encoding. -On specifying compression policies, see below. -

-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

COMPRESSION POLICIES

-
-

The grammer for compression policies is:

-
-
-
<policy>      ::= ( <pattern> ":" <compression> ";" ) *  <compression>
-<pattern>     ::= 'shell wildcard pattern'
-<compression> ::= "" | "none" | (<filter> "|") * <filter>
-<filter>      ::= "diff32" | ("gzip" [("1"|...|"9")])
-
-

The list of <pattern>":"<compression> pairs are rules that specify -specific compression methods for files matching certain patterns. The final -<compression> is the default.

-

A compression method is built from zero or more filters. The empty sequence can be denoted -with an emtpy string or with the word none. Known compression filters are

-
-
-diff32 -
-
-

-Difference ecoding on 32 bit integers. -

-
-
-gzip[level] -
-
-

-Standard gzip compression with an optional level. -

-
-
-

When compressing labeled transition systems that were obtained using BFS exploration order, it is a good idea to -apply difference encoding to state numbers before compression them. This leads to a default compression strategy of

-
-
-
src*:diff32|gzip;dest*:diff32|gzip;gzip
-
-

For the legacy directory format and

-
-
-
*ofs:diff32|gzip;gzip
-
-

For the state label extended directory format.

-
-
-
-

EXAMPLE

-
-

Given a GCF archive generated.gcf that contains an LTS, we can extract -a dir as follows:

-
-
-
gcf -x generated.gcf generated.dir
-
-

The inverse (transforming generated.dir to generated.gcf) is also possible, -but it is better to use ltsmin-convert(1) for this task because the -best compression is achieved by applying different compressions to different -files, which cannot be specified with -z.

-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
->0 -
-
-

- Some error occurred. -

-
-
-
-
-
-

- - - diff --git a/assets/man/lpo2lts-dist.html b/assets/man/lpo2lts-dist.html deleted file mode 100644 index 361721d15..000000000 --- a/assets/man/lpo2lts-dist.html +++ /dev/null @@ -1,1742 +0,0 @@ - - - - - -lpo2lts-dist(1) - - - - - -
-
-

SYNOPSIS

-
-

lpo2lts-dist [OPTION]… input.tbf [output.fmt]

-
-
-
-

DESCRIPTION

-
-

lpo2lts-dist generates a labelled transition system from a -specification provided in input.tbf. Specifications are in tbf -format and are commonly generated by mcrl(1) or -mcrl22mcrl(1). output.fmt specifies the name of the output -archive. The desired format is deduced from the filename extension. -Available formats are described below.

-

Using the option --workers=N, this tool starts the command mpirun silently -in the background with the suitable options, i.e. -np 4. -Alternatively, one may wish to call mpirun with additional options. This can -be done using the --mpi option, e.g.:

-
-
-
mpirun -np 4 -mca btl tcp,self {manname} --mpi
-
-
-
-
-

OPTIONS

-
-
-
---nice=LEVEL -
-
-

- Set the nice level of all worker processes. This is useful - when running on other people’s workstations. -

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
---filter=<patternlist> -
-
-

- Select the labels to be written to file from the - state vector elements, state labels and edge labels. - The argument is a semicolon separated list of shell - file patterns. Each pattern may be prefixed with "!" to - exclude a set of labels. If none of the patterns matches the default - is to exclude the label. Hence, all labels starting with - an "x" are specified as "x*". The complement all labels, - except those starting with an "x" are specified as "!x*;*". -

-
-
---cost=<edge label> -
-
-

- The given edge labels defines the cost of an edge. Based on this cost, - the lowest cost for reaching every state is computed. Moreover, the order - in which states are explored is such that lower cost states are explored - before higher costs ones. The levels reported when this options is in effect are - cost levels. The counter-example traces are guaranteed to be a lowest cost path. - However, the length of the trace may not be minimal. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

mCRL Options

-
-
---state-names -
-
-

- Make the state parameters visible. -

-
-
---mcrl=OPTIONS -
-
-

- Pass options to the mcrl(1) library. - Defaults to "-alt rw". -

-

Allowed values depend on the mcrl(1) library.

-
- - - -
-
Note
-
Some option combinations can lead to incorrect results, e.g., -tau confluence when caching is enabled. Therefore, the use of tau confluence -has been disabled, but there may be other combinations.
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Hybrid Runtime Options

-

The Hybrid Runtime Environment provides startup options for several parallel architectures.

-
-

Posix threads options

-

If the application supports it and Posix threads are supported by the OS then -the following option is available:

-
-
---threads[=count] -
-
-

-Start count worker threads. The default count is the number of CPU’s in the system. -

-
-
-
-
-

Posix processes options

-

If the application supports it and Posix shared memory is supported by the OS then -the following option is available:

-
-
---procs[=count] -
-
-

-Fork count worker processes. The default count is the number of CPUs in the system. -

-
-
-

Note that MacOS X only supports Posix shared memory from version 10.7 (Lion) -onwards.

-
-
-

MPI options

-

If the application supports it and MPI support was compiled into the binary then -the following options are available:

-
-
---workers=count -
-
-

-Start the program with count MPI workers. -

-
-
---mpirun=mpirun arguments -
-
-

-Invoke mpirun with the given arguments. -

-
-
---mpi -
-
-

-Ignore --workers and --mpirun options and start the MPI runtime. -

-
-
-
-
-
-

General Options

-
-
--v -
-
-

-Increase the level of verbosity -

-
-
--q -
-
-

-Be quiet; do not print anything to the terminal. -

-
-
---debug=file -
-
-

-Enable debugging output for file. -

-
-
---version -
-
-

-Print version string of this tool. -

-
-
--h, --help -
-
-

-Print help text -

-
-
---usage -
-
-

-Print short usage summary. -

-
-
---stats -
-
-

-Enable statistics gathering/printing. -

-
-
---where -
-
-

-Include file and line number in debug messages. -

-
-
---when -
-
-

-Include the wall time since program start in all messages. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/lpo2lts-mc.html b/assets/man/lpo2lts-mc.html deleted file mode 100644 index 4f82794a1..000000000 --- a/assets/man/lpo2lts-mc.html +++ /dev/null @@ -1,1979 +0,0 @@ - - - - - -lpo2lts-mc(1) - - - - - -
-
-

SYNOPSIS

-
-

lpo2lts-mc [OPTION]… 'input'.tbf

-
-
-
-

DESCRIPTION

-
-

lpo2lts-mc performs multi-core reachability and LTL model checking on the -labelled transition system from a compiled -specification provided in input.tbf. Specifications are in tbf format -and are commonly generated by mcrl(1) or mcrl22mcrl(1). -Because the tbf depends on libraries that are not thread-safe, this tool -uses processes instead of threads (--procs). -LTS output is not supported by this tool, use the distributed tools instead.

-
-
-
-

OPTIONS

-
-
-
---threads=NUMBER -
-
-

- Number of threads to use for state space exploration - (default: NUMBER=NUM_CORES). Maximum is 64. -

-
-
---strategy=TYPE -
-
-

- Select an exploration strategy. Two kinds of algorithms - are available: LTL model checking and reachability. - The multi-core LTL algorithms (Nested DFS) are implemented - in a swarmed fashion, however with a shared state storage. - On top of that, MCNDFS and ENDFS offer work sharing between threads - and can deliver speedups for some models. - Note that the LTL algorithms require buchi automata as input. - Such a model can be provided directly by the language frontend, - i.e., DiVinE property models are supported, or by the LTL - layer (see --ltl). - Note finally that strict reachability exploration orders - are not guaranteed by all multi-core search strategies. - TYPE can be one of the following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-sbfs -
-
-

- explore state space in strict breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in relaxed depth-first order. Relaxed meaning that - the inclusion check on the set of visited states is executed immediately - after generating a state. This saves stack space and improves performance - of the parallel reachability analysis. -

-
-
-ndfs -
-
-

- multi-core swarmed Nested Depth-First Search (Courcoubetis et al.). -

-
-
-nndfs -
-
-

- multi-core swarmed New Nested Depth-First Search (Schwoon, Esparza). -

-
-
-ldfs -
-
-

- Multi-Core Nested Depth-First Search (Laarman, Langerak, van de Pol, Weber, Wijs). -

-
-
-endfs -
-
-

- Multi-Core Nested Depth-First Search by Evangelista et al. The algorithm has - been adapted with the cyan color encoding and early cycle detection, as - described in "Variations on Multi-Core Nested Depth-First Search" - (Laarman, van de Pol). - Note that ENDFS requires a repair procedure, NNDFS is chosen by default. - Alternatives can be chosen by providing a list of strategies, for example: - "endfs,mcndfs", yields the NMC-NDFS algorithm as described in the Variations - paper (with load balancing). - Finally, we also allow multiple levels of ENDFS to be combined: - "endfs,endfs,nndfs". -

-
-
-cndfs -
-
-

- New CNDFS algorithm. - Multi-Core Nested Depth-First Search (Evangelista, Laarman, Petrucci, van de Pol). -

-
-
-tarjan -
-
-

- Tarjan’s sequential SCC algorithm. - Depth-First Search and Linear Graph Algorithms (Tarjan). -

-
-
-renault -
-
-

- Renault’s SCC algorithm. - Parallel Explicit Model Checking for Generalized Büchi Automata (Renault et al.). -

-
-
-ufscc -
-
-

- The UFSCC SCC algorithm. - Multi-Core On-The-Fly SCC Decomposition (Bloemen, Laarman, van de Pol). -

-
-
-
-
---perm=TYPE -
-
-

- Select the transition permutation, which is used to guide - different threads to different parts of the state space. - A good permutation can significantly speed up bug hunting. - TYPE can be one of the following options, each has - different properties in terms of performance and effectiveness - summarized as (perf./eff.) : -

-
-
-dynamic -
-
-

- use "fresh successor heuristics" described in - "Variations on Multi-Core Nested Depth-First Search" (Laarman, van de Pol). - (decent/very good for bug hunting). Default for LTL. -

-
-
-sort -
-
-

- sort on the unique id of the successor state (decent/good) -

-
-
-random -
-
-

- use multiple fixed random permutation schemes per worker (decent/good). -

-
-
-rr -
-
-

- randomized using a full random sort order on the states. This is more random - than the previous option, but requires more pre-computation time for the - random array (decent/almost perfect). -

-
-
-shift -
-
-

- shift the order of transitions by a fixed value per worker (fast/decent). -

-
-
-otf -
-
-

- sort according to a dynamic permutation scheme (slow/perfect). -

-
-
-none -
-
-

- use the same exploration order for all workers. Default for reachability. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-table -
-
-

- use a lockless hash table. -

-
-
-tree -
-
-

- use a lockless tree-compressed table. In many cases the tree - can compress states to two integers regardless of their length. To efficiently - accommodate more than 4*10^9 states, the table is split in a root and a leaf - table whose respective size can be adjusted using the --ratio option - (default). -

-
-
-cleary-tree -
-
-

- use a lockless tree-compressed hash table with a parallel Cleary table to - store roots. The compressed size of a state can approach one integer - with this approach. The leafs table is stored as a standard tree table (two - integers per subtree), which typically can be much smaller (up to the - square root of the root table size). To control the respective size of the - leaf table use the --ratio option. -

-
-
-
-
---ratio=NUMBER -
-
-

- Log_2 ratio between root and leaf table in tree compression. The ratio - can theoretically be as low as the square root of the root table size - (see --size). This will however only work if the state vectors are - perfectly combinatorial wrt their variable values. In most cases - the leaf table will grow larger, but find found that a factor four - (--ratio=2) works well for over 75% of the BEEM models. - (default: NUMBER=2). -

-
-
---size=NUMBER -
-
-

- Log_2 hash table size in elements (default: NUMBER=24). - This is also used for the internal node table of the tree. -

-
-
---zobrist=NUMBER -
-
-

- Save time by using zobrist incremental state hashing. - NUMBER defines the (log_2) size of the random number table - (default: 0=OFF). Large tables mean better hash distributions, - but more cache misses due to memory size. - Experiments have shown that small tables (2^6) suffice for - good distributions (equal or better than Jenkin’s hash). - Improvements are only noticable for fast state generators, like - DiVinE 2.2 (dve22lts-mc(1)). -

-
-
---max=NUMBER -
-
-

- Maximum search depth. -

-
-
---proviso=PROVISO -
-
-

- Change the proviso implementation for partial order reduction in presence - of safety properties or liveness properties. Parallel LTL is only supported - with the cndfs proviso in the cndfs search strategy. Sequentially, LTL is - also supported the stack proviso in the ndfs search strategy. - PROVISO can be either: -

-
-
-force-none -
-
-

- Disables the ignoring proviso check (only useful for benchmarking or - bug hunting). -

-
-
-closed-set -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack proviso. It works with both - the dfs and (p/s)bfs exploration strategies. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs or ndfs search strategy (for resp. safety or LTL properties). -

-
-
-cndfs -
-
-

- A special parallel cycle proviso is used to enable POR with multi-core - LTL model checking using the cndfs search strategy. -

-
-
-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/lpo2lts-seq.html b/assets/man/lpo2lts-seq.html deleted file mode 100644 index fa09150e2..000000000 --- a/assets/man/lpo2lts-seq.html +++ /dev/null @@ -1,2053 +0,0 @@ - - - - - -lpo2lts-seq(1) - - - - - -
-
-

SYNOPSIS

-
-

lpo2lts-seq [OPTION]… input'.tbf ['output.fmt]

-
-
-
-

DESCRIPTION

-
-

lpo2lts-seq generates a labelled transition system from a specification -provided in input.tbf by enumerative reachability analysis using a -general state expanding algorithm. Specifications are in tbf format -and are commonly generated by mcrl(1) or -mcrl22mcrl(1). output.fmt specifies the name of -the output archive. The desired format is deduced from the filename -extension. Available file formats are described blow.

-
-
-
-

OPTIONS

-
-
-
---strategy=TYPE -
-
-

- Select exploration strategy. TYPE can be one of the - following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in depth-first order. -

-
-
-scc -
-
-

- perform LTL model checking based on Buchi automata with Couvreur’s - algorithm (accepting cycle detection). This requires an accepting - state label to be present. See below. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-tree -
-
-

- use a tree-compressed hash table (default). -

-
-
-table -
-
-

- use a hash table. -

-
-
-vset -
-
-

- use a vector set (decision diagram). -

-
-
-
-
---max=DEPTH -
-
-

- Maximum search depth, search until DEPTH. -

-
-
---proviso=closedset|stack|color -
-
-

- Change the proviso implementation for partial order reduction (ltl) -

-

Change the proviso used to detect that an accepting cycle is closed. -Three options are available, the default is closedset.

-
-
-closedset -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack or color proviso. It works with both - the dfs- and bfs exploration strategy. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs/scc search strategy (since bfs has no stack). -

-
-
-color -
-
-

- The color proviso requires a lot of extra work and memory - but can significantly improve the reduction. It too works - only with the dfs/scc search strategies. -

-
-
-
-
-
-

mCRL Options

-
-
---state-names -
-
-

- Make the state parameters visible. -

-
-
---mcrl=OPTIONS -
-
-

- Pass options to the mcrl(1) library. - Defaults to "-alt rw". -

-

Allowed values depend on the mcrl(1) library.

-
- - - -
-
Note
-
Some option combinations can lead to incorrect results, e.g., -tau confluence when caching is enabled. Therefore, the use of tau confluence -has been disabled, but there may be other combinations.
-
-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/lpo2lts-sym.html b/assets/man/lpo2lts-sym.html deleted file mode 100644 index fada2b029..000000000 --- a/assets/man/lpo2lts-sym.html +++ /dev/null @@ -1,1935 +0,0 @@ - - - - - -lpo2lts-sym(1) - - - - - -
-
-

SYNOPSIS

-
-

lpo2lts-sym [OPTION]… file.tbf [outfile.etf]

-
-
-
-

DESCRIPTION

-
-

lpo2lts-sym performs a reachability analysis on a specification provided -in file.tbf. Specifications are in tbf format and are commonly -generated by mcrl(1) or mcrl22mcrl(1). outfile.etf -specifies the name of the output archive, written in etf(5) -format.

-
-
-
-

OPTIONS

-
-
-
---order=ORDER -
-
-

- Select the exploration strategy: bfs-prev, bfs, chain-prev, - or chain. With bfs-prev and bfs, breadth-first search is - used. Here, bfs-prev only considers the states found at the - previous level, while bfs considers the whole visited set. With - chain-prev and chain, a chaining strategy is used. Here, - chain-prev at each level starts from the states found at the - previous level, while chain uses the whole visited set. Defaults - to bfs-prev. -

-

When using breadth-first search, the tool performs the next state computation -for all edge groups on the current level or current set of visited states. -Chaining means to apply next state for the first group to the visited -states, then apply next-state for the second group to the result, -etc. Thus, a chaining analysis can be completed in much less -iterations than a BFS analysis.

-
-
---saturation=SATURATION -
-
-

- Select a saturation strategy: none, sat-like, sat-loop, sat-fix, - sat. The sat-like strategy goes up and down the levels of the BDD - used to represent the state space. The sat-loop strategy loops over - the levels. The sat-fix strategy repeatedly performs a fixpoint - computation using saturation. The sat strategy does saturation as - described in the literature with on-the-fly expansion of the transition - relations. Defaults to none, i.e. no saturation. -

-

All strategies except sat-fix and sat work in combination with the order -to saturate levels.

-
-
---sat-granularity=GRANULARITY -
-
-

- Select the granularity of sat-like and sat-loop strategies. The - granularity indicates how many BDD levels are considered at the same - time. Defaults to 10. -

-
-
---save-sat-levels -
-
-

- Save the previous states seen at saturation levels. This option has - effect for any of the saturation strategies in combination with either - bfs-prev or chain-prev. -

-
-
---guidance=STRATEGY -
-
-

- Select a search strategy for searching for actions: unguided, - directed. The unguided strategy considers all transition - groups. The directed strategy focuses the search on the transition - groups in which the action occurs. Defaults to unguided. -

-
-
---dot=DIR -
-
-

- If this option is supplied DIR is a directory to which dot files of vector sets are written to. - Note that this option should only be used for smaller vector sets because of disk space. -

-

Three type of dot files are (over)written:

-
    -
  1. -

    -current-l<L>.dot: the nodes in the vector set at level L (and only level L), -

    -
  2. -
  3. -

    -visited-l<L>.dot: the nodes in the vector set up to and included level L, -

    -
  4. -
  5. -

    -group_next-l<L>-k<K>.dot: the nodes in the transition relation of group K at level L. -

    -
  6. -
-
-
---mu=MUFILE|MUFORMULA -
-
-

- After computing all reachable states, evaluate the mu-formula in MUFILE -

-

MUFILE is a file containing a Mu Calculus formula (see -ltsmin-mu(5)). Alternatively, the formula can be provide directly as -MUFORMULA. This formula is a propositional formula with least and greatest -fixpoint operator. It will be evaluated after generation of the complete state -space.

-
-
---ctl-star=CTLFILE|CTLFORMULA -
-
-

- CTLFILE is a file containing an Linear Temporal Logic Star (CTL*) formula - (see ltsmin-ctl(5)). Which content can also be provided directly as - CTLFORMULA. - The formula is translated to a mu-formula (see ltsmin-mu(5)), - which is evaluated after computing all reachable states. -

-
-
---no-matrix -
-
-

- Do not print the dependency matrix if -v (verbose) is used. -

-
-
---no-soundness-check -
-
-

- When using --pins-guards=assume-true disable the soundness check of the model specification. - The soundness check may be expensive and can be disabled when the model specification is known to be sound. - A guard may not evaluate to true or false but to maybe. A guard which evaluates to maybe depends on - the evaluation of another guard. For languages such as Promela and DVE it checks whether if - a guard evaluates to maybe there is another guard on the left which evaluates to false. For languages such as - mCRL2 it also checks whether a guard on the right evaluates to false. If for all states this holds then the - model specification is sound for guard-splitting. -

-
-
---precise -
-
-

- Compute the final number of states precisely. -

-
-
---next-union -
-
-

- If supported by the vset implementation; perform the computation of successor states simultaneously with unifying - the current states. Simultaneously, means with a single BDD/MDD operation. -

-
-
---inv-par -
-
-

- Checks all invariants in parallel. -

-
-
---inv-bin-par -
-
-

- Checks both sides of a binary operand in parallel in an invariant, requires --inv-par. - Note that this option may actually slow down invariant checking, because parallelization - of a binary operand disables short-circuit evaluation. -

-
-
-
-

mCRL Options

-
-
---state-names -
-
-

- Make the state parameters visible. -

-
-
---mcrl=OPTIONS -
-
-

- Pass options to the mcrl(1) library. - Defaults to "-alt rw". -

-

Allowed values depend on the mcrl(1) library.

-
- - - -
-
Note
-
Some option combinations can lead to incorrect results, e.g., -tau confluence when caching is enabled. Therefore, the use of tau confluence -has been disabled, but there may be other combinations.
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Symbolic Parity Game Options

-

A symbolic parity game can be generated either by using the --mucalc -option or by using the PBES language module.

-
-
---pg-solve -
-
-

- Solve the generated parity game. -

-
-
---pg-reduce -
-
-

- Reduce the generated parity game on-the-fly (experimental). -

-
-
---pg-write=FILE -
-
-

- Writes a symbolic parity game to FILE. -

-
-
-
-
-

Symbolic Parity Game Solver Options

-
-
---attr=default|chain|par|par2 -
-
-

- Choose attractor function. -

-

Available attractor functions:

-
-
-default -
-
-

- Straightforward attractor computation. -

-
-
-chain -
-
-

- Chaining attractor, applies transition groups in a different order - than default in computing an attractor level. -

-
-
-par -
-
-

- Spawns parallel tasks to compute forward and backward steps for each - attractor level. -

-
-
-par2 -
-
-

- Spawns more parallel tasks than par, by applying forward steps in - parallel to the result of the backward steps of the different - transition groups. -

-
-
-
-
---saturating-attractor -
-
-

- Use saturation in the chaining attractor. -

-
-
---pg-write-dot -
-
-

- Write dot files to disk during parity game solving for debugging. -

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/lpo2torx.html b/assets/man/lpo2torx.html deleted file mode 100644 index 3abb3e14f..000000000 --- a/assets/man/lpo2torx.html +++ /dev/null @@ -1,1346 +0,0 @@ - - - - - -lpo2torx(1) - - - - - -
-
-

SYNOPSIS

-
-

lpo2torx [OPTION]… input.tbf

-
-
-
-

DESCRIPTION

-
-

lpo2torx provides access to a labelled transition system from a -specification provided in input.tbf via the TorX-Explorer textual -interface on stdin and stdout. Specifications are in tbf format -and are commonly generated by mcrl(1) or -mcrl22mcrl(1).

-
-
-
-

OPTIONS

-
-
-

mCRL Options

-
-
---state-names -
-
-

- Make the state parameters visible. -

-
-
---mcrl=OPTIONS -
-
-

- Pass options to the mcrl(1) library. - Defaults to "-alt rw". -

-

Allowed values depend on the mcrl(1) library.

-
- - - -
-
Note
-
Some option combinations can lead to incorrect results, e.g., -tau confluence when caching is enabled. Therefore, the use of tau confluence -has been disabled, but there may be other combinations.
-
-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
-
-

SEE ALSO

- -
-
-

- - - diff --git a/assets/man/lps2lts-dist.html b/assets/man/lps2lts-dist.html deleted file mode 100644 index 079c50333..000000000 --- a/assets/man/lps2lts-dist.html +++ /dev/null @@ -1,1747 +0,0 @@ - - - - - -lps2lts-dist(1) - - - - - -
-
-

SYNOPSIS

-
-

lps2lts-dist [OPTIONS]… input.lps [output.fmt]

-
-
-
-

DESCRIPTION

-
-

lps2lts-dist performs a reachability analysis on a specification provided -in input.lps. Specifications are in lps format and are commonly -generated by mcrl22lps(1). output.fmt specifies the name of -the output archive. The desired format is deduced from the filename -extension. Available file formats are described blow.

-

Using the option --workers=N, this tool starts the command mpirun silently -in the background with the suitable options, i.e. -np 4. -Alternatively, one may wish to call mpirun with additional options. This can -be done using the --mpi option, e.g.:

-
-
-
mpirun -np 4 -mca btl tcp,self {manname} --mpi
-
-
-
-
-

OPTIONS

-
-
-
---nice=LEVEL -
-
-

- Set the nice level of all worker processes. This is useful - when running on other people’s workstations. -

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
---filter=<patternlist> -
-
-

- Select the labels to be written to file from the - state vector elements, state labels and edge labels. - The argument is a semicolon separated list of shell - file patterns. Each pattern may be prefixed with "!" to - exclude a set of labels. If none of the patterns matches the default - is to exclude the label. Hence, all labels starting with - an "x" are specified as "x*". The complement all labels, - except those starting with an "x" are specified as "!x*;*". -

-
-
---cost=<edge label> -
-
-

- The given edge labels defines the cost of an edge. Based on this cost, - the lowest cost for reaching every state is computed. Moreover, the order - in which states are explored is such that lower cost states are explored - before higher costs ones. The levels reported when this options is in effect are - cost levels. The counter-example traces are guaranteed to be a lowest cost path. - However, the length of the trace may not be minimal. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

mCRL2 Options

-
-
---mcrl2=OPTIONS -
-
-

- Pass options to the mCRL2 library. - Defaults to "--rewriter=jittyc". -

-

The "--rewriter=<rewriter>" option is the only recognized option. -Possible rewriters are jitty and jittyc.

-
-
---mcrl2-finite-types -
-
-

- Use mCRL2 finite type information. -

-

Enabling this option may cause premature termination in case non-normal-form -instances of finite types occur in the state space. This will be the case, -e.g., when the specification has been pre-processed using -lpsparunfold(1).

-
-
---mcrl2-readable-edge-labels -
-
-

- Use human readable edge labels. -

-

Enabling this option may cause problems during bisimulation reduction, e.g., -the edge labels l(0) with 0 of type Nat and l(0) with 0 of type Pos will be -mapped to the same string.

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Hybrid Runtime Options

-

The Hybrid Runtime Environment provides startup options for several parallel architectures.

-
-

Posix threads options

-

If the application supports it and Posix threads are supported by the OS then -the following option is available:

-
-
---threads[=count] -
-
-

-Start count worker threads. The default count is the number of CPU’s in the system. -

-
-
-
-
-

Posix processes options

-

If the application supports it and Posix shared memory is supported by the OS then -the following option is available:

-
-
---procs[=count] -
-
-

-Fork count worker processes. The default count is the number of CPUs in the system. -

-
-
-

Note that MacOS X only supports Posix shared memory from version 10.7 (Lion) -onwards.

-
-
-

MPI options

-

If the application supports it and MPI support was compiled into the binary then -the following options are available:

-
-
---workers=count -
-
-

-Start the program with count MPI workers. -

-
-
---mpirun=mpirun arguments -
-
-

-Invoke mpirun with the given arguments. -

-
-
---mpi -
-
-

-Ignore --workers and --mpirun options and start the MPI runtime. -

-
-
-
-
-
-

General Options

-
-
--v -
-
-

-Increase the level of verbosity -

-
-
--q -
-
-

-Be quiet; do not print anything to the terminal. -

-
-
---debug=file -
-
-

-Enable debugging output for file. -

-
-
---version -
-
-

-Print version string of this tool. -

-
-
--h, --help -
-
-

-Print help text -

-
-
---usage -
-
-

-Print short usage summary. -

-
-
---stats -
-
-

-Enable statistics gathering/printing. -

-
-
---where -
-
-

-Include file and line number in debug messages. -

-
-
---when -
-
-

-Include the wall time since program start in all messages. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/lps2lts-mc.html b/assets/man/lps2lts-mc.html deleted file mode 100644 index b28f1cc2b..000000000 --- a/assets/man/lps2lts-mc.html +++ /dev/null @@ -1,1979 +0,0 @@ - - - - - -lps2lts-mc(1) - - - - - -
-
-

SYNOPSIS

-
-

lps2lts-mc [OPTION]… input.lps

-
-
-
-

DESCRIPTION

-
-

lps2lts-mc performs multi-core reachability and LTL model checking on the -labelled transition system from a compiled -specification provided in input.lps. Specifications are in lps format -and are commonly generated by mcrl22lps(1). -Because the lps depends on libraries that are not thread-safe, this tool -uses processes instead of threads (--procs). -LTS output is not supported by this tool, use the distributed tools instead.

-
-
-
-

OPTIONS

-
-
-
---threads=NUMBER -
-
-

- Number of threads to use for state space exploration - (default: NUMBER=NUM_CORES). Maximum is 64. -

-
-
---strategy=TYPE -
-
-

- Select an exploration strategy. Two kinds of algorithms - are available: LTL model checking and reachability. - The multi-core LTL algorithms (Nested DFS) are implemented - in a swarmed fashion, however with a shared state storage. - On top of that, MCNDFS and ENDFS offer work sharing between threads - and can deliver speedups for some models. - Note that the LTL algorithms require buchi automata as input. - Such a model can be provided directly by the language frontend, - i.e., DiVinE property models are supported, or by the LTL - layer (see --ltl). - Note finally that strict reachability exploration orders - are not guaranteed by all multi-core search strategies. - TYPE can be one of the following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-sbfs -
-
-

- explore state space in strict breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in relaxed depth-first order. Relaxed meaning that - the inclusion check on the set of visited states is executed immediately - after generating a state. This saves stack space and improves performance - of the parallel reachability analysis. -

-
-
-ndfs -
-
-

- multi-core swarmed Nested Depth-First Search (Courcoubetis et al.). -

-
-
-nndfs -
-
-

- multi-core swarmed New Nested Depth-First Search (Schwoon, Esparza). -

-
-
-ldfs -
-
-

- Multi-Core Nested Depth-First Search (Laarman, Langerak, van de Pol, Weber, Wijs). -

-
-
-endfs -
-
-

- Multi-Core Nested Depth-First Search by Evangelista et al. The algorithm has - been adapted with the cyan color encoding and early cycle detection, as - described in "Variations on Multi-Core Nested Depth-First Search" - (Laarman, van de Pol). - Note that ENDFS requires a repair procedure, NNDFS is chosen by default. - Alternatives can be chosen by providing a list of strategies, for example: - "endfs,mcndfs", yields the NMC-NDFS algorithm as described in the Variations - paper (with load balancing). - Finally, we also allow multiple levels of ENDFS to be combined: - "endfs,endfs,nndfs". -

-
-
-cndfs -
-
-

- New CNDFS algorithm. - Multi-Core Nested Depth-First Search (Evangelista, Laarman, Petrucci, van de Pol). -

-
-
-tarjan -
-
-

- Tarjan’s sequential SCC algorithm. - Depth-First Search and Linear Graph Algorithms (Tarjan). -

-
-
-renault -
-
-

- Renault’s SCC algorithm. - Parallel Explicit Model Checking for Generalized Büchi Automata (Renault et al.). -

-
-
-ufscc -
-
-

- The UFSCC SCC algorithm. - Multi-Core On-The-Fly SCC Decomposition (Bloemen, Laarman, van de Pol). -

-
-
-
-
---perm=TYPE -
-
-

- Select the transition permutation, which is used to guide - different threads to different parts of the state space. - A good permutation can significantly speed up bug hunting. - TYPE can be one of the following options, each has - different properties in terms of performance and effectiveness - summarized as (perf./eff.) : -

-
-
-dynamic -
-
-

- use "fresh successor heuristics" described in - "Variations on Multi-Core Nested Depth-First Search" (Laarman, van de Pol). - (decent/very good for bug hunting). Default for LTL. -

-
-
-sort -
-
-

- sort on the unique id of the successor state (decent/good) -

-
-
-random -
-
-

- use multiple fixed random permutation schemes per worker (decent/good). -

-
-
-rr -
-
-

- randomized using a full random sort order on the states. This is more random - than the previous option, but requires more pre-computation time for the - random array (decent/almost perfect). -

-
-
-shift -
-
-

- shift the order of transitions by a fixed value per worker (fast/decent). -

-
-
-otf -
-
-

- sort according to a dynamic permutation scheme (slow/perfect). -

-
-
-none -
-
-

- use the same exploration order for all workers. Default for reachability. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-table -
-
-

- use a lockless hash table. -

-
-
-tree -
-
-

- use a lockless tree-compressed table. In many cases the tree - can compress states to two integers regardless of their length. To efficiently - accommodate more than 4*10^9 states, the table is split in a root and a leaf - table whose respective size can be adjusted using the --ratio option - (default). -

-
-
-cleary-tree -
-
-

- use a lockless tree-compressed hash table with a parallel Cleary table to - store roots. The compressed size of a state can approach one integer - with this approach. The leafs table is stored as a standard tree table (two - integers per subtree), which typically can be much smaller (up to the - square root of the root table size). To control the respective size of the - leaf table use the --ratio option. -

-
-
-
-
---ratio=NUMBER -
-
-

- Log_2 ratio between root and leaf table in tree compression. The ratio - can theoretically be as low as the square root of the root table size - (see --size). This will however only work if the state vectors are - perfectly combinatorial wrt their variable values. In most cases - the leaf table will grow larger, but find found that a factor four - (--ratio=2) works well for over 75% of the BEEM models. - (default: NUMBER=2). -

-
-
---size=NUMBER -
-
-

- Log_2 hash table size in elements (default: NUMBER=24). - This is also used for the internal node table of the tree. -

-
-
---zobrist=NUMBER -
-
-

- Save time by using zobrist incremental state hashing. - NUMBER defines the (log_2) size of the random number table - (default: 0=OFF). Large tables mean better hash distributions, - but more cache misses due to memory size. - Experiments have shown that small tables (2^6) suffice for - good distributions (equal or better than Jenkin’s hash). - Improvements are only noticable for fast state generators, like - DiVinE 2.2 (dve22lts-mc(1)). -

-
-
---max=NUMBER -
-
-

- Maximum search depth. -

-
-
---proviso=PROVISO -
-
-

- Change the proviso implementation for partial order reduction in presence - of safety properties or liveness properties. Parallel LTL is only supported - with the cndfs proviso in the cndfs search strategy. Sequentially, LTL is - also supported the stack proviso in the ndfs search strategy. - PROVISO can be either: -

-
-
-force-none -
-
-

- Disables the ignoring proviso check (only useful for benchmarking or - bug hunting). -

-
-
-closed-set -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack proviso. It works with both - the dfs and (p/s)bfs exploration strategies. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs or ndfs search strategy (for resp. safety or LTL properties). -

-
-
-cndfs -
-
-

- A special parallel cycle proviso is used to enable POR with multi-core - LTL model checking using the cndfs search strategy. -

-
-
-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/lps2lts-seq.html b/assets/man/lps2lts-seq.html deleted file mode 100644 index 1aa006210..000000000 --- a/assets/man/lps2lts-seq.html +++ /dev/null @@ -1,2059 +0,0 @@ - - - - - -lps2lts-seq(1) - - - - - -
-
-

SYNOPSIS

-
-

lps2lts-seq [OPTION]… input'.lps ['output.fmt]

-
-
-
-

DESCRIPTION

-
-

lps2lts-seq generates a labelled transition system from a specification -provided in input.lps by enumerative reachability analysis using a -general state expanding algorithm. Specifications are in lps format -and are commonly generated by mcrl22lps(1). -output.fmt specifies the name of -the output archive. The desired format is deduced from the filename -extension. Available file formats are described blow.

-
-
-
-

OPTIONS

-
-
-
---strategy=TYPE -
-
-

- Select exploration strategy. TYPE can be one of the - following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in depth-first order. -

-
-
-scc -
-
-

- perform LTL model checking based on Buchi automata with Couvreur’s - algorithm (accepting cycle detection). This requires an accepting - state label to be present. See below. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-tree -
-
-

- use a tree-compressed hash table (default). -

-
-
-table -
-
-

- use a hash table. -

-
-
-vset -
-
-

- use a vector set (decision diagram). -

-
-
-
-
---max=DEPTH -
-
-

- Maximum search depth, search until DEPTH. -

-
-
---proviso=closedset|stack|color -
-
-

- Change the proviso implementation for partial order reduction (ltl) -

-

Change the proviso used to detect that an accepting cycle is closed. -Three options are available, the default is closedset.

-
-
-closedset -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack or color proviso. It works with both - the dfs- and bfs exploration strategy. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs/scc search strategy (since bfs has no stack). -

-
-
-color -
-
-

- The color proviso requires a lot of extra work and memory - but can significantly improve the reduction. It too works - only with the dfs/scc search strategies. -

-
-
-
-
-
-

mCRL2 Options

-
-
---mcrl2=OPTIONS -
-
-

- Pass options to the mCRL2 library. - Defaults to "--rewriter=jittyc". -

-

The "--rewriter=<rewriter>" option is the only recognized option. -Possible rewriters are jitty and jittyc.

-
-
---mcrl2-finite-types -
-
-

- Use mCRL2 finite type information. -

-

Enabling this option may cause premature termination in case non-normal-form -instances of finite types occur in the state space. This will be the case, -e.g., when the specification has been pre-processed using -lpsparunfold(1).

-
-
---mcrl2-readable-edge-labels -
-
-

- Use human readable edge labels. -

-

Enabling this option may cause problems during bisimulation reduction, e.g., -the edge labels l(0) with 0 of type Nat and l(0) with 0 of type Pos will be -mapped to the same string.

-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/lps2lts-sym.html b/assets/man/lps2lts-sym.html deleted file mode 100644 index 576c122c7..000000000 --- a/assets/man/lps2lts-sym.html +++ /dev/null @@ -1,1940 +0,0 @@ - - - - - -lps2lts-sym(1) - - - - - -
-
-

SYNOPSIS

-
-

lps2lts-sym [OPTION]… input.lps [output.etf]

-
-
-
-

DESCRIPTION

-
-

lps2lts-sym performs a reachability analysis on a specification provided -in input.lps. Specifications are in lps format and are commonly -generated by mcrl22lps(1). output.etf specifies the name -of the output archive, written in etf(5) format.

-
-
-
-

OPTIONS

-
-
-
---order=ORDER -
-
-

- Select the exploration strategy: bfs-prev, bfs, chain-prev, - or chain. With bfs-prev and bfs, breadth-first search is - used. Here, bfs-prev only considers the states found at the - previous level, while bfs considers the whole visited set. With - chain-prev and chain, a chaining strategy is used. Here, - chain-prev at each level starts from the states found at the - previous level, while chain uses the whole visited set. Defaults - to bfs-prev. -

-

When using breadth-first search, the tool performs the next state computation -for all edge groups on the current level or current set of visited states. -Chaining means to apply next state for the first group to the visited -states, then apply next-state for the second group to the result, -etc. Thus, a chaining analysis can be completed in much less -iterations than a BFS analysis.

-
-
---saturation=SATURATION -
-
-

- Select a saturation strategy: none, sat-like, sat-loop, sat-fix, - sat. The sat-like strategy goes up and down the levels of the BDD - used to represent the state space. The sat-loop strategy loops over - the levels. The sat-fix strategy repeatedly performs a fixpoint - computation using saturation. The sat strategy does saturation as - described in the literature with on-the-fly expansion of the transition - relations. Defaults to none, i.e. no saturation. -

-

All strategies except sat-fix and sat work in combination with the order -to saturate levels.

-
-
---sat-granularity=GRANULARITY -
-
-

- Select the granularity of sat-like and sat-loop strategies. The - granularity indicates how many BDD levels are considered at the same - time. Defaults to 10. -

-
-
---save-sat-levels -
-
-

- Save the previous states seen at saturation levels. This option has - effect for any of the saturation strategies in combination with either - bfs-prev or chain-prev. -

-
-
---guidance=STRATEGY -
-
-

- Select a search strategy for searching for actions: unguided, - directed. The unguided strategy considers all transition - groups. The directed strategy focuses the search on the transition - groups in which the action occurs. Defaults to unguided. -

-
-
---dot=DIR -
-
-

- If this option is supplied DIR is a directory to which dot files of vector sets are written to. - Note that this option should only be used for smaller vector sets because of disk space. -

-

Three type of dot files are (over)written:

-
    -
  1. -

    -current-l<L>.dot: the nodes in the vector set at level L (and only level L), -

    -
  2. -
  3. -

    -visited-l<L>.dot: the nodes in the vector set up to and included level L, -

    -
  4. -
  5. -

    -group_next-l<L>-k<K>.dot: the nodes in the transition relation of group K at level L. -

    -
  6. -
-
-
---mu=MUFILE|MUFORMULA -
-
-

- After computing all reachable states, evaluate the mu-formula in MUFILE -

-

MUFILE is a file containing a Mu Calculus formula (see -ltsmin-mu(5)). Alternatively, the formula can be provide directly as -MUFORMULA. This formula is a propositional formula with least and greatest -fixpoint operator. It will be evaluated after generation of the complete state -space.

-
-
---ctl-star=CTLFILE|CTLFORMULA -
-
-

- CTLFILE is a file containing an Linear Temporal Logic Star (CTL*) formula - (see ltsmin-ctl(5)). Which content can also be provided directly as - CTLFORMULA. - The formula is translated to a mu-formula (see ltsmin-mu(5)), - which is evaluated after computing all reachable states. -

-
-
---no-matrix -
-
-

- Do not print the dependency matrix if -v (verbose) is used. -

-
-
---no-soundness-check -
-
-

- When using --pins-guards=assume-true disable the soundness check of the model specification. - The soundness check may be expensive and can be disabled when the model specification is known to be sound. - A guard may not evaluate to true or false but to maybe. A guard which evaluates to maybe depends on - the evaluation of another guard. For languages such as Promela and DVE it checks whether if - a guard evaluates to maybe there is another guard on the left which evaluates to false. For languages such as - mCRL2 it also checks whether a guard on the right evaluates to false. If for all states this holds then the - model specification is sound for guard-splitting. -

-
-
---precise -
-
-

- Compute the final number of states precisely. -

-
-
---next-union -
-
-

- If supported by the vset implementation; perform the computation of successor states simultaneously with unifying - the current states. Simultaneously, means with a single BDD/MDD operation. -

-
-
---inv-par -
-
-

- Checks all invariants in parallel. -

-
-
---inv-bin-par -
-
-

- Checks both sides of a binary operand in parallel in an invariant, requires --inv-par. - Note that this option may actually slow down invariant checking, because parallelization - of a binary operand disables short-circuit evaluation. -

-
-
-
-

mCRL2 Options

-
-
---mcrl2=OPTIONS -
-
-

- Pass options to the mCRL2 library. - Defaults to "--rewriter=jittyc". -

-

The "--rewriter=<rewriter>" option is the only recognized option. -Possible rewriters are jitty and jittyc.

-
-
---mcrl2-finite-types -
-
-

- Use mCRL2 finite type information. -

-

Enabling this option may cause premature termination in case non-normal-form -instances of finite types occur in the state space. This will be the case, -e.g., when the specification has been pre-processed using -lpsparunfold(1).

-
-
---mcrl2-readable-edge-labels -
-
-

- Use human readable edge labels. -

-

Enabling this option may cause problems during bisimulation reduction, e.g., -the edge labels l(0) with 0 of type Nat and l(0) with 0 of type Pos will be -mapped to the same string.

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Symbolic Parity Game Options

-

A symbolic parity game can be generated either by using the --mucalc -option or by using the PBES language module.

-
-
---pg-solve -
-
-

- Solve the generated parity game. -

-
-
---pg-reduce -
-
-

- Reduce the generated parity game on-the-fly (experimental). -

-
-
---pg-write=FILE -
-
-

- Writes a symbolic parity game to FILE. -

-
-
-
-
-

Symbolic Parity Game Solver Options

-
-
---attr=default|chain|par|par2 -
-
-

- Choose attractor function. -

-

Available attractor functions:

-
-
-default -
-
-

- Straightforward attractor computation. -

-
-
-chain -
-
-

- Chaining attractor, applies transition groups in a different order - than default in computing an attractor level. -

-
-
-par -
-
-

- Spawns parallel tasks to compute forward and backward steps for each - attractor level. -

-
-
-par2 -
-
-

- Spawns more parallel tasks than par, by applying forward steps in - parallel to the result of the backward steps of the different - transition groups. -

-
-
-
-
---saturating-attractor -
-
-

- Use saturation in the chaining attractor. -

-
-
---pg-write-dot -
-
-

- Write dot files to disk during parity game solving for debugging. -

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/lps2torx.html b/assets/man/lps2torx.html deleted file mode 100644 index f99a510d5..000000000 --- a/assets/man/lps2torx.html +++ /dev/null @@ -1,1351 +0,0 @@ - - - - - -lps2torx(1) - - - - - -
-
-

SYNOPSIS

-
-

lps2torx [OPTION]… input.lps

-
-
-
-

DESCRIPTION

-
-

lps2torx provides access to a labelled transition system from a -specification provided in input.lps via the TorX-Explorer textual -interface on stdin and stdout. Specifications are in lps format -and are commonly generated by mcrl22lps(1).

-
-
-
-

OPTIONS

-
-
-

mCRL2 Options

-
-
---mcrl2=OPTIONS -
-
-

- Pass options to the mCRL2 library. - Defaults to "--rewriter=jittyc". -

-

The "--rewriter=<rewriter>" option is the only recognized option. -Possible rewriters are jitty and jittyc.

-
-
---mcrl2-finite-types -
-
-

- Use mCRL2 finite type information. -

-

Enabling this option may cause premature termination in case non-normal-form -instances of finite types occur in the state space. This will be the case, -e.g., when the specification has been pre-processed using -lpsparunfold(1).

-
-
---mcrl2-readable-edge-labels -
-
-

- Use human readable edge labels. -

-

Enabling this option may cause problems during bisimulation reduction, e.g., -the edge labels l(0) with 0 of type Nat and l(0) with 0 of type Pos will be -mapped to the same string.

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
-
-

SEE ALSO

- -
-
-

- - - diff --git a/assets/man/ltsmin-compare.html b/assets/man/ltsmin-compare.html deleted file mode 100644 index 64bc81567..000000000 --- a/assets/man/ltsmin-compare.html +++ /dev/null @@ -1,948 +0,0 @@ - - - - - -ltsmin-compare(1) - - - - - -
-
-

SYNOPSIS

-
-

ltsmin-compare [OPTIONS] <input 1> <input 2>

-
-
-
-

OPTIONS

-
-
-
--s, --strong -
-
-

-Compare modulo strong bisimulation using the default implementation. -

-
-
--b, --branching -
-
-

-Compare modulo branching bisimulation using the default implementation. -

-
-
--l, --lump -
-
-

-Compare modulo CTMC lumping. -

-
-
--t, --trace -
-
-

-Compare the two LTSs modulo (optionally stuttering) trace equivalence. This happens in multiple steps. -First, the LTSs are compared modulo strong bisimulation (or silent step bisimulation -if the stutter option is given). If the resulting LTSs are not equal, the LTSs are made deterministic and -compared modulo strong bisimulation. -

-
-
---stutter -
-
-

-Compare module stuttering during trace equivalence comparison. -

-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

General Options

-
-
--v -
-
-

-Increase the level of verbosity -

-
-
--q -
-
-

-Be quiet; do not print anything to the terminal. -

-
-
---debug=file -
-
-

-Enable debugging output for file. -

-
-
---version -
-
-

-Print version string of this tool. -

-
-
--h, --help -
-
-

-Print help text -

-
-
---usage -
-
-

-Print short usage summary. -

-
-
---stats -
-
-

-Enable statistics gathering/printing. -

-
-
---where -
-
-

-Include file and line number in debug messages. -

-
-
---when -
-
-

-Include the wall time since program start in all messages. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination: LTSs are equivalent. -

-
-
-1 -
-
-

- LTSs are not equivalent. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
- -
-

- - - diff --git a/assets/man/ltsmin-convert.html b/assets/man/ltsmin-convert.html deleted file mode 100644 index 4cdf808ab..000000000 --- a/assets/man/ltsmin-convert.html +++ /dev/null @@ -1,1085 +0,0 @@ - - - - - -ltsmin-convert(1) - - - - - -
-
-

SYNOPSIS

-
-

ltsmin-convert [OPTIONS]… input output

-
-
-
-

DESCRIPTION

-
-

This tool copies input to output and changes the archive format -on-the-fly. Both input and output format are detected by pattern -matching. See the File Formats section for details.

-
-
-
-

OPTIONS

-
-
-
---copy -
-
-

-Perform a streaming copy from <input> to <output>. -

-
-
---rdwr -
-
-

-Perform a load/store copy from <input> to <output>. -

-
-
---index -
-
-

-Transform the vector based <input> to indexed <output>. -

-
-
---segments=N -
-
-

-Set the number of segments in the output file. If the output format -does not support segmentation (BCG) then the default is 1 and -specifying any number other than 1 is an error. Otherwise, the -default is the same number of segments as the input. Please note that -the algorithm used for changing the number of segments is simple. It -guarantees that the number of states in the output is balanced, but -not much more. E.g., if the input is in BFS order and just one -segment then then the output will still be in BFS order. However, if -the input has more than one segment then BFS order is lost. -

-
-
---encode -
-
-

-Encode any LTS as a single edge label LTS during a load/store copy. -

-
-
---bfs -
-
-

-Change the indexing of the LTS to match BFS exploration order during a load/store copy. -Note that the current version cannot reorder the LTS if it has state vectors. -

-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

General Options

-
-
--v -
-
-

-Increase the level of verbosity -

-
-
--q -
-
-

-Be quiet; do not print anything to the terminal. -

-
-
---debug=file -
-
-

-Enable debugging output for file. -

-
-
---version -
-
-

-Print version string of this tool. -

-
-
--h, --help -
-
-

-Print help text -

-
-
---usage -
-
-

-Print short usage summary. -

-
-
---stats -
-
-

-Enable statistics gathering/printing. -

-
-
---where -
-
-

-Include file and line number in debug messages. -

-
-
---when -
-
-

-Include the wall time since program start in all messages. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-255 -
-
-

- Some error occurred. -== SEE ALSO -ltsmin(7), -ltsmin-compare(1), -ltsmin-reduce(1), -ltsmin-reduce-dist(1), -lpo2lts-dist(1), -lpo2lts-mc(1), -lpo2lts-seq(1), -lpo2lts-sym(1), -CADP, -BCG -

-
-
-
-
-
-

- - - diff --git a/assets/man/ltsmin-ctl.html b/assets/man/ltsmin-ctl.html deleted file mode 100644 index 7b07c8291..000000000 --- a/assets/man/ltsmin-ctl.html +++ /dev/null @@ -1,884 +0,0 @@ - - - - - -ltsmin-ctl(5) - - - - - -
-
-

SYNOPSIS

-
-

LTSmin syntax for Computation Tree Logic formulas

-
-
-
-

DESCRIPTION

-
-
- - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Table 1. CTL operators and priority
Priority Operator Meaning

0

true

constant true

0

false

constant false

1

==

test operator (state variable name==number)

2

!

Logical negation

3

E

Exist a successor

3

A

All successors

3

[]

Globally (Always) operator

3

<>

Finally (Eventually) operator

3

X

neXt operator

4

&&

Logical and

5

||

Logical or

6

<->

Logical equivalence

7

->

Logical implication

8

U

Until operator

-
-
- - - -
-
Caution
-
Using the letters E,A,X or U as state label name might -confuse the parser.
-
-
-
-
-

EXAMPLE

-
-
-
-
A ( [] ( (phil_0 == 1) -> <> phil_0 == 2) )
-
-

For variable naming consult the --labels option in the PINS tools.

-
-
-
-

SEE ALSO

- -
-
-

- - - diff --git a/assets/man/ltsmin-ltl.html b/assets/man/ltsmin-ltl.html deleted file mode 100644 index e0db1b24b..000000000 --- a/assets/man/ltsmin-ltl.html +++ /dev/null @@ -1,884 +0,0 @@ - - - - - -ltsmin-ltl(5) - - - - - -
-
-

SYNOPSIS

-
-

LTSmin syntax for Linear Temporal Logic formulas

-
-
-
-

DESCRIPTION

-
-
- - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Table 1. LTL operators and priority
Priority Operator Meaning

0

true

constant true

0

false

constant false

1

==

test operator (state variable name==number)

2

!

Logical negation

3

[]

Globally (Always) operator

3

<>

Finally (Eventually) operator

3

X

neXt operator

4

&&

Logical and

5

||

Logical or

6

<->

Logical equivalence

7

->

Logical implication

8

U

Until operator

8

R

Release operator

-
-
- - - -
-
Caution
-
Using the letters X,U or R as state label name might -confuse the parser.
-
-
-
-
-

EXAMPLE

-
-
-
-
! ([] ( (phil_0 == 1) -> <> phil_0 == 2) )
-
-

For variable naming consult the --labels option in the PINS tools.

-
-
- -
-

- - - diff --git a/assets/man/ltsmin-mu.html b/assets/man/ltsmin-mu.html deleted file mode 100644 index 5e9c10ad8..000000000 --- a/assets/man/ltsmin-mu.html +++ /dev/null @@ -1,880 +0,0 @@ - - - - - -ltsmin-mu(5) - - - - - -
-
-

SYNOPSIS

-
-

LTSmin syntax for Mu Calculus formulas

-
-
-
-

DESCRIPTION

-
-
- - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Table 1. Mu Calculus operators and priority
Priority Operator Meaning

0

true

constant true

0

false

constant false

1

==

test operator (state variable name==number)

2

!

Logical negation

3

&&

Logical and

4

||

Logical or

5

X

neXt operator

5

E

Exist a successor

5

A

All successors

6

[edgevar]*

Globally (Always) operator

6

<edgevar>*

Finally (Eventually) operator

6

nu

greatest fixpoint operator

6

mu

least fixpoint operator

-
-

* not implemented

-
- - - -
-
Caution
-
Using the letters X,E or A as state label name might -confuse the parser.
-
-
-
-
-

EXAMPLE

-
-
-
-
nu Z. (A X Z) && (E X true)
-
-

For variable naming consult the --labels option in the PINS tools.

-
-
-
-

SEE ALSO

- -
-
-

- - - diff --git a/assets/man/ltsmin-mucalc.html b/assets/man/ltsmin-mucalc.html deleted file mode 100644 index f2cd8fb4d..000000000 --- a/assets/man/ltsmin-mucalc.html +++ /dev/null @@ -1,921 +0,0 @@ - - - - - -ltsminmucalc(5) - - - - - -
-
-

SYNOPSIS

-
-

Syntax for mu-calculus formulas, used by the LTSmin toolset to -generate parity games.

-
-
-
-

DESCRIPTION

-
-

A mu-calculus formula f can be passed to the reachability tools, -together with a model M in any of the supported languages, -which will generate a parity game that encodes M |= f. -For the symbolic tools (pins2lts-sym), a symbolic parity game -solver spgsolver(1) is available. The explicit state tools -(pins2lts-seq, pins2lts-mc, pins2lts-dist) generate a parity game -that can be converted by ltsmin-convert(1) to a format that is -readable by the solvers PGSolver -and pbespgsolve -(part of mCRL2).

-
-

Syntax

-
-
-
f ::= true | false | {v=e} | !{v=e} | f1 && f2 | f1 || f2 |
-nu Z . f | mu Z . f | [a]f | <a>f
-
-

Propositions are of the form {v=e}, where v is a state variable -and e a value. A value is either a number or a quoted string. -The modal operators [] and <> can either be empty or contain an -action expression a, which is a quoted string that is equal to -the action label it should match.

-
- - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Table 1. Mu-calculus operators and priorities
Priority Operator Meaning

0

true

Constant true

0

false

Constant false

0

{v=e}

Proposition

1

!{v=e}

Negated proposition

2

f1 && f2

Logical conjunction (and)

3

f1 || f2

Logical disjunction (or)

4

nu Z. f

Greatest fixpoint operator

5

mu Z. f

Least fixpoint operator

6

[a]f

Necessity modality (must)

7

<a>f

Possibility modality (may)

-
-
-
-
-
-

EXAMPLES

-
-
-

Basic formulae

-

Absence of deadlocks:

-
-
-
nu Z. <>true && []Z
-
-

Invariance:

-
-
-
mu Z. {x=1} && []Z
-
-
-
-

Liveness and reachability

-

From every state, a state where x=2 holds should be reachable:

-
-
-
nu Z. []Z && (mu Y. {x=2} || <>Y)
-
-

After every (finite) a-path, there should be an infinite b-path:

-
-
-
mu Z. ["a"](Z && nu Y. <"b">true && ["b"]Y)
-
-
-
-

Usage

-

Explicit-state tools:

-
-
-
pins2lts-mc --mucalc=<formula>.mcf <model> <game>.dir
-ltsmin-convert --rdwr <game>.dir <game>.pg
-pbespgsolve -ipgsolver <game>.pg
-
-

Symbolic tools:

-
-
-
pins2lts-sym [vset-options] --mucalc=<formula>.mcf <model> --pg-write=<game>.spg
-spgsolver [vset-options] <game>.spg
-
-

For variable naming consult the --labels option in the PINS tools.

-
-
-
- -
-

- - - diff --git a/assets/man/ltsmin-pred.html b/assets/man/ltsmin-pred.html deleted file mode 100644 index 9c03c4880..000000000 --- a/assets/man/ltsmin-pred.html +++ /dev/null @@ -1,877 +0,0 @@ - - - - - -ltsmin-pred(5) - - - - - -
-
-

SYNOPSIS

-
-

LTSmin syntax for Simple Predicate Language formulae

-
-
-
-

DESCRIPTION

-
-
- - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Table 1. Language’s operators and priority
Priority Operator Meaning

0

true

constant true

0

false

constant false

0

maybe

constant maybe

1

* / %

multiplication, division and remainder

2

+ -

addition, subtraction

3

< <= > >=

less than, less than or equal, greater than, greater than or equal

4

==

test operator (state variable name==number)

4

??

enabledness operator (edge variable name ?? chunk)

5

!

Logical negation

6

&&

Logical and

7

||

Logical or

8

<->

Logical equivalence

9

->

Logical implication

-
-
-
-
-

EXAMPLE

-
-
-
-
init_0\.x == 4 && (user_1\.a\[3\] == 1 -> register_2\.y == 2)
-
-

(Note the dot (.) and square braces ([ and ]) need to be escaped, as - these symbols are used as keywords in the CTL and mu-calculus languages)

-

This predicate example could be used in the prom frontends, to search for -states where either x is not equal to 4 in (instance 0) the init proctype, or -the element three of array a in (instance 1 of) proctype user is non-zero, -while y in (instance 2 of) proctype register is zero.

-

For variable naming consult the --labels option in the PINS tools.

-
-
-
-

SEE ALSO

- -
-
-

- - - diff --git a/assets/man/ltsmin-printtrace.html b/assets/man/ltsmin-printtrace.html deleted file mode 100644 index 6eb4e2d87..000000000 --- a/assets/man/ltsmin-printtrace.html +++ /dev/null @@ -1,1065 +0,0 @@ - - - - - -ltsmin-printtrace(1) - - - - - -
-
-

SYNOPSIS

-
-

ltsmin-printtrace [OPTIONS] <input> [<output>]

-
-
-
-

DESCRIPTION

-
-

This tool reads a trace output written with the --trace option and converts -it into the desired output file format. <output> specifies the name of the output archive. -The desired format is deduced from the filename extension.

-

Supported output file extensions are:

-
    -
  • -

    -txt: Textual output -

    -
  • -
  • -

    -aut: Aldebaran file format -

    -
  • -
  • -

    -csv: Comma separated values -

    -
  • -
-

If no output file is given, txt output will be written to stdout.

-
-
-
-

OPTIONS

-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-

Print trace Options

-
-
--s, --csv-separator -
-
-

- Define a custom the separator used in csv output -

-
-
---values=TYPE -
-
-

- Select the output type: idx or name. With idx the state vector, - edge- and state labels will be displayed as number, with name these - numbers will be translated (if possible) to their text representation. -

-
-
--a, --all -
-
-

- Output all the values in state/state labels/edge labels instead of - differences. This option works for txt output. -

-
-
--d, --diff -
-
-

- Output differences between state/state labels/edge labels instead of - just all values. This option works for txt output. -

-
-
--t, --table -
-
-

- Output the trace in tabular form. This option works for txt output. -

-
-
--l, --list -
-
-

- Output the trace in list form. This option works for txt output. -

-
-
---trace=INT -
-
-

- If the input contains multiple traces then this options may be used to select - the trace that will be printed. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
- -
-

- - - diff --git a/assets/man/ltsmin-reduce-dist.html b/assets/man/ltsmin-reduce-dist.html deleted file mode 100644 index 9db8d8702..000000000 --- a/assets/man/ltsmin-reduce-dist.html +++ /dev/null @@ -1,952 +0,0 @@ - - - - - -ltsmin-reduce-dist(1) - - - - - -
-
-

SYNOPSIS

-
-

mpirun [MPI OPTIONS] ltsmin-reduce-dist [OPTIONS] <input> [<output>]

-
-
-
-

DESCRIPTION

-
-

Using the option --workers=N, this tool starts the command mpirun silently -in the background with the suitable options, i.e. -np 4. -Alternatively, one may wish to call mpirun with additional options. This can -be done using the --mpi option, e.g.:

-
-
-
mpirun -np 4 -mca btl tcp,self {manname} --mpi
-
-
-
-
-

OPTIONS

-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Hybrid Runtime Options

-

The Hybrid Runtime Environment provides startup options for several parallel architectures.

-
-

Posix threads options

-

If the application supports it and Posix threads are supported by the OS then -the following option is available:

-
-
---threads[=count] -
-
-

-Start count worker threads. The default count is the number of CPU’s in the system. -

-
-
-
-
-

Posix processes options

-

If the application supports it and Posix shared memory is supported by the OS then -the following option is available:

-
-
---procs[=count] -
-
-

-Fork count worker processes. The default count is the number of CPUs in the system. -

-
-
-

Note that MacOS X only supports Posix shared memory from version 10.7 (Lion) -onwards.

-
-
-

MPI options

-

If the application supports it and MPI support was compiled into the binary then -the following options are available:

-
-
---workers=count -
-
-

-Start the program with count MPI workers. -

-
-
---mpirun=mpirun arguments -
-
-

-Invoke mpirun with the given arguments. -

-
-
---mpi -
-
-

-Ignore --workers and --mpirun options and start the MPI runtime. -

-
-
-
-
-
-

General Options

-
-
--v -
-
-

-Increase the level of verbosity -

-
-
--q -
-
-

-Be quiet; do not print anything to the terminal. -

-
-
---debug=file -
-
-

-Enable debugging output for file. -

-
-
---version -
-
-

-Print version string of this tool. -

-
-
--h, --help -
-
-

-Print help text -

-
-
---usage -
-
-

-Print short usage summary. -

-
-
---stats -
-
-

-Enable statistics gathering/printing. -

-
-
---where -
-
-

-Include file and line number in debug messages. -

-
-
---when -
-
-

-Include the wall time since program start in all messages. -

-
-
-
-
-
- -
-

- - - diff --git a/assets/man/ltsmin-reduce.html b/assets/man/ltsmin-reduce.html deleted file mode 100644 index 7cdd59fcb..000000000 --- a/assets/man/ltsmin-reduce.html +++ /dev/null @@ -1,948 +0,0 @@ - - - - - -ltsmin-reduce(1) - - - - - -
-
-

SYNOPSIS

-
-

ltsmin-reduce [OPTIONS] <input> [<output>]

-
-
-
-

OPTIONS

-
-
-
--s, --strong -
-
-

-Minimize modulo strong bisimulation using the default implementation. -

-
-
--b, --branching -
-
-

-Minimize modulo branching bisimulation using the default implementation. -

-
-
---divergence -
-
-

-When used in combination with branching bisimulation, the result is -divergence preserving branching bisimulation. -

-
-
--c, --copy -
-
-

-Perform a load/store copy. -

-
-
--l, --lump -
-
-

-Minimize modulo CTMC lumping. -

-
-
---silent -
-
-

-Minimize modulo silent step bisimulation. -This bisimulation is a generalization of tau * a bisimulation to arbitrary LTSs. -

-
-
---cycle -
-
-

-Minimize the lts modulo strongly connected components of silent steps. -

-
-
---determinize -
-
-

-Compute a deterministic version of the given LTS. -

-
-
---segments=N -
-
-

-Use N segments in the output file. -

-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

General Options

-
-
--v -
-
-

-Increase the level of verbosity -

-
-
--q -
-
-

-Be quiet; do not print anything to the terminal. -

-
-
---debug=file -
-
-

-Enable debugging output for file. -

-
-
---version -
-
-

-Print version string of this tool. -

-
-
--h, --help -
-
-

-Print help text -

-
-
---usage -
-
-

-Print short usage summary. -

-
-
---stats -
-
-

-Enable statistics gathering/printing. -

-
-
---where -
-
-

-Include file and line number in debug messages. -

-
-
---when -
-
-

-Include the wall time since program start in all messages. -

-
-
-
-
-
- -
-

- - - diff --git a/assets/man/ltsmin.html b/assets/man/ltsmin.html deleted file mode 100644 index 7edce676d..000000000 --- a/assets/man/ltsmin.html +++ /dev/null @@ -1,1643 +0,0 @@ - - - - - -ltsmin(7) - - - - - -
-
-

SYNOPSIS

-
-

This man page provides an overview of the tools in the LTSmin toolset.

-
-
-
-

Language Modules

-
-

The LTSmin toolset was designed to support multiple languages. All tools for -a specific language start with a prefix that indicates the language. Below, -we list the languages and the prefixes that are supported in this release:

-
-
-DVE (dve) -
-
-

-The DVE language. See the -DiVinE website. -

-
-
-ETF (etf) -
-
-

-The Enumerated Table Format is an intermediate format for models in the LTSmin -toolset. See etf(5). -

-
-
-mCRL2 (lps) -
-
-

-The mCRL2 language. See the -mCRL2 website. -

-
-
-muCRL (lpo) -
-
-

-The muCRL language. See the -muCRL website. -

-
-
-Promela (prom) -
-
-

-The Promela language is supported via the included version of SpinS, -which generates C code implementing the PINS interface. See -Spin website -and -SpinS: Extending LTSmin with Promela through SpinJa. -

-
-
-UPPAAL (opaal) -
-
-

-The UPPAAL xml language for timed automata is supported via the opaal -successor generator. Currently only multi-core reachability is supported -(opaal2lts-mc(1)). -See the opaal website: -opaal website -

-
-
-PBES (pbes) -
-
-

-Specifications in pbes format generated by lps2pbes(1) are -reduced to parity games. These can then be solved (symbolically) by -spgsolver(1). -

-
-
-C-code (pins) -
-
-

-LTSmin enables linking to language modules provided as .so-files. The file -dlopen-api.h needs to be included in the C-code. -The pins2lts tools will load the binary at runtime. -See pins2lts-seq(1), pins2lts-mc(1), pins2lts-dist(1), pins2lts-sym(1). -

-
-
-
-
-
-

State Space Exploration and Analysis Tools

-
-

The LTSmin toolset has four different tools for reachability, -checking for deadlocks, actions and invariants and verification of properties -in Linear Temporal Logic (LTL) or modal mu-calculus.

-
-
-<prefix>2lts-sym -
-
-

-Symbolic tools that use decision diagrams for manipulating sets -of states. The optional output produced by these tools is an ETF model. -

- -

To use multi-core decision diagrams, choose either Sylvan or LDDmc as -DD package using the --vset option.

-
-
-<prefix>2lts-seq -
-
-

-Sequential tools that enumerate states and can use -both decision diagrams and (tree-compressed) hash tables to represent sets of -states. The optional output produced by these tools is an explicit LTS. -These tools are based on an extended version of the -General State Exploring -Algorithm (GSEA). -

- -
-
-<prefix>2lts-mc -
-
-

-Concurrent (multi-core) state space generators and model checkers. -Enumeration uses lockless (tree-compressed) hash tables to represent sets of -states. Model checking of LTL is supported by a set of multi-core NDFS -algorithms. To input LTL-formulae, one can use the PINS2PINS wrapper (--ltl) -or an LTL cross-product computed by the frontend (DiVinE 2 property models or -PROMELA models via SpinS with never claim). -

- -
-
-
    -
  • -

    -MacOS X only supports the multiple process architecture from version -10.7 (Lion). -

    -
  • -
-
-
-
-<prefix>2lts-dist -
-
-

-Distributed state space generators that enumerate states and use -distributed hash tables for storing sets of states. -The optional output produced by these tools is an explicit LTS. -These tools work with MPI, multiple threads or multiple process whenever possible and available. -For example: -

-
-
-
    -
  • -

    -MacOS X does not support the multiple process architecture at this time. -

    -
  • -
-
- -
-
-
-
-
-

Pins-to-pins wrappers

-
-

Most of the analysis tools offer the following options, which are implemented as -a layer between the language modules and the analysis algoritms.

-
-
-caching -
-
-

-Enable transition caching with the -c option. -

-
-
-regrouping -
-
-

-Choose regrouping and reordering heuristics with the -r option. -The following regroup macros are available. -

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
-partial order reduction -
-
-

-Enable POR with the --por option. -

-
-
-ltl -
-
-

-Generate a Büchi automaton and enable detection of accepting cycles -with the --ltl option. -Only available in the *2lts-seq and *2lts-mc tools. -See ltsmin-ltl(5). -

-
-
-mu-calculus -
-
-

-Generate a parity game with the --mucalc option. -See ltsmin-mucalc(5). -

-
-
-
-
-
-

State Space Reduction Tools

-
-

The LTSmin toolset provides distributed minimization with respect to various bisimulations.

-
-
-ltsmin-reduce -
-
-

-Sequential minimization modulo strong and branching bisimulation, as well as -modulo lumping of CTMCs. -See ltsmin-reduce(1). -

-
-
-ltsmin-reduce-dist -
-
-

-Distributed minimization modulo strong and branching bisimulation. -This tool has an implementation of the new inductive signature algorithms -that work on tau-cycle free LTSs. -See ltsmin-reduce-dist(1). -

-
-
-ltsmin-compare -
-
-

-Compare two transitions systems, using the same equivalences as supported by -ltsmin-reduce. -See ltsmin-compare(1). -

-
-
-
-
-
-

Tau Cycle Elimination Tool

-
-

The LTSmin toolset provides distributed tau-cycle elimination.

-
-
-ce-mpi -
-
-

-Distributed tau cycle elimination. -See ce-mpi(1). -

-
-
-
-
-
-

TorX RPC interfaces

-
-

The LTSmin toolset provides TorX RPC interfaces.

-
-
-<prefix>2torx -
-
-

-TorX RPC interface. -

- -
-
-
-
-
-

Trace Pretty Printing

-
-
-
-ltsmin-printtrace -
-
-

-Pretty print traces. See ltsmin-printtrace(1). -

-
-
-
-
-
-

Conversion Tools

-
-
-
-etf-convert -
-
-

-Translate ETF to DVE. See etf-convert(1). -

-
-
-ltsmin-convert -
-
-

-Convert LTS file formats. See ltsmin-convert(1). -

-
-
-gcf -
-
-

-Utility for creating and extracting Generic Container Format archives. -See gcf(1). -

-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

Mini Tutorial

-
-

As running example, we use a model of the bounded retransmission -protocol from the mCRL examples. Assuming we have copied the file -brp.mcrl to our working directory, we can linearize the model with -the following command:

-
-
-
mcrl -regular -nocluster brp.mcrl
-
-

This produces a file named brp.tbf. This is the input for the state -space generator. Just to see how many states and transitions are produced, -we can run the command

-
-
-
lpo2lts-seq brp.tbf
-
-

Assuming that the model is small and CADP is installed, we can simply generate a BCG file -(this requires BFS exploration order)

-
-
-
lpo2lts-seq --strategy=bfs brp.tbf brp.bcg
-
-

and then use CADP.

-

If it turns out that the LTS was very big then we might want to use the distributed tools -to generate and reduce the LTS:

-
-
-
lpo2lts-dist --workers=4 brp.tbf brp.dir
-ltsmin-reduce-dist --workers=4 brp.dir brp-s.dir
-ltsmin-convert --rdwr --segments 1 brp-s.dir brp-s.bcg
-
-

The tools start the command mpirun silently in the background with the -suitable options. -Alternatively, one may wish to call mpirun with additional options. This can -be done using the --mpi option, e.g.:

-
-
-
mpirun -np 4 -mca btl tcp,self lpo2lts-dist --mpi brp.tbf brp.dir
-
-

The dir format used to store the LTS in the example is backwards compatible with the mCRL toolset. -We also support a newer format that adds compression:

-
-
-
lpo2lts-dist --workers=4 brp.tbf brp.gcf
-ltsmin-reduce-dist --workers=4 brp.gcf brp-s.gcf
-ltsmin-convert --rdwr --segments 1 brp-s.gcf brp-s.bcg
-
-

When the model is suitable, state space generation can be speeded up by memoizing next state calls:

-
-
-
lpo2lts-dist --workers=4 --cache brp.tbf brp.gcf
-
-
-

Symbolic tools

-

The LTSmin toolset also has a symbolic reachability tool. -If we want to know the number of states, we can give the command:

-
-
-
lpo2lts-sym brp.tbf
-
-

This command will compute the necessary part of the transition relation and the -set of reachable states. If we want to record the transition relation symbolically -then we can do so in the form of an ETF file:

-
-
-
lpo2lts-sym brp.tbf brp.etf
-
-

This etf file can be translated to DVE for model checking:

-
-
-
etf-convert brp.etf brp.dve
-
-

It can also serve as the input for state space generation

-
-
-
etf2lts-dist --workers=4 brp.etf brp-s.gcf
-
-
-
-

Parity game solver

-

The LTSmin toolset finally includes a parity game solver:

-
-
-
etf2lts-sym --mucalc=property.mcf model.etf --pg-write=game.spg
-spgsolver game.spg
-
-

To tool reports whether the game successfully terminates.

-
-
-
-
-

- - - diff --git a/assets/man/mapa2lts-dist.html b/assets/man/mapa2lts-dist.html deleted file mode 100644 index 52acf306c..000000000 --- a/assets/man/mapa2lts-dist.html +++ /dev/null @@ -1,1745 +0,0 @@ - - - - - -mapa2lts-dist(1) - - - - - -
-
-

SYNOPSIS

-
-

mapa2lts-dist [OPTION]… input.mapa [output.fmt]

-
-
-
-

DESCRIPTION

-
-

mapa2lts-dist generates a labelled transition system from a -specification provided in input.mapa. Specifications are in -mapa or prcrl. output.fmt specifies the name of the output -archive. The desired format is deduced from the filename extension. -Available formats are described below.

-

Using the option --workers=N, this tool starts the command mpirun silently -in the background with the suitable options, i.e. -np 4. -Alternatively, one may wish to call mpirun with additional options. This can -be done using the --mpi option, e.g.:

-
-
-
mpirun -np 4 -mca btl tcp,self {manname} --mpi
-
-
-
-
-

OPTIONS

-
-
-
---nice=LEVEL -
-
-

- Set the nice level of all worker processes. This is useful - when running on other people’s workstations. -

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
---filter=<patternlist> -
-
-

- Select the labels to be written to file from the - state vector elements, state labels and edge labels. - The argument is a semicolon separated list of shell - file patterns. Each pattern may be prefixed with "!" to - exclude a set of labels. If none of the patterns matches the default - is to exclude the label. Hence, all labels starting with - an "x" are specified as "x*". The complement all labels, - except those starting with an "x" are specified as "!x*;*". -

-
-
---cost=<edge label> -
-
-

- The given edge labels defines the cost of an edge. Based on this cost, - the lowest cost for reaching every state is computed. Moreover, the order - in which states are explored is such that lower cost states are explored - before higher costs ones. The levels reported when this options is in effect are - cost levels. The counter-example traces are guaranteed to be a lowest cost path. - However, the length of the trace may not be minimal. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

Scoop Options

-
-
---const=<var>=<val> -
-
-

- define constant <var> as <val> -

-
-
---max-progress=<actions> -
-
-

- Specify the set of actions for which - maximal progress has to be enabled. The - default is all, meaning that all - actions are prioritised. The other - settings are tau, to prioritise just - the tau steps and none to disable - maximal progress -

-
-
---confluence -
-
-

- Detect confluent summands and write confluent matrix. - If the backend tool support tau confluence (e.g. pins2lts-dist) then - this lead to on-the-fly reduction of the state space. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Hybrid Runtime Options

-

The Hybrid Runtime Environment provides startup options for several parallel architectures.

-
-

Posix threads options

-

If the application supports it and Posix threads are supported by the OS then -the following option is available:

-
-
---threads[=count] -
-
-

-Start count worker threads. The default count is the number of CPU’s in the system. -

-
-
-
-
-

Posix processes options

-

If the application supports it and Posix shared memory is supported by the OS then -the following option is available:

-
-
---procs[=count] -
-
-

-Fork count worker processes. The default count is the number of CPUs in the system. -

-
-
-

Note that MacOS X only supports Posix shared memory from version 10.7 (Lion) -onwards.

-
-
-

MPI options

-

If the application supports it and MPI support was compiled into the binary then -the following options are available:

-
-
---workers=count -
-
-

-Start the program with count MPI workers. -

-
-
---mpirun=mpirun arguments -
-
-

-Invoke mpirun with the given arguments. -

-
-
---mpi -
-
-

-Ignore --workers and --mpirun options and start the MPI runtime. -

-
-
-
-
-
-

General Options

-
-
--v -
-
-

-Increase the level of verbosity -

-
-
--q -
-
-

-Be quiet; do not print anything to the terminal. -

-
-
---debug=file -
-
-

-Enable debugging output for file. -

-
-
---version -
-
-

-Print version string of this tool. -

-
-
--h, --help -
-
-

-Print help text -

-
-
---usage -
-
-

-Print short usage summary. -

-
-
---stats -
-
-

-Enable statistics gathering/printing. -

-
-
---where -
-
-

-Include file and line number in debug messages. -

-
-
---when -
-
-

-Include the wall time since program start in all messages. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/mapa2lts-sym.html b/assets/man/mapa2lts-sym.html deleted file mode 100644 index 5a5833db9..000000000 --- a/assets/man/mapa2lts-sym.html +++ /dev/null @@ -1,1938 +0,0 @@ - - - - - -mapa2lts-sym(1) - - - - - -
-
-

SYNOPSIS

-
-

mapa2lts-sym [OPTION]… file.mapa [outfile.etf]

-
-
-
-

DESCRIPTION

-
-

mapa2lts-sym performs a reachability analysis on a specification provided -in file.mapa. Specifications are in mapa or prcrl. outfile.etf -specifies the name of the output archive, written in etf(5) -format.

-
-
-
-

OPTIONS

-
-
-
---order=ORDER -
-
-

- Select the exploration strategy: bfs-prev, bfs, chain-prev, - or chain. With bfs-prev and bfs, breadth-first search is - used. Here, bfs-prev only considers the states found at the - previous level, while bfs considers the whole visited set. With - chain-prev and chain, a chaining strategy is used. Here, - chain-prev at each level starts from the states found at the - previous level, while chain uses the whole visited set. Defaults - to bfs-prev. -

-

When using breadth-first search, the tool performs the next state computation -for all edge groups on the current level or current set of visited states. -Chaining means to apply next state for the first group to the visited -states, then apply next-state for the second group to the result, -etc. Thus, a chaining analysis can be completed in much less -iterations than a BFS analysis.

-
-
---saturation=SATURATION -
-
-

- Select a saturation strategy: none, sat-like, sat-loop, sat-fix, - sat. The sat-like strategy goes up and down the levels of the BDD - used to represent the state space. The sat-loop strategy loops over - the levels. The sat-fix strategy repeatedly performs a fixpoint - computation using saturation. The sat strategy does saturation as - described in the literature with on-the-fly expansion of the transition - relations. Defaults to none, i.e. no saturation. -

-

All strategies except sat-fix and sat work in combination with the order -to saturate levels.

-
-
---sat-granularity=GRANULARITY -
-
-

- Select the granularity of sat-like and sat-loop strategies. The - granularity indicates how many BDD levels are considered at the same - time. Defaults to 10. -

-
-
---save-sat-levels -
-
-

- Save the previous states seen at saturation levels. This option has - effect for any of the saturation strategies in combination with either - bfs-prev or chain-prev. -

-
-
---guidance=STRATEGY -
-
-

- Select a search strategy for searching for actions: unguided, - directed. The unguided strategy considers all transition - groups. The directed strategy focuses the search on the transition - groups in which the action occurs. Defaults to unguided. -

-
-
---dot=DIR -
-
-

- If this option is supplied DIR is a directory to which dot files of vector sets are written to. - Note that this option should only be used for smaller vector sets because of disk space. -

-

Three type of dot files are (over)written:

-
    -
  1. -

    -current-l<L>.dot: the nodes in the vector set at level L (and only level L), -

    -
  2. -
  3. -

    -visited-l<L>.dot: the nodes in the vector set up to and included level L, -

    -
  4. -
  5. -

    -group_next-l<L>-k<K>.dot: the nodes in the transition relation of group K at level L. -

    -
  6. -
-
-
---mu=MUFILE|MUFORMULA -
-
-

- After computing all reachable states, evaluate the mu-formula in MUFILE -

-

MUFILE is a file containing a Mu Calculus formula (see -ltsmin-mu(5)). Alternatively, the formula can be provide directly as -MUFORMULA. This formula is a propositional formula with least and greatest -fixpoint operator. It will be evaluated after generation of the complete state -space.

-
-
---ctl-star=CTLFILE|CTLFORMULA -
-
-

- CTLFILE is a file containing an Linear Temporal Logic Star (CTL*) formula - (see ltsmin-ctl(5)). Which content can also be provided directly as - CTLFORMULA. - The formula is translated to a mu-formula (see ltsmin-mu(5)), - which is evaluated after computing all reachable states. -

-
-
---no-matrix -
-
-

- Do not print the dependency matrix if -v (verbose) is used. -

-
-
---no-soundness-check -
-
-

- When using --pins-guards=assume-true disable the soundness check of the model specification. - The soundness check may be expensive and can be disabled when the model specification is known to be sound. - A guard may not evaluate to true or false but to maybe. A guard which evaluates to maybe depends on - the evaluation of another guard. For languages such as Promela and DVE it checks whether if - a guard evaluates to maybe there is another guard on the left which evaluates to false. For languages such as - mCRL2 it also checks whether a guard on the right evaluates to false. If for all states this holds then the - model specification is sound for guard-splitting. -

-
-
---precise -
-
-

- Compute the final number of states precisely. -

-
-
---next-union -
-
-

- If supported by the vset implementation; perform the computation of successor states simultaneously with unifying - the current states. Simultaneously, means with a single BDD/MDD operation. -

-
-
---inv-par -
-
-

- Checks all invariants in parallel. -

-
-
---inv-bin-par -
-
-

- Checks both sides of a binary operand in parallel in an invariant, requires --inv-par. - Note that this option may actually slow down invariant checking, because parallelization - of a binary operand disables short-circuit evaluation. -

-
-
-
-

Scoop Options

-
-
---const=<var>=<val> -
-
-

- define constant <var> as <val> -

-
-
---max-progress=<actions> -
-
-

- Specify the set of actions for which - maximal progress has to be enabled. The - default is all, meaning that all - actions are prioritised. The other - settings are tau, to prioritise just - the tau steps and none to disable - maximal progress -

-
-
---confluence -
-
-

- Detect confluent summands and write confluent matrix. - If the backend tool support tau confluence (e.g. pins2lts-dist) then - this lead to on-the-fly reduction of the state space. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Symbolic Parity Game Options

-

A symbolic parity game can be generated either by using the --mucalc -option or by using the PBES language module.

-
-
---pg-solve -
-
-

- Solve the generated parity game. -

-
-
---pg-reduce -
-
-

- Reduce the generated parity game on-the-fly (experimental). -

-
-
---pg-write=FILE -
-
-

- Writes a symbolic parity game to FILE. -

-
-
-
-
-

Symbolic Parity Game Solver Options

-
-
---attr=default|chain|par|par2 -
-
-

- Choose attractor function. -

-

Available attractor functions:

-
-
-default -
-
-

- Straightforward attractor computation. -

-
-
-chain -
-
-

- Chaining attractor, applies transition groups in a different order - than default in computing an attractor level. -

-
-
-par -
-
-

- Spawns parallel tasks to compute forward and backward steps for each - attractor level. -

-
-
-par2 -
-
-

- Spawns more parallel tasks than par, by applying forward steps in - parallel to the result of the backward steps of the different - transition groups. -

-
-
-
-
---saturating-attractor -
-
-

- Use saturation in the chaining attractor. -

-
-
---pg-write-dot -
-
-

- Write dot files to disk during parity game solving for debugging. -

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/opaal2lts-mc.html b/assets/man/opaal2lts-mc.html deleted file mode 100644 index c33f1e7f2..000000000 --- a/assets/man/opaal2lts-mc.html +++ /dev/null @@ -1,1928 +0,0 @@ - - - - - -opaal2lts-mc(1) - - - - - -
-
-

SYNOPSIS

-
-

opaal2lts-mc [OPTION]… input<_.so|_.xml>

-
-
-
-

DESCRIPTION

-
-

opaal2lts-mc performs multi-core reachability on the labelled transition system -from a compiled specification provided in input.xml or intput.so (precompiled).

-

https://code.launchpad.net/~opaal-developers/opaal/ -opaal-ltsmin-succgen[opaal] is an open source implementation of the -UPPAAL model checker. It was extended to generate successor generators for -the LTSmin PINS interface. Therefore the PINS interface was extended to -support the semi-symbolic states in timed automata. -For more details on the multi-core timed-automata implementation, refer -to Multi-Core Reachability for Timed Automata

-
-
-
-

OPTIONS

-
-
-
---threads=NUMBER -
-
-

- Number of threads to use for state space exploration - (default: NUMBER=NUM_CORES). Maximum is 64. -

-
-
---strategy=TYPE -
-
-

- Select an exploration strategy. - TYPE can be one of the following options: -

-
-
-sbfs -
-
-

- explore state space in strict breadth-first order (default). Gives best result - in the timed automata setting. -

-
-
-bfs -
-
-

- explore state space in breadth-first order. -

-
-
-dfs -
-
-

- explore state space in relaxed depth-first order. Relaxed meaning that - the inclusion check on the set of visited states is executed immediately - after generating a state. This saves stack space and improves performance - of the parallel reachability analysis. -

-
-
-
-
---perm=TYPE -
-
-

- Select the transition permutation, which is used to guide - different threads to different parts of the state space. - A good permutation can significantly speed up bug hunting. - TYPE can be one of the following options, each has - different properties in terms of performance and effectiveness - summarized as (perf./eff.) : -

-
-
-dynamic -
-
-

- use "fresh successor heuristics" described in - "Variations on Multi-Core Nested Depth-First Search" (Laarman, van de Pol). - (decent/very good for bug hunting). Default for LTL. -

-
-
-sort -
-
-

- sort on the unique id of the successor state (decent/good) -

-
-
-random -
-
-

- use multiple fixed random permutation schemes per worker (decent/good). -

-
-
-rr -
-
-

- randomized using a full random sort order on the states. This is more random - than the previous option, but requires more pre-computation time for the - random array (decent/almost perfect). -

-
-
-sr -
-
-

- sort according to one fixed random permutation scheme per worker (decent/decent). -

-
-
-shift -
-
-

- shift the order of transitions by a fixed value per worker (fast/decent). -

-
-
-shiftall -
-
-

- as shift, but with a equal load for all workers (a bit slower/decent). -

-
-
-otf -
-
-

- sort according to a dynamic permutation scheme (slow/perfect). -

-
-
-none -
-
-

- use the same exploration order for all workers. Default for reachability. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-table -
-
-

- use a lockless hash table. -

-
-
-tree -
-
-

- use a lockless tree-compressed table. In many cases the tree - can compress states to two integers regardless of their length. To efficiently - accommodate more than 4*10^9 states, the table is split in a root and a leaf - table whose respective size can be adjusted using the --ratio option - (default). -

-
-
-cleary-tree -
-
-

- use a lockless tree-compressed hash table with a parallel Cleary table to - store roots. The compressed size of a state can approach one integer - with this approach. The leafs table is stored as a standard tree table (two - integers per subtree), which typically can be much smaller (up to the - square root of the root table size). To control the respective size of the - leaf table use the --ratio option. -

-
-
-
-
---ratio=NUMBER -
-
-

- Log_2 ratio between root and leaf table in tree compression. The ratio - can theoretically be as low as the square root of the root table size - (see --size). This will however only work if the state vectors are - perfectly combinatorial wrt their variable values. In most cases - the leaf table will grow larger, but find found that a factor four - (--ratio=2) works well for over 75% of the BEEM models. - (default: NUMBER=2). -

-
-
---size=NUMBER -
-
-

- Log_2 hash table size in elements (default: NUMBER=24). - This is also used for the internal node table of the tree. -

-
-
---handoff=NUMBER -
-
-

- Maximum number of states to hand off to a thread requesting load - (default: NUMBER=100). The operation may be expensive, depending - on the size of the states. -

-
-
---gran=NUMBER -
-
-

- Granularity at which control is handed back to the load balancer - (default: NUMBER=100). Higher values may reduce runtime - overhead, but decrease the performance of the load balancer. - The state space explorer uses the number of transitions as work - counter. -

-
-
---noref -
-
-

- Store full state vectors on queue/stack. This is usually a bit faster, - but requires more memory. Incompatible with the swarmed algorithms. -

-
-
---zobrist=NUMBER -
-
-

- Save time by using zobrist incremental state hashing. - NUMBER defines the (log_2) size of the random number table - (default: 0=OFF). Large tables mean better hash distributions, - but more cache misses due to memory size. - Experiments have shown that small tables (2^6) suffice for - good distributions (equal or better than Jenkin’s hash). - Improvements are only noticable for fast state generators, like - DiVinE 2.2 (dve22lts-mc(1)). -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/pbes2lts-dist.html b/assets/man/pbes2lts-dist.html deleted file mode 100644 index 789be1a40..000000000 --- a/assets/man/pbes2lts-dist.html +++ /dev/null @@ -1,1749 +0,0 @@ - - - - - -pbes2lts-dist(1) - - - - - -
-
-

SYNOPSIS

-
-

pbes2lts-dist [OPTIONS]… input.pbes [output.fmt]

-
-
-
-

DESCRIPTION

-
-

pbes2lts-dist performs a reachability analysis on a specification provided -in input.pbes. Specifications are in pbes format and are commonly -generated by lps2pbes(1). output.fmt specifies the name of -the output archive. The desired format is deduced from the filename -extension. Available formats are described below.

-

Using the option --workers=N, this tool starts the command mpirun silently -in the background with the suitable options, i.e. -np 4. -Alternatively, one may wish to call mpirun with additional options. This can -be done using the --mpi option, e.g.:

-
-
-
mpirun -np 4 -mca btl tcp,self {manname} --mpi
-
-
-
-
-

OPTIONS

-
-
-
---nice=LEVEL -
-
-

- Set the nice level of all worker processes. This is useful - when running on other people’s workstations. -

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
---filter=<patternlist> -
-
-

- Select the labels to be written to file from the - state vector elements, state labels and edge labels. - The argument is a semicolon separated list of shell - file patterns. Each pattern may be prefixed with "!" to - exclude a set of labels. If none of the patterns matches the default - is to exclude the label. Hence, all labels starting with - an "x" are specified as "x*". The complement all labels, - except those starting with an "x" are specified as "!x*;*". -

-
-
---cost=<edge label> -
-
-

- The given edge labels defines the cost of an edge. Based on this cost, - the lowest cost for reaching every state is computed. Moreover, the order - in which states are explored is such that lower cost states are explored - before higher costs ones. The levels reported when this options is in effect are - cost levels. The counter-example traces are guaranteed to be a lowest cost path. - However, the length of the trace may not be minimal. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

mCRL2 Options

-
-
---mcrl2=OPTIONS -
-
-

- Pass options to the mCRL2 library. - Defaults to "--rewriter=jittyc". -

-

The "--rewriter=<rewriter>" option is the only recognized option. -Possible rewriters are jitty and jittyc.

-
-
---mcrl2-finite-types -
-
-

- Use mCRL2 finite type information. -

-

Enabling this option may cause premature termination in case non-normal-form -instances of finite types occur in the state space. This will be the case, -e.g., when the specification has been pre-processed using -lpsparunfold(1).

-
-
---mcrl2-readable-edge-labels -
-
-

- Use human readable edge labels. -

-

Enabling this option may cause problems during bisimulation reduction, e.g., -the edge labels l(0) with 0 of type Nat and l(0) with 0 of type Pos will be -mapped to the same string.

-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Hybrid Runtime Options

-

The Hybrid Runtime Environment provides startup options for several parallel architectures.

-
-

Posix threads options

-

If the application supports it and Posix threads are supported by the OS then -the following option is available:

-
-
---threads[=count] -
-
-

-Start count worker threads. The default count is the number of CPU’s in the system. -

-
-
-
-
-

Posix processes options

-

If the application supports it and Posix shared memory is supported by the OS then -the following option is available:

-
-
---procs[=count] -
-
-

-Fork count worker processes. The default count is the number of CPUs in the system. -

-
-
-

Note that MacOS X only supports Posix shared memory from version 10.7 (Lion) -onwards.

-
-
-

MPI options

-

If the application supports it and MPI support was compiled into the binary then -the following options are available:

-
-
---workers=count -
-
-

-Start the program with count MPI workers. -

-
-
---mpirun=mpirun arguments -
-
-

-Invoke mpirun with the given arguments. -

-
-
---mpi -
-
-

-Ignore --workers and --mpirun options and start the MPI runtime. -

-
-
-
-
-
-

General Options

-
-
--v -
-
-

-Increase the level of verbosity -

-
-
--q -
-
-

-Be quiet; do not print anything to the terminal. -

-
-
---debug=file -
-
-

-Enable debugging output for file. -

-
-
---version -
-
-

-Print version string of this tool. -

-
-
--h, --help -
-
-

-Print help text -

-
-
---usage -
-
-

-Print short usage summary. -

-
-
---stats -
-
-

-Enable statistics gathering/printing. -

-
-
---where -
-
-

-Include file and line number in debug messages. -

-
-
---when -
-
-

-Include the wall time since program start in all messages. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/pbes2lts-mc.html b/assets/man/pbes2lts-mc.html deleted file mode 100644 index f9ffef851..000000000 --- a/assets/man/pbes2lts-mc.html +++ /dev/null @@ -1,1979 +0,0 @@ - - - - - -pbes2lts-mc(1) - - - - - -
-
-

SYNOPSIS

-
-

pbes2lts-mc [OPTION]… input.pbes

-
-
-
-

DESCRIPTION

-
-

pbes2lts-mc performs multi-core reachability and LTL model checking on the -labelled transition system from a compiled -specification provided in input.pbes. Specifications are in pbes format -and are commonly generated by lps2pbes(1). -Because the pbes depends on libraries that are not thread-safe, this tool -uses processes instead of threads (--procs). -LTS output is not supported by this tool, use the distributed tools instead.

-
-
-
-

OPTIONS

-
-
-
---threads=NUMBER -
-
-

- Number of threads to use for state space exploration - (default: NUMBER=NUM_CORES). Maximum is 64. -

-
-
---strategy=TYPE -
-
-

- Select an exploration strategy. Two kinds of algorithms - are available: LTL model checking and reachability. - The multi-core LTL algorithms (Nested DFS) are implemented - in a swarmed fashion, however with a shared state storage. - On top of that, MCNDFS and ENDFS offer work sharing between threads - and can deliver speedups for some models. - Note that the LTL algorithms require buchi automata as input. - Such a model can be provided directly by the language frontend, - i.e., DiVinE property models are supported, or by the LTL - layer (see --ltl). - Note finally that strict reachability exploration orders - are not guaranteed by all multi-core search strategies. - TYPE can be one of the following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-sbfs -
-
-

- explore state space in strict breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in relaxed depth-first order. Relaxed meaning that - the inclusion check on the set of visited states is executed immediately - after generating a state. This saves stack space and improves performance - of the parallel reachability analysis. -

-
-
-ndfs -
-
-

- multi-core swarmed Nested Depth-First Search (Courcoubetis et al.). -

-
-
-nndfs -
-
-

- multi-core swarmed New Nested Depth-First Search (Schwoon, Esparza). -

-
-
-ldfs -
-
-

- Multi-Core Nested Depth-First Search (Laarman, Langerak, van de Pol, Weber, Wijs). -

-
-
-endfs -
-
-

- Multi-Core Nested Depth-First Search by Evangelista et al. The algorithm has - been adapted with the cyan color encoding and early cycle detection, as - described in "Variations on Multi-Core Nested Depth-First Search" - (Laarman, van de Pol). - Note that ENDFS requires a repair procedure, NNDFS is chosen by default. - Alternatives can be chosen by providing a list of strategies, for example: - "endfs,mcndfs", yields the NMC-NDFS algorithm as described in the Variations - paper (with load balancing). - Finally, we also allow multiple levels of ENDFS to be combined: - "endfs,endfs,nndfs". -

-
-
-cndfs -
-
-

- New CNDFS algorithm. - Multi-Core Nested Depth-First Search (Evangelista, Laarman, Petrucci, van de Pol). -

-
-
-tarjan -
-
-

- Tarjan’s sequential SCC algorithm. - Depth-First Search and Linear Graph Algorithms (Tarjan). -

-
-
-renault -
-
-

- Renault’s SCC algorithm. - Parallel Explicit Model Checking for Generalized Büchi Automata (Renault et al.). -

-
-
-ufscc -
-
-

- The UFSCC SCC algorithm. - Multi-Core On-The-Fly SCC Decomposition (Bloemen, Laarman, van de Pol). -

-
-
-
-
---perm=TYPE -
-
-

- Select the transition permutation, which is used to guide - different threads to different parts of the state space. - A good permutation can significantly speed up bug hunting. - TYPE can be one of the following options, each has - different properties in terms of performance and effectiveness - summarized as (perf./eff.) : -

-
-
-dynamic -
-
-

- use "fresh successor heuristics" described in - "Variations on Multi-Core Nested Depth-First Search" (Laarman, van de Pol). - (decent/very good for bug hunting). Default for LTL. -

-
-
-sort -
-
-

- sort on the unique id of the successor state (decent/good) -

-
-
-random -
-
-

- use multiple fixed random permutation schemes per worker (decent/good). -

-
-
-rr -
-
-

- randomized using a full random sort order on the states. This is more random - than the previous option, but requires more pre-computation time for the - random array (decent/almost perfect). -

-
-
-shift -
-
-

- shift the order of transitions by a fixed value per worker (fast/decent). -

-
-
-otf -
-
-

- sort according to a dynamic permutation scheme (slow/perfect). -

-
-
-none -
-
-

- use the same exploration order for all workers. Default for reachability. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-table -
-
-

- use a lockless hash table. -

-
-
-tree -
-
-

- use a lockless tree-compressed table. In many cases the tree - can compress states to two integers regardless of their length. To efficiently - accommodate more than 4*10^9 states, the table is split in a root and a leaf - table whose respective size can be adjusted using the --ratio option - (default). -

-
-
-cleary-tree -
-
-

- use a lockless tree-compressed hash table with a parallel Cleary table to - store roots. The compressed size of a state can approach one integer - with this approach. The leafs table is stored as a standard tree table (two - integers per subtree), which typically can be much smaller (up to the - square root of the root table size). To control the respective size of the - leaf table use the --ratio option. -

-
-
-
-
---ratio=NUMBER -
-
-

- Log_2 ratio between root and leaf table in tree compression. The ratio - can theoretically be as low as the square root of the root table size - (see --size). This will however only work if the state vectors are - perfectly combinatorial wrt their variable values. In most cases - the leaf table will grow larger, but find found that a factor four - (--ratio=2) works well for over 75% of the BEEM models. - (default: NUMBER=2). -

-
-
---size=NUMBER -
-
-

- Log_2 hash table size in elements (default: NUMBER=24). - This is also used for the internal node table of the tree. -

-
-
---zobrist=NUMBER -
-
-

- Save time by using zobrist incremental state hashing. - NUMBER defines the (log_2) size of the random number table - (default: 0=OFF). Large tables mean better hash distributions, - but more cache misses due to memory size. - Experiments have shown that small tables (2^6) suffice for - good distributions (equal or better than Jenkin’s hash). - Improvements are only noticable for fast state generators, like - DiVinE 2.2 (dve22lts-mc(1)). -

-
-
---max=NUMBER -
-
-

- Maximum search depth. -

-
-
---proviso=PROVISO -
-
-

- Change the proviso implementation for partial order reduction in presence - of safety properties or liveness properties. Parallel LTL is only supported - with the cndfs proviso in the cndfs search strategy. Sequentially, LTL is - also supported the stack proviso in the ndfs search strategy. - PROVISO can be either: -

-
-
-force-none -
-
-

- Disables the ignoring proviso check (only useful for benchmarking or - bug hunting). -

-
-
-closed-set -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack proviso. It works with both - the dfs and (p/s)bfs exploration strategies. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs or ndfs search strategy (for resp. safety or LTL properties). -

-
-
-cndfs -
-
-

- A special parallel cycle proviso is used to enable POR with multi-core - LTL model checking using the cndfs search strategy. -

-
-
-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/pbes2lts-seq.html b/assets/man/pbes2lts-seq.html deleted file mode 100644 index a7be37f6b..000000000 --- a/assets/man/pbes2lts-seq.html +++ /dev/null @@ -1,2059 +0,0 @@ - - - - - -pbes2lts-seq(1) - - - - - -
-
-

SYNOPSIS

-
-

pbes2lts-seq [OPTION]… input'.pbes ['output.fmt]

-
-
-
-

DESCRIPTION

-
-

pbes2lts-seq generates a parity game from a specification -provided in input.pbes by enumerative reachability analysis using a -general state expanding algorithm. Specifications are in pbes format -and are commonly generated by lps2pbes(1). -output.fmt specifies the name of -the output archive. The desired format is deduced from the filename -extension. Available formats are described below.

-
-
-
-

OPTIONS

-
-
-
---strategy=TYPE -
-
-

- Select exploration strategy. TYPE can be one of the - following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in depth-first order. -

-
-
-scc -
-
-

- perform LTL model checking based on Buchi automata with Couvreur’s - algorithm (accepting cycle detection). This requires an accepting - state label to be present. See below. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-tree -
-
-

- use a tree-compressed hash table (default). -

-
-
-table -
-
-

- use a hash table. -

-
-
-vset -
-
-

- use a vector set (decision diagram). -

-
-
-
-
---max=DEPTH -
-
-

- Maximum search depth, search until DEPTH. -

-
-
---proviso=closedset|stack|color -
-
-

- Change the proviso implementation for partial order reduction (ltl) -

-

Change the proviso used to detect that an accepting cycle is closed. -Three options are available, the default is closedset.

-
-
-closedset -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack or color proviso. It works with both - the dfs- and bfs exploration strategy. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs/scc search strategy (since bfs has no stack). -

-
-
-color -
-
-

- The color proviso requires a lot of extra work and memory - but can significantly improve the reduction. It too works - only with the dfs/scc search strategies. -

-
-
-
-
-
-

mCRL2 Options

-
-
---mcrl2=OPTIONS -
-
-

- Pass options to the mCRL2 library. - Defaults to "--rewriter=jittyc". -

-

The "--rewriter=<rewriter>" option is the only recognized option. -Possible rewriters are jitty and jittyc.

-
-
---mcrl2-finite-types -
-
-

- Use mCRL2 finite type information. -

-

Enabling this option may cause premature termination in case non-normal-form -instances of finite types occur in the state space. This will be the case, -e.g., when the specification has been pre-processed using -lpsparunfold(1).

-
-
---mcrl2-readable-edge-labels -
-
-

- Use human readable edge labels. -

-

Enabling this option may cause problems during bisimulation reduction, e.g., -the edge labels l(0) with 0 of type Nat and l(0) with 0 of type Pos will be -mapped to the same string.

-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/pbes2lts-sym.html b/assets/man/pbes2lts-sym.html deleted file mode 100644 index 0ff9af55d..000000000 --- a/assets/man/pbes2lts-sym.html +++ /dev/null @@ -1,1942 +0,0 @@ - - - - - -pbes2lts-sym(1) - - - - - -
-
-

SYNOPSIS

-
-

pbes2lts-sym [OPTION]… input.pbes [output.etf]

-
-
-
-

DESCRIPTION

-
-

pbes2lts-sym performs a reachability analysis on a specification provided -in input.pbes. Specifications are in pbes format and are commonly -generated by lps2pbes(1). output.etf specifies the name -of the output archive, written in etf(5) format.

-
-
-
-

OPTIONS

-
-
-
---order=ORDER -
-
-

- Select the exploration strategy: bfs-prev, bfs, chain-prev, - or chain. With bfs-prev and bfs, breadth-first search is - used. Here, bfs-prev only considers the states found at the - previous level, while bfs considers the whole visited set. With - chain-prev and chain, a chaining strategy is used. Here, - chain-prev at each level starts from the states found at the - previous level, while chain uses the whole visited set. Defaults - to bfs-prev. -

-

When using breadth-first search, the tool performs the next state computation -for all edge groups on the current level or current set of visited states. -Chaining means to apply next state for the first group to the visited -states, then apply next-state for the second group to the result, -etc. Thus, a chaining analysis can be completed in much less -iterations than a BFS analysis.

-
-
---saturation=SATURATION -
-
-

- Select a saturation strategy: none, sat-like, sat-loop, sat-fix, - sat. The sat-like strategy goes up and down the levels of the BDD - used to represent the state space. The sat-loop strategy loops over - the levels. The sat-fix strategy repeatedly performs a fixpoint - computation using saturation. The sat strategy does saturation as - described in the literature with on-the-fly expansion of the transition - relations. Defaults to none, i.e. no saturation. -

-

All strategies except sat-fix and sat work in combination with the order -to saturate levels.

-
-
---sat-granularity=GRANULARITY -
-
-

- Select the granularity of sat-like and sat-loop strategies. The - granularity indicates how many BDD levels are considered at the same - time. Defaults to 10. -

-
-
---save-sat-levels -
-
-

- Save the previous states seen at saturation levels. This option has - effect for any of the saturation strategies in combination with either - bfs-prev or chain-prev. -

-
-
---guidance=STRATEGY -
-
-

- Select a search strategy for searching for actions: unguided, - directed. The unguided strategy considers all transition - groups. The directed strategy focuses the search on the transition - groups in which the action occurs. Defaults to unguided. -

-
-
---dot=DIR -
-
-

- If this option is supplied DIR is a directory to which dot files of vector sets are written to. - Note that this option should only be used for smaller vector sets because of disk space. -

-

Three type of dot files are (over)written:

-
    -
  1. -

    -current-l<L>.dot: the nodes in the vector set at level L (and only level L), -

    -
  2. -
  3. -

    -visited-l<L>.dot: the nodes in the vector set up to and included level L, -

    -
  4. -
  5. -

    -group_next-l<L>-k<K>.dot: the nodes in the transition relation of group K at level L. -

    -
  6. -
-
-
---mu=MUFILE|MUFORMULA -
-
-

- After computing all reachable states, evaluate the mu-formula in MUFILE -

-

MUFILE is a file containing a Mu Calculus formula (see -ltsmin-mu(5)). Alternatively, the formula can be provide directly as -MUFORMULA. This formula is a propositional formula with least and greatest -fixpoint operator. It will be evaluated after generation of the complete state -space.

-
-
---ctl-star=CTLFILE|CTLFORMULA -
-
-

- CTLFILE is a file containing an Linear Temporal Logic Star (CTL*) formula - (see ltsmin-ctl(5)). Which content can also be provided directly as - CTLFORMULA. - The formula is translated to a mu-formula (see ltsmin-mu(5)), - which is evaluated after computing all reachable states. -

-
-
---no-matrix -
-
-

- Do not print the dependency matrix if -v (verbose) is used. -

-
-
---no-soundness-check -
-
-

- When using --pins-guards=assume-true disable the soundness check of the model specification. - The soundness check may be expensive and can be disabled when the model specification is known to be sound. - A guard may not evaluate to true or false but to maybe. A guard which evaluates to maybe depends on - the evaluation of another guard. For languages such as Promela and DVE it checks whether if - a guard evaluates to maybe there is another guard on the left which evaluates to false. For languages such as - mCRL2 it also checks whether a guard on the right evaluates to false. If for all states this holds then the - model specification is sound for guard-splitting. -

-
-
---precise -
-
-

- Compute the final number of states precisely. -

-
-
---next-union -
-
-

- If supported by the vset implementation; perform the computation of successor states simultaneously with unifying - the current states. Simultaneously, means with a single BDD/MDD operation. -

-
-
---inv-par -
-
-

- Checks all invariants in parallel. -

-
-
---inv-bin-par -
-
-

- Checks both sides of a binary operand in parallel in an invariant, requires --inv-par. - Note that this option may actually slow down invariant checking, because parallelization - of a binary operand disables short-circuit evaluation. -

-
-
-
-

mCRL2 Options

-
-
---mcrl2=OPTIONS -
-
-

- Pass options to the mCRL2 library. - Defaults to "--rewriter=jittyc". -

-

The "--rewriter=<rewriter>" option is the only recognized option. -Possible rewriters are jitty and jittyc.

-
-
---mcrl2-finite-types -
-
-

- Use mCRL2 finite type information. -

-

Enabling this option may cause premature termination in case non-normal-form -instances of finite types occur in the state space. This will be the case, -e.g., when the specification has been pre-processed using -lpsparunfold(1).

-
-
---mcrl2-readable-edge-labels -
-
-

- Use human readable edge labels. -

-

Enabling this option may cause problems during bisimulation reduction, e.g., -the edge labels l(0) with 0 of type Nat and l(0) with 0 of type Pos will be -mapped to the same string.

-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Symbolic Parity Game Options

-

A symbolic parity game can be generated either by using the --mucalc -option or by using the PBES language module.

-
-
---pg-solve -
-
-

- Solve the generated parity game. -

-
-
---pg-reduce -
-
-

- Reduce the generated parity game on-the-fly (experimental). -

-
-
---pg-write=FILE -
-
-

- Writes a symbolic parity game to FILE. -

-
-
-
-
-

Symbolic Parity Game Solver Options

-
-
---attr=default|chain|par|par2 -
-
-

- Choose attractor function. -

-

Available attractor functions:

-
-
-default -
-
-

- Straightforward attractor computation. -

-
-
-chain -
-
-

- Chaining attractor, applies transition groups in a different order - than default in computing an attractor level. -

-
-
-par -
-
-

- Spawns parallel tasks to compute forward and backward steps for each - attractor level. -

-
-
-par2 -
-
-

- Spawns more parallel tasks than par, by applying forward steps in - parallel to the result of the backward steps of the different - transition groups. -

-
-
-
-
---saturating-attractor -
-
-

- Use saturation in the chaining attractor. -

-
-
---pg-write-dot -
-
-

- Write dot files to disk during parity game solving for debugging. -

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/pins-open.html b/assets/man/pins-open.html deleted file mode 100644 index 22fe5791f..000000000 --- a/assets/man/pins-open.html +++ /dev/null @@ -1,845 +0,0 @@ - - - - - -pins-open(1) - - - - - -
-
-

SYNOPSIS

-
-

pins-open model.type [cc_options] app[.a|.c|.o] [app_options]

-

pins-open [OPTION]…

-
-
-
-

DESCRIPTION

-
-

pins-open provides the OPEN/CAESAR interface for state space -generators which themselves provide a LTSmin PINS interface. -Supporting PINS libraries which correspond to the type of model -are linked to an OPEN/CAESAR application app[.a|.c|.o]. The -resulting executable app is then executed.

-

pins-open follows the OPEN/CAESAR command line conventions.

-
-
-
-

OPTIONS

-
-
-
---version -
-
-

- Print version information of this tool. -

-
-
--h, --help -
-
-

- Print help text. -

-
-
-
-
-
-

EXAMPLES

-
-

Run the declarator test application (provided by -CADP) with the mcrl(1) -specification brp.tbf:

-
-
-
{manname} brp.tbf declarator
-
-

Output:

-
-
-
{manname}: running ``declarator'' for ``brp.tbf''
-
-*** checking compatibility of ``./declarator''
-
-declarator: loading model from brp.tbf
-MCRL grey box: Start compiling ...
-MCRL grey box: .... end compiling.
-declarator: hiding the state.
-declarator: creating a new string index
-declarator: creating a new string index
-declarator: model brp.tbf loaded
-declarator: length is 21, there are 45 groups
-declarator: There are 0 state labels and 1 edge labels
-declarator: CAESAR_HINT_SIZE_STATE=84 CAESAR_HINT_SIZE_LABEL=4
-*** general parameters
-
-[...]
-
-*** state #1
-
-CAESAR_COPY_STATE : OK
-CAESAR_COMPARE_STATE : OK
-
-[...]
-
-
-
-
-

SEE ALSO

- -
-
-

- - - diff --git a/assets/man/pins2lts-dist.html b/assets/man/pins2lts-dist.html deleted file mode 100644 index 48d7437d8..000000000 --- a/assets/man/pins2lts-dist.html +++ /dev/null @@ -1,1724 +0,0 @@ - - - - - -pins2lts-dist(1) - - - - - -
-
-

SYNOPSIS

-
-

pins2lts-dist --loader=<plugin> [OPTION]… <input> [output.fmt] -pins2lts-dist [OPTION]… <model.so> [output.fmt]

-
-
-
-

DESCRIPTION

-
-

pins2lts-dist generates a labelled transition system from a -specification provided as a plugin/input pair. output.fmt -specifies the name of the output archive. The desired format is -deduced from the filename extension. Available formats are described -below.

-

Using the option --workers=N, this tool starts the command mpirun silently -in the background with the suitable options, i.e. -np 4. -Alternatively, one may wish to call mpirun with additional options. This can -be done using the --mpi option, e.g.:

-
-
-
mpirun -np 4 -mca btl tcp,self {manname} --mpi
-
-
-
-
-

OPTIONS

-
-
-
---nice=LEVEL -
-
-

- Set the nice level of all worker processes. This is useful - when running on other people’s workstations. -

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
---filter=<patternlist> -
-
-

- Select the labels to be written to file from the - state vector elements, state labels and edge labels. - The argument is a semicolon separated list of shell - file patterns. Each pattern may be prefixed with "!" to - exclude a set of labels. If none of the patterns matches the default - is to exclude the label. Hence, all labels starting with - an "x" are specified as "x*". The complement all labels, - except those starting with an "x" are specified as "!x*;*". -

-
-
---cost=<edge label> -
-
-

- The given edge labels defines the cost of an edge. Based on this cost, - the lowest cost for reaching every state is computed. Moreover, the order - in which states are explored is such that lower cost states are explored - before higher costs ones. The levels reported when this options is in effect are - cost levels. The counter-example traces are guaranteed to be a lowest cost path. - However, the length of the trace may not be minimal. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

Plugin Options

-
-
---loader=<plugin> -
-
-

-Load the given dynamic library, which must contain a language module. -

-

To get help about the options of a plugin, use

-

pins2lts-dist --loader=<plugin> --help

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Hybrid Runtime Options

-

The Hybrid Runtime Environment provides startup options for several parallel architectures.

-
-

Posix threads options

-

If the application supports it and Posix threads are supported by the OS then -the following option is available:

-
-
---threads[=count] -
-
-

-Start count worker threads. The default count is the number of CPU’s in the system. -

-
-
-
-
-

Posix processes options

-

If the application supports it and Posix shared memory is supported by the OS then -the following option is available:

-
-
---procs[=count] -
-
-

-Fork count worker processes. The default count is the number of CPUs in the system. -

-
-
-

Note that MacOS X only supports Posix shared memory from version 10.7 (Lion) -onwards.

-
-
-

MPI options

-

If the application supports it and MPI support was compiled into the binary then -the following options are available:

-
-
---workers=count -
-
-

-Start the program with count MPI workers. -

-
-
---mpirun=mpirun arguments -
-
-

-Invoke mpirun with the given arguments. -

-
-
---mpi -
-
-

-Ignore --workers and --mpirun options and start the MPI runtime. -

-
-
-
-
-
-

General Options

-
-
--v -
-
-

-Increase the level of verbosity -

-
-
--q -
-
-

-Be quiet; do not print anything to the terminal. -

-
-
---debug=file -
-
-

-Enable debugging output for file. -

-
-
---version -
-
-

-Print version string of this tool. -

-
-
--h, --help -
-
-

-Print help text -

-
-
---usage -
-
-

-Print short usage summary. -

-
-
---stats -
-
-

-Enable statistics gathering/printing. -

-
-
---where -
-
-

-Include file and line number in debug messages. -

-
-
---when -
-
-

-Include the wall time since program start in all messages. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/pins2lts-mc.html b/assets/man/pins2lts-mc.html deleted file mode 100644 index 487037a6a..000000000 --- a/assets/man/pins2lts-mc.html +++ /dev/null @@ -1,1992 +0,0 @@ - - - - - -pins2lts-mc(1) - - - - - -
-
-

SYNOPSIS

-
-

pins2lts-mc --loader=<plugin> [OPTION]… <input> -pins2lts-mc [OPTION]… <model.so>

-
-
-
-

DESCRIPTION

-
-

pins2lts-mc generates a labelled transition system from a compiled -specification provided in input.etf (see etf(5)). -It does this concurrently for any given number of threads. -LTS output is not supported by this tool, use the distributed tools instead.

-
-
-
-

OPTIONS

-
-
-
---threads=NUMBER -
-
-

- Number of threads to use for state space exploration - (default: NUMBER=NUM_CORES). Maximum is 64. -

-
-
---strategy=TYPE -
-
-

- Select an exploration strategy. Two kinds of algorithms - are available: LTL model checking and reachability. - The multi-core LTL algorithms (Nested DFS) are implemented - in a swarmed fashion, however with a shared state storage. - On top of that, MCNDFS and ENDFS offer work sharing between threads - and can deliver speedups for some models. - Note that the LTL algorithms require buchi automata as input. - Such a model can be provided directly by the language frontend, - i.e., DiVinE property models are supported, or by the LTL - layer (see --ltl). - Note finally that strict reachability exploration orders - are not guaranteed by all multi-core search strategies. - TYPE can be one of the following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-sbfs -
-
-

- explore state space in strict breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in relaxed depth-first order. Relaxed meaning that - the inclusion check on the set of visited states is executed immediately - after generating a state. This saves stack space and improves performance - of the parallel reachability analysis. -

-
-
-ndfs -
-
-

- multi-core swarmed Nested Depth-First Search (Courcoubetis et al.). -

-
-
-nndfs -
-
-

- multi-core swarmed New Nested Depth-First Search (Schwoon, Esparza). -

-
-
-ldfs -
-
-

- Multi-Core Nested Depth-First Search (Laarman, Langerak, van de Pol, Weber, Wijs). -

-
-
-endfs -
-
-

- Multi-Core Nested Depth-First Search by Evangelista et al. The algorithm has - been adapted with the cyan color encoding and early cycle detection, as - described in "Variations on Multi-Core Nested Depth-First Search" - (Laarman, van de Pol). - Note that ENDFS requires a repair procedure, NNDFS is chosen by default. - Alternatives can be chosen by providing a list of strategies, for example: - "endfs,mcndfs", yields the NMC-NDFS algorithm as described in the Variations - paper (with load balancing). - Finally, we also allow multiple levels of ENDFS to be combined: - "endfs,endfs,nndfs". -

-
-
-cndfs -
-
-

- New CNDFS algorithm. - Multi-Core Nested Depth-First Search (Evangelista, Laarman, Petrucci, van de Pol). -

-
-
-tarjan -
-
-

- Tarjan’s sequential SCC algorithm. - Depth-First Search and Linear Graph Algorithms (Tarjan). -

-
-
-renault -
-
-

- Renault’s SCC algorithm. - Parallel Explicit Model Checking for Generalized Büchi Automata (Renault et al.). -

-
-
-ufscc -
-
-

- The UFSCC SCC algorithm. - Multi-Core On-The-Fly SCC Decomposition (Bloemen, Laarman, van de Pol). -

-
-
-
-
---perm=TYPE -
-
-

- Select the transition permutation, which is used to guide - different threads to different parts of the state space. - A good permutation can significantly speed up bug hunting. - TYPE can be one of the following options, each has - different properties in terms of performance and effectiveness - summarized as (perf./eff.) : -

-
-
-dynamic -
-
-

- use "fresh successor heuristics" described in - "Variations on Multi-Core Nested Depth-First Search" (Laarman, van de Pol). - (decent/very good for bug hunting). Default for LTL. -

-
-
-sort -
-
-

- sort on the unique id of the successor state (decent/good) -

-
-
-random -
-
-

- use multiple fixed random permutation schemes per worker (decent/good). -

-
-
-rr -
-
-

- randomized using a full random sort order on the states. This is more random - than the previous option, but requires more pre-computation time for the - random array (decent/almost perfect). -

-
-
-shift -
-
-

- shift the order of transitions by a fixed value per worker (fast/decent). -

-
-
-otf -
-
-

- sort according to a dynamic permutation scheme (slow/perfect). -

-
-
-none -
-
-

- use the same exploration order for all workers. Default for reachability. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-table -
-
-

- use a lockless hash table. -

-
-
-tree -
-
-

- use a lockless tree-compressed table. In many cases the tree - can compress states to two integers regardless of their length. To efficiently - accommodate more than 4*10^9 states, the table is split in a root and a leaf - table whose respective size can be adjusted using the --ratio option - (default). -

-
-
-cleary-tree -
-
-

- use a lockless tree-compressed hash table with a parallel Cleary table to - store roots. The compressed size of a state can approach one integer - with this approach. The leafs table is stored as a standard tree table (two - integers per subtree), which typically can be much smaller (up to the - square root of the root table size). To control the respective size of the - leaf table use the --ratio option. -

-
-
-
-
---ratio=NUMBER -
-
-

- Log_2 ratio between root and leaf table in tree compression. The ratio - can theoretically be as low as the square root of the root table size - (see --size). This will however only work if the state vectors are - perfectly combinatorial wrt their variable values. In most cases - the leaf table will grow larger, but find found that a factor four - (--ratio=2) works well for over 75% of the BEEM models. - (default: NUMBER=2). -

-
-
---size=NUMBER -
-
-

- Log_2 hash table size in elements (default: NUMBER=24). - This is also used for the internal node table of the tree. -

-
-
---zobrist=NUMBER -
-
-

- Save time by using zobrist incremental state hashing. - NUMBER defines the (log_2) size of the random number table - (default: 0=OFF). Large tables mean better hash distributions, - but more cache misses due to memory size. - Experiments have shown that small tables (2^6) suffice for - good distributions (equal or better than Jenkin’s hash). - Improvements are only noticable for fast state generators, like - DiVinE 2.2 (dve22lts-mc(1)). -

-
-
---max=NUMBER -
-
-

- Maximum search depth. -

-
-
---proviso=PROVISO -
-
-

- Change the proviso implementation for partial order reduction in presence - of safety properties or liveness properties. Parallel LTL is only supported - with the cndfs proviso in the cndfs search strategy. Sequentially, LTL is - also supported the stack proviso in the ndfs search strategy. - PROVISO can be either: -

-
-
-force-none -
-
-

- Disables the ignoring proviso check (only useful for benchmarking or - bug hunting). -

-
-
-closed-set -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack proviso. It works with both - the dfs and (p/s)bfs exploration strategies. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs or ndfs search strategy (for resp. safety or LTL properties). -

-
-
-cndfs -
-
-

- A special parallel cycle proviso is used to enable POR with multi-core - LTL model checking using the cndfs search strategy. -

-
-
-
-
-
-

Plugin Options

-
-
---loader=<plugin> -
-
-

-Load the given dynamic library, which must contain a language module. -

-

To get help about the options of a plugin, use

-

pins2lts-mc --loader=<plugin> --help

-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/pins2lts-seq.html b/assets/man/pins2lts-seq.html deleted file mode 100644 index 448da7f44..000000000 --- a/assets/man/pins2lts-seq.html +++ /dev/null @@ -1,2035 +0,0 @@ - - - - - -pins2lts-seq(1) - - - - - -
-
-

SYNOPSIS

-
-

pins2lts-seq --loader=<plugin> [OPTION]… <input> [output.fmt] -pins2lts-seq [OPTION]… <model.so> [output.fmt]

-
-
-
-

DESCRIPTION

-
-

pins2lts-seq generates a labelled transition system from a specification -provided as a plugin/input pair by enumerative reachability analysis using a -general state expanding algorithm. output.fmt -specifies the name of the output archive. The desired format is -deduced from the filename extension. Available formats are described -below.

-
-
-
-

OPTIONS

-
-
-
---strategy=TYPE -
-
-

- Select exploration strategy. TYPE can be one of the - following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in depth-first order. -

-
-
-scc -
-
-

- perform LTL model checking based on Buchi automata with Couvreur’s - algorithm (accepting cycle detection). This requires an accepting - state label to be present. See below. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-tree -
-
-

- use a tree-compressed hash table (default). -

-
-
-table -
-
-

- use a hash table. -

-
-
-vset -
-
-

- use a vector set (decision diagram). -

-
-
-
-
---max=DEPTH -
-
-

- Maximum search depth, search until DEPTH. -

-
-
---proviso=closedset|stack|color -
-
-

- Change the proviso implementation for partial order reduction (ltl) -

-

Change the proviso used to detect that an accepting cycle is closed. -Three options are available, the default is closedset.

-
-
-closedset -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack or color proviso. It works with both - the dfs- and bfs exploration strategy. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs/scc search strategy (since bfs has no stack). -

-
-
-color -
-
-

- The color proviso requires a lot of extra work and memory - but can significantly improve the reduction. It too works - only with the dfs/scc search strategies. -

-
-
-
-
-
-

Plugin Options

-
-
---loader=<plugin> -
-
-

-Load the given dynamic library, which must contain a language module. -

-

To get help about the options of a plugin, use

-

pins2lts-seq --loader=<plugin> --help

-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/pins2lts-sym.html b/assets/man/pins2lts-sym.html deleted file mode 100644 index d9bcb716c..000000000 --- a/assets/man/pins2lts-sym.html +++ /dev/null @@ -1,1916 +0,0 @@ - - - - - -pins2lts-sym(1) - - - - - -
-
-

SYNOPSIS

-
-

pins2lts-sym --loader=<plugin> [OPTION]… <input> [output.etf] -pins2lts-sym [OPTION]… <model.so> [output.etf]

-
-
-
-

DESCRIPTION

-
-

pins2lts-sym performs a reachability analysis on a specification provided -as a plugin/input pair. output.etf specifies the name of the output archive, written in -etf(5) format.

-
-
-
-

OPTIONS

-
-
-
---order=ORDER -
-
-

- Select the exploration strategy: bfs-prev, bfs, chain-prev, - or chain. With bfs-prev and bfs, breadth-first search is - used. Here, bfs-prev only considers the states found at the - previous level, while bfs considers the whole visited set. With - chain-prev and chain, a chaining strategy is used. Here, - chain-prev at each level starts from the states found at the - previous level, while chain uses the whole visited set. Defaults - to bfs-prev. -

-

When using breadth-first search, the tool performs the next state computation -for all edge groups on the current level or current set of visited states. -Chaining means to apply next state for the first group to the visited -states, then apply next-state for the second group to the result, -etc. Thus, a chaining analysis can be completed in much less -iterations than a BFS analysis.

-
-
---saturation=SATURATION -
-
-

- Select a saturation strategy: none, sat-like, sat-loop, sat-fix, - sat. The sat-like strategy goes up and down the levels of the BDD - used to represent the state space. The sat-loop strategy loops over - the levels. The sat-fix strategy repeatedly performs a fixpoint - computation using saturation. The sat strategy does saturation as - described in the literature with on-the-fly expansion of the transition - relations. Defaults to none, i.e. no saturation. -

-

All strategies except sat-fix and sat work in combination with the order -to saturate levels.

-
-
---sat-granularity=GRANULARITY -
-
-

- Select the granularity of sat-like and sat-loop strategies. The - granularity indicates how many BDD levels are considered at the same - time. Defaults to 10. -

-
-
---save-sat-levels -
-
-

- Save the previous states seen at saturation levels. This option has - effect for any of the saturation strategies in combination with either - bfs-prev or chain-prev. -

-
-
---guidance=STRATEGY -
-
-

- Select a search strategy for searching for actions: unguided, - directed. The unguided strategy considers all transition - groups. The directed strategy focuses the search on the transition - groups in which the action occurs. Defaults to unguided. -

-
-
---dot=DIR -
-
-

- If this option is supplied DIR is a directory to which dot files of vector sets are written to. - Note that this option should only be used for smaller vector sets because of disk space. -

-

Three type of dot files are (over)written:

-
    -
  1. -

    -current-l<L>.dot: the nodes in the vector set at level L (and only level L), -

    -
  2. -
  3. -

    -visited-l<L>.dot: the nodes in the vector set up to and included level L, -

    -
  4. -
  5. -

    -group_next-l<L>-k<K>.dot: the nodes in the transition relation of group K at level L. -

    -
  6. -
-
-
---mu=MUFILE|MUFORMULA -
-
-

- After computing all reachable states, evaluate the mu-formula in MUFILE -

-

MUFILE is a file containing a Mu Calculus formula (see -ltsmin-mu(5)). Alternatively, the formula can be provide directly as -MUFORMULA. This formula is a propositional formula with least and greatest -fixpoint operator. It will be evaluated after generation of the complete state -space.

-
-
---ctl-star=CTLFILE|CTLFORMULA -
-
-

- CTLFILE is a file containing an Linear Temporal Logic Star (CTL*) formula - (see ltsmin-ctl(5)). Which content can also be provided directly as - CTLFORMULA. - The formula is translated to a mu-formula (see ltsmin-mu(5)), - which is evaluated after computing all reachable states. -

-
-
---no-matrix -
-
-

- Do not print the dependency matrix if -v (verbose) is used. -

-
-
---no-soundness-check -
-
-

- When using --pins-guards=assume-true disable the soundness check of the model specification. - The soundness check may be expensive and can be disabled when the model specification is known to be sound. - A guard may not evaluate to true or false but to maybe. A guard which evaluates to maybe depends on - the evaluation of another guard. For languages such as Promela and DVE it checks whether if - a guard evaluates to maybe there is another guard on the left which evaluates to false. For languages such as - mCRL2 it also checks whether a guard on the right evaluates to false. If for all states this holds then the - model specification is sound for guard-splitting. -

-
-
---precise -
-
-

- Compute the final number of states precisely. -

-
-
---next-union -
-
-

- If supported by the vset implementation; perform the computation of successor states simultaneously with unifying - the current states. Simultaneously, means with a single BDD/MDD operation. -

-
-
---inv-par -
-
-

- Checks all invariants in parallel. -

-
-
---inv-bin-par -
-
-

- Checks both sides of a binary operand in parallel in an invariant, requires --inv-par. - Note that this option may actually slow down invariant checking, because parallelization - of a binary operand disables short-circuit evaluation. -

-
-
-
-

Plugin Options

-
-
---loader=<plugin> -
-
-

-Load the given dynamic library, which must contain a language module. -

-

To get help about the options of a plugin, use

-

pins2lts-sym --loader=<plugin> --help

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Symbolic Parity Game Options

-

A symbolic parity game can be generated either by using the --mucalc -option or by using the PBES language module.

-
-
---pg-solve -
-
-

- Solve the generated parity game. -

-
-
---pg-reduce -
-
-

- Reduce the generated parity game on-the-fly (experimental). -

-
-
---pg-write=FILE -
-
-

- Writes a symbolic parity game to FILE. -

-
-
-
-
-

Symbolic Parity Game Solver Options

-
-
---attr=default|chain|par|par2 -
-
-

- Choose attractor function. -

-

Available attractor functions:

-
-
-default -
-
-

- Straightforward attractor computation. -

-
-
-chain -
-
-

- Chaining attractor, applies transition groups in a different order - than default in computing an attractor level. -

-
-
-par -
-
-

- Spawns parallel tasks to compute forward and backward steps for each - attractor level. -

-
-
-par2 -
-
-

- Spawns more parallel tasks than par, by applying forward steps in - parallel to the result of the backward steps of the different - transition groups. -

-
-
-
-
---saturating-attractor -
-
-

- Use saturation in the chaining attractor. -

-
-
---pg-write-dot -
-
-

- Write dot files to disk during parity game solving for debugging. -

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/pins2torx.html b/assets/man/pins2torx.html deleted file mode 100644 index a0fa51407..000000000 --- a/assets/man/pins2torx.html +++ /dev/null @@ -1,1326 +0,0 @@ - - - - - -pins2torx(1) - - - - - -
-
-

SYNOPSIS

-
-

pins2torx --loader=<plugin> [OPTION]… <input>

-
-
-
-

DESCRIPTION

-
-

pins2torx provides access to a labelled transition system from a -specification provided as a plugin/input pair via the TorX-Explorer textual -interface on stdin and stdout.

-
-
-
-

OPTIONS

-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
-
-

SEE ALSO

-
- -
-

Plugin Options

-
-
---loader=<plugin> -
-
-

-Load the given dynamic library, which must contain a language module. -

-

To get help about the options of a plugin, use

-

pins2torx --loader=<plugin> --help

-
-
-
-
-
-
-

- - - diff --git a/assets/man/pnml2lts-dist.html b/assets/man/pnml2lts-dist.html deleted file mode 100644 index 626eba325..000000000 --- a/assets/man/pnml2lts-dist.html +++ /dev/null @@ -1,1730 +0,0 @@ - - - - - -pnml2lts-dist(1) - - - - - -
-
-

SYNOPSIS

-
-

pnml2lts-dist [OPTIONS]… Petri-net.pnml [output.fmt]

-
-
-
-

DESCRIPTION

-
-

pnml2lts-dist generates a labelled transition system from a specification -provided in Petri-net.pnml. -output.fmt specifies the name of the output archive. The desired -format is deduced from the filename extension. Available formats are described below.

-

Using the option --workers=N, this tool starts the command mpirun silently -in the background with the suitable options, i.e. -np 4. -Alternatively, one may wish to call mpirun with additional options. This can -be done using the --mpi option, e.g.:

-
-
-
mpirun -np 4 -mca btl tcp,self {manname} --mpi
-
-
-
-
-

PNML

-
-

The PNML front-end for LTSmin currently supports ordinary (unfolded) Petri nets: -http://www.pnml.org/version-2009/grammar/ptnet.pntd. Further information can be -found at: http://www.pnml.org/version-2009/version-2009.php.

-
-

Front-end specific features

-
    -
  1. -

    -After reachability analysis the pnml2lts-dist will report the maximum number of tokens over all places. -

    -
  2. -
  3. -

    -Support for 1-safe Petri nets, by means of the NUPN toolspecific syntax: http://cadp.inria.fr/man/nupn.html. -

    -
  4. -
-
-
-
-
-

OPTIONS

-
-
-
---nice=LEVEL -
-
-

- Set the nice level of all worker processes. This is useful - when running on other people’s workstations. -

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
---filter=<patternlist> -
-
-

- Select the labels to be written to file from the - state vector elements, state labels and edge labels. - The argument is a semicolon separated list of shell - file patterns. Each pattern may be prefixed with "!" to - exclude a set of labels. If none of the patterns matches the default - is to exclude the label. Hence, all labels starting with - an "x" are specified as "x*". The complement all labels, - except those starting with an "x" are specified as "!x*;*". -

-
-
---cost=<edge label> -
-
-

- The given edge labels defines the cost of an edge. Based on this cost, - the lowest cost for reaching every state is computed. Moreover, the order - in which states are explored is such that lower cost states are explored - before higher costs ones. The levels reported when this options is in effect are - cost levels. The counter-example traces are guaranteed to be a lowest cost path. - However, the length of the trace may not be minimal. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Hybrid Runtime Options

-

The Hybrid Runtime Environment provides startup options for several parallel architectures.

-
-

Posix threads options

-

If the application supports it and Posix threads are supported by the OS then -the following option is available:

-
-
---threads[=count] -
-
-

-Start count worker threads. The default count is the number of CPU’s in the system. -

-
-
-
-
-

Posix processes options

-

If the application supports it and Posix shared memory is supported by the OS then -the following option is available:

-
-
---procs[=count] -
-
-

-Fork count worker processes. The default count is the number of CPUs in the system. -

-
-
-

Note that MacOS X only supports Posix shared memory from version 10.7 (Lion) -onwards.

-
-
-

MPI options

-

If the application supports it and MPI support was compiled into the binary then -the following options are available:

-
-
---workers=count -
-
-

-Start the program with count MPI workers. -

-
-
---mpirun=mpirun arguments -
-
-

-Invoke mpirun with the given arguments. -

-
-
---mpi -
-
-

-Ignore --workers and --mpirun options and start the MPI runtime. -

-
-
-
-
-
-

General Options

-
-
--v -
-
-

-Increase the level of verbosity -

-
-
--q -
-
-

-Be quiet; do not print anything to the terminal. -

-
-
---debug=file -
-
-

-Enable debugging output for file. -

-
-
---version -
-
-

-Print version string of this tool. -

-
-
--h, --help -
-
-

-Print help text -

-
-
---usage -
-
-

-Print short usage summary. -

-
-
---stats -
-
-

-Enable statistics gathering/printing. -

-
-
---where -
-
-

-Include file and line number in debug messages. -

-
-
---when -
-
-

-Include the wall time since program start in all messages. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/pnml2lts-mc.html b/assets/man/pnml2lts-mc.html deleted file mode 100644 index e08edfdb9..000000000 --- a/assets/man/pnml2lts-mc.html +++ /dev/null @@ -1,1999 +0,0 @@ - - - - - -pnml2lts-mc(1) - - - - - -
-
-

SYNOPSIS

-
-

pnml2lts-mc [OPTION]… Petri-net.pnml

-
-
-
-

DESCRIPTION

-
-

pnml2lts-mc performs multi-core reachability and LTL model checking on the -labelled transition system from a specification provided in -Petri-net.pnml. -LTS output is not supported by this tool, use the distributed tools instead.

-
-
-
-

PNML

-
-

The PNML front-end for LTSmin currently supports ordinary (unfolded) Petri nets: -http://www.pnml.org/version-2009/grammar/ptnet.pntd. Further information can be -found at: http://www.pnml.org/version-2009/version-2009.php.

-
-

Front-end specific features

-
    -
  1. -

    -After reachability analysis the pnml2lts-mc will report the maximum number of tokens over all places. -

    -
  2. -
  3. -

    -Support for 1-safe Petri nets, by means of the NUPN toolspecific syntax: http://cadp.inria.fr/man/nupn.html. -

    -
  4. -
-
-
-
-
-

OPTIONS

-
-
-
---threads=NUMBER -
-
-

- Number of threads to use for state space exploration - (default: NUMBER=NUM_CORES). Maximum is 64. -

-
-
---strategy=TYPE -
-
-

- Select an exploration strategy. Two kinds of algorithms - are available: LTL model checking and reachability. - The multi-core LTL algorithms (Nested DFS) are implemented - in a swarmed fashion, however with a shared state storage. - On top of that, MCNDFS and ENDFS offer work sharing between threads - and can deliver speedups for some models. - Note that the LTL algorithms require buchi automata as input. - Such a model can be provided directly by the language frontend, - i.e., DiVinE property models are supported, or by the LTL - layer (see --ltl). - Note finally that strict reachability exploration orders - are not guaranteed by all multi-core search strategies. - TYPE can be one of the following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-sbfs -
-
-

- explore state space in strict breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in relaxed depth-first order. Relaxed meaning that - the inclusion check on the set of visited states is executed immediately - after generating a state. This saves stack space and improves performance - of the parallel reachability analysis. -

-
-
-ndfs -
-
-

- multi-core swarmed Nested Depth-First Search (Courcoubetis et al.). -

-
-
-nndfs -
-
-

- multi-core swarmed New Nested Depth-First Search (Schwoon, Esparza). -

-
-
-ldfs -
-
-

- Multi-Core Nested Depth-First Search (Laarman, Langerak, van de Pol, Weber, Wijs). -

-
-
-endfs -
-
-

- Multi-Core Nested Depth-First Search by Evangelista et al. The algorithm has - been adapted with the cyan color encoding and early cycle detection, as - described in "Variations on Multi-Core Nested Depth-First Search" - (Laarman, van de Pol). - Note that ENDFS requires a repair procedure, NNDFS is chosen by default. - Alternatives can be chosen by providing a list of strategies, for example: - "endfs,mcndfs", yields the NMC-NDFS algorithm as described in the Variations - paper (with load balancing). - Finally, we also allow multiple levels of ENDFS to be combined: - "endfs,endfs,nndfs". -

-
-
-cndfs -
-
-

- New CNDFS algorithm. - Multi-Core Nested Depth-First Search (Evangelista, Laarman, Petrucci, van de Pol). -

-
-
-tarjan -
-
-

- Tarjan’s sequential SCC algorithm. - Depth-First Search and Linear Graph Algorithms (Tarjan). -

-
-
-renault -
-
-

- Renault’s SCC algorithm. - Parallel Explicit Model Checking for Generalized Büchi Automata (Renault et al.). -

-
-
-ufscc -
-
-

- The UFSCC SCC algorithm. - Multi-Core On-The-Fly SCC Decomposition (Bloemen, Laarman, van de Pol). -

-
-
-
-
---perm=TYPE -
-
-

- Select the transition permutation, which is used to guide - different threads to different parts of the state space. - A good permutation can significantly speed up bug hunting. - TYPE can be one of the following options, each has - different properties in terms of performance and effectiveness - summarized as (perf./eff.) : -

-
-
-dynamic -
-
-

- use "fresh successor heuristics" described in - "Variations on Multi-Core Nested Depth-First Search" (Laarman, van de Pol). - (decent/very good for bug hunting). Default for LTL. -

-
-
-sort -
-
-

- sort on the unique id of the successor state (decent/good) -

-
-
-random -
-
-

- use multiple fixed random permutation schemes per worker (decent/good). -

-
-
-rr -
-
-

- randomized using a full random sort order on the states. This is more random - than the previous option, but requires more pre-computation time for the - random array (decent/almost perfect). -

-
-
-shift -
-
-

- shift the order of transitions by a fixed value per worker (fast/decent). -

-
-
-otf -
-
-

- sort according to a dynamic permutation scheme (slow/perfect). -

-
-
-none -
-
-

- use the same exploration order for all workers. Default for reachability. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-table -
-
-

- use a lockless hash table. -

-
-
-tree -
-
-

- use a lockless tree-compressed table. In many cases the tree - can compress states to two integers regardless of their length. To efficiently - accommodate more than 4*10^9 states, the table is split in a root and a leaf - table whose respective size can be adjusted using the --ratio option - (default). -

-
-
-cleary-tree -
-
-

- use a lockless tree-compressed hash table with a parallel Cleary table to - store roots. The compressed size of a state can approach one integer - with this approach. The leafs table is stored as a standard tree table (two - integers per subtree), which typically can be much smaller (up to the - square root of the root table size). To control the respective size of the - leaf table use the --ratio option. -

-
-
-
-
---ratio=NUMBER -
-
-

- Log_2 ratio between root and leaf table in tree compression. The ratio - can theoretically be as low as the square root of the root table size - (see --size). This will however only work if the state vectors are - perfectly combinatorial wrt their variable values. In most cases - the leaf table will grow larger, but find found that a factor four - (--ratio=2) works well for over 75% of the BEEM models. - (default: NUMBER=2). -

-
-
---size=NUMBER -
-
-

- Log_2 hash table size in elements (default: NUMBER=24). - This is also used for the internal node table of the tree. -

-
-
---zobrist=NUMBER -
-
-

- Save time by using zobrist incremental state hashing. - NUMBER defines the (log_2) size of the random number table - (default: 0=OFF). Large tables mean better hash distributions, - but more cache misses due to memory size. - Experiments have shown that small tables (2^6) suffice for - good distributions (equal or better than Jenkin’s hash). - Improvements are only noticable for fast state generators, like - DiVinE 2.2 (dve22lts-mc(1)). -

-
-
---max=NUMBER -
-
-

- Maximum search depth. -

-
-
---proviso=PROVISO -
-
-

- Change the proviso implementation for partial order reduction in presence - of safety properties or liveness properties. Parallel LTL is only supported - with the cndfs proviso in the cndfs search strategy. Sequentially, LTL is - also supported the stack proviso in the ndfs search strategy. - PROVISO can be either: -

-
-
-force-none -
-
-

- Disables the ignoring proviso check (only useful for benchmarking or - bug hunting). -

-
-
-closed-set -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack proviso. It works with both - the dfs and (p/s)bfs exploration strategies. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs or ndfs search strategy (for resp. safety or LTL properties). -

-
-
-cndfs -
-
-

- A special parallel cycle proviso is used to enable POR with multi-core - LTL model checking using the cndfs search strategy. -

-
-
-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/pnml2lts-seq.html b/assets/man/pnml2lts-seq.html deleted file mode 100644 index eceaf31a1..000000000 --- a/assets/man/pnml2lts-seq.html +++ /dev/null @@ -1,2042 +0,0 @@ - - - - - -pnml2lts-seq(1) - - - - - -
-
-

SYNOPSIS

-
-

pnml2lts-seq [OPTION]… Petri-net.pnml [output.fmt]

-
-
-
-

DESCRIPTION

-
-

pnml2lts-seq generates a labelled transition system from a specification -provided in Petri-net.pnml by enumerative reachability -analysis using a general state expanding algorithm. -output.fmt specifies the name of -the output archive. The desired format is deduced from the filename -extension. Available formats are described below.

-
-
-
-

PNML

-
-

The PNML front-end for LTSmin currently supports ordinary (unfolded) Petri nets: -http://www.pnml.org/version-2009/grammar/ptnet.pntd. Further information can be -found at: http://www.pnml.org/version-2009/version-2009.php.

-
-

Front-end specific features

-
    -
  1. -

    -After reachability analysis the pnml2lts-seq will report the maximum number of tokens over all places. -

    -
  2. -
  3. -

    -Support for 1-safe Petri nets, by means of the NUPN toolspecific syntax: http://cadp.inria.fr/man/nupn.html. -

    -
  4. -
-
-
-
-
-

OPTIONS

-
-
-
---strategy=TYPE -
-
-

- Select exploration strategy. TYPE can be one of the - following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in depth-first order. -

-
-
-scc -
-
-

- perform LTL model checking based on Buchi automata with Couvreur’s - algorithm (accepting cycle detection). This requires an accepting - state label to be present. See below. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-tree -
-
-

- use a tree-compressed hash table (default). -

-
-
-table -
-
-

- use a hash table. -

-
-
-vset -
-
-

- use a vector set (decision diagram). -

-
-
-
-
---max=DEPTH -
-
-

- Maximum search depth, search until DEPTH. -

-
-
---proviso=closedset|stack|color -
-
-

- Change the proviso implementation for partial order reduction (ltl) -

-

Change the proviso used to detect that an accepting cycle is closed. -Three options are available, the default is closedset.

-
-
-closedset -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack or color proviso. It works with both - the dfs- and bfs exploration strategy. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs/scc search strategy (since bfs has no stack). -

-
-
-color -
-
-

- The color proviso requires a lot of extra work and memory - but can significantly improve the reduction. It too works - only with the dfs/scc search strategies. -

-
-
-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/pnml2lts-sym.html b/assets/man/pnml2lts-sym.html deleted file mode 100644 index 60b8e5e85..000000000 --- a/assets/man/pnml2lts-sym.html +++ /dev/null @@ -1,1923 +0,0 @@ - - - - - -pnml2lts-sym(1) - - - - - -
-
-

SYNOPSIS

-
-

pnml2lts-sym [OPTION]… Petri-net.pnml [output.etf]

-
-
-
-

DESCRIPTION

-
-

pnml2lts-sym performs a reachability analysis on a specification provided -in Petri-net.pnml. output.etf specifies the name of the output -archive, written in etf(5) format.

-
-
-
-

PNML

-
-

The PNML front-end for LTSmin currently supports ordinary (unfolded) Petri nets: -http://www.pnml.org/version-2009/grammar/ptnet.pntd. Further information can be -found at: http://www.pnml.org/version-2009/version-2009.php.

-
-

Front-end specific features

-
    -
  1. -

    -After reachability analysis the pnml2lts-sym will report the maximum number of tokens over all places. -

    -
  2. -
  3. -

    -Support for 1-safe Petri nets, by means of the NUPN toolspecific syntax: http://cadp.inria.fr/man/nupn.html. -

    -
  4. -
-
-
-
-
-

OPTIONS

-
-
-
---order=ORDER -
-
-

- Select the exploration strategy: bfs-prev, bfs, chain-prev, - or chain. With bfs-prev and bfs, breadth-first search is - used. Here, bfs-prev only considers the states found at the - previous level, while bfs considers the whole visited set. With - chain-prev and chain, a chaining strategy is used. Here, - chain-prev at each level starts from the states found at the - previous level, while chain uses the whole visited set. Defaults - to bfs-prev. -

-

When using breadth-first search, the tool performs the next state computation -for all edge groups on the current level or current set of visited states. -Chaining means to apply next state for the first group to the visited -states, then apply next-state for the second group to the result, -etc. Thus, a chaining analysis can be completed in much less -iterations than a BFS analysis.

-
-
---saturation=SATURATION -
-
-

- Select a saturation strategy: none, sat-like, sat-loop, sat-fix, - sat. The sat-like strategy goes up and down the levels of the BDD - used to represent the state space. The sat-loop strategy loops over - the levels. The sat-fix strategy repeatedly performs a fixpoint - computation using saturation. The sat strategy does saturation as - described in the literature with on-the-fly expansion of the transition - relations. Defaults to none, i.e. no saturation. -

-

All strategies except sat-fix and sat work in combination with the order -to saturate levels.

-
-
---sat-granularity=GRANULARITY -
-
-

- Select the granularity of sat-like and sat-loop strategies. The - granularity indicates how many BDD levels are considered at the same - time. Defaults to 10. -

-
-
---save-sat-levels -
-
-

- Save the previous states seen at saturation levels. This option has - effect for any of the saturation strategies in combination with either - bfs-prev or chain-prev. -

-
-
---guidance=STRATEGY -
-
-

- Select a search strategy for searching for actions: unguided, - directed. The unguided strategy considers all transition - groups. The directed strategy focuses the search on the transition - groups in which the action occurs. Defaults to unguided. -

-
-
---dot=DIR -
-
-

- If this option is supplied DIR is a directory to which dot files of vector sets are written to. - Note that this option should only be used for smaller vector sets because of disk space. -

-

Three type of dot files are (over)written:

-
    -
  1. -

    -current-l<L>.dot: the nodes in the vector set at level L (and only level L), -

    -
  2. -
  3. -

    -visited-l<L>.dot: the nodes in the vector set up to and included level L, -

    -
  4. -
  5. -

    -group_next-l<L>-k<K>.dot: the nodes in the transition relation of group K at level L. -

    -
  6. -
-
-
---mu=MUFILE|MUFORMULA -
-
-

- After computing all reachable states, evaluate the mu-formula in MUFILE -

-

MUFILE is a file containing a Mu Calculus formula (see -ltsmin-mu(5)). Alternatively, the formula can be provide directly as -MUFORMULA. This formula is a propositional formula with least and greatest -fixpoint operator. It will be evaluated after generation of the complete state -space.

-
-
---ctl-star=CTLFILE|CTLFORMULA -
-
-

- CTLFILE is a file containing an Linear Temporal Logic Star (CTL*) formula - (see ltsmin-ctl(5)). Which content can also be provided directly as - CTLFORMULA. - The formula is translated to a mu-formula (see ltsmin-mu(5)), - which is evaluated after computing all reachable states. -

-
-
---no-matrix -
-
-

- Do not print the dependency matrix if -v (verbose) is used. -

-
-
---no-soundness-check -
-
-

- When using --pins-guards=assume-true disable the soundness check of the model specification. - The soundness check may be expensive and can be disabled when the model specification is known to be sound. - A guard may not evaluate to true or false but to maybe. A guard which evaluates to maybe depends on - the evaluation of another guard. For languages such as Promela and DVE it checks whether if - a guard evaluates to maybe there is another guard on the left which evaluates to false. For languages such as - mCRL2 it also checks whether a guard on the right evaluates to false. If for all states this holds then the - model specification is sound for guard-splitting. -

-
-
---precise -
-
-

- Compute the final number of states precisely. -

-
-
---next-union -
-
-

- If supported by the vset implementation; perform the computation of successor states simultaneously with unifying - the current states. Simultaneously, means with a single BDD/MDD operation. -

-
-
---inv-par -
-
-

- Checks all invariants in parallel. -

-
-
---inv-bin-par -
-
-

- Checks both sides of a binary operand in parallel in an invariant, requires --inv-par. - Note that this option may actually slow down invariant checking, because parallelization - of a binary operand disables short-circuit evaluation. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Symbolic Parity Game Options

-

A symbolic parity game can be generated either by using the --mucalc -option or by using the PBES language module.

-
-
---pg-solve -
-
-

- Solve the generated parity game. -

-
-
---pg-reduce -
-
-

- Reduce the generated parity game on-the-fly (experimental). -

-
-
---pg-write=FILE -
-
-

- Writes a symbolic parity game to FILE. -

-
-
-
-
-

Symbolic Parity Game Solver Options

-
-
---attr=default|chain|par|par2 -
-
-

- Choose attractor function. -

-

Available attractor functions:

-
-
-default -
-
-

- Straightforward attractor computation. -

-
-
-chain -
-
-

- Chaining attractor, applies transition groups in a different order - than default in computing an attractor level. -

-
-
-par -
-
-

- Spawns parallel tasks to compute forward and backward steps for each - attractor level. -

-
-
-par2 -
-
-

- Spawns more parallel tasks than par, by applying forward steps in - parallel to the result of the backward steps of the different - transition groups. -

-
-
-
-
---saturating-attractor -
-
-

- Use saturation in the chaining attractor. -

-
-
---pg-write-dot -
-
-

- Write dot files to disk during parity game solving for debugging. -

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/prob2lts-dist.html b/assets/man/prob2lts-dist.html deleted file mode 100644 index 76b175416..000000000 --- a/assets/man/prob2lts-dist.html +++ /dev/null @@ -1,1760 +0,0 @@ - - - - - -prob2lts-dist(1) - - - - - -
-
-

SYNOPSIS

-
-

prob2lts-dist [OPTIONS]… /path/to/socket.probz|/path/to/machine.[mch|eventb|tlc] [output.fmt]

-
-
-
-

DESCRIPTION

-
-

prob2lts-dist performs distributed reachability analysis on a specification provided -through /path/to/machine.[mch|eventb|tlc], or through a specification -provided through /path/to/socket.probz -output.fmt specifies the name of the output archive. The desired -format is deduced from the filename extension. Available formats are described below.

-
-
-
-

ProB

-
-

The ProB front-end for LTSmin uses ZMQ to communicate with ProB. -There are two ways LTSmin can communicate with ProB. -One option is to manually start ProB and specify a path to a ZMQ socket. -The other option is to add ProB to the PATH variable and let -LTSmin start ProB. The latter option allows significant speedups through parallelism. -More information about ProB can be found at https://www3.hhu.de/stups/prob.

-
-

Option 1: .probz extension

-

To use this front-end with the .probz extension a ZMQ socket has to be opened first with ProB. -This can be done with the commandline -LD_LIBRARY_PATH=lib ./probcli /path/to/machine.[mch|eventb|b|…] -ltsmin2 /tmp/ltsmin.probz. -The path to the socket is given with the option -ltsmin2. The file extension should be .probz.

-
-
-

Option 2: .mch|.eventb|.tlc extensions

-

To enable parallelism the .mch|.eventb|.tlc extensions are used. -To use these extensions some environment variables need to be set.

-
    -
  1. -

    -First set the LD_LIBRARY_PATH variable: export LD_LIBRARY_PATH=/path/to/ProB/lib:$LD_LIBRARY_PATH. -

    -
  2. -
  3. -

    -Next set the PATH variable: export PATH=/path/to/ProB:$PATH. -

    -
  4. -
-

Make sure you can run probcli from the commandline. -When probcli can be run from the commandline, then LTSmin can start multiple ProB instances to -enable parallelism.

-

Using the option --workers=N, this tool starts the command mpirun silently -in the background with the suitable options, i.e. -np 4. -Alternatively, one may wish to call mpirun with additional options. This can -be done using the --mpi option, e.g.:

-
-
-
mpirun -np 4 -mca btl tcp,self {manname} --mpi
-
-
-
-
-
-

OPTIONS

-
-
-
---nice=LEVEL -
-
-

- Set the nice level of all worker processes. This is useful - when running on other people’s workstations. -

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
---filter=<patternlist> -
-
-

- Select the labels to be written to file from the - state vector elements, state labels and edge labels. - The argument is a semicolon separated list of shell - file patterns. Each pattern may be prefixed with "!" to - exclude a set of labels. If none of the patterns matches the default - is to exclude the label. Hence, all labels starting with - an "x" are specified as "x*". The complement all labels, - except those starting with an "x" are specified as "!x*;*". -

-
-
---cost=<edge label> -
-
-

- The given edge labels defines the cost of an edge. Based on this cost, - the lowest cost for reaching every state is computed. Moreover, the order - in which states are explored is such that lower cost states are explored - before higher costs ones. The levels reported when this options is in effect are - cost levels. The counter-example traces are guaranteed to be a lowest cost path. - However, the length of the trace may not be minimal. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

ProB Options

-
-
---no-close -
-
-

- Do not close the connection to ProB. This will leave the ProB instance running, - such that the connection can be reused. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Hybrid Runtime Options

-

The Hybrid Runtime Environment provides startup options for several parallel architectures.

-
-

Posix threads options

-

If the application supports it and Posix threads are supported by the OS then -the following option is available:

-
-
---threads[=count] -
-
-

-Start count worker threads. The default count is the number of CPU’s in the system. -

-
-
-
-
-

Posix processes options

-

If the application supports it and Posix shared memory is supported by the OS then -the following option is available:

-
-
---procs[=count] -
-
-

-Fork count worker processes. The default count is the number of CPUs in the system. -

-
-
-

Note that MacOS X only supports Posix shared memory from version 10.7 (Lion) -onwards.

-
-
-

MPI options

-

If the application supports it and MPI support was compiled into the binary then -the following options are available:

-
-
---workers=count -
-
-

-Start the program with count MPI workers. -

-
-
---mpirun=mpirun arguments -
-
-

-Invoke mpirun with the given arguments. -

-
-
---mpi -
-
-

-Ignore --workers and --mpirun options and start the MPI runtime. -

-
-
-
-
-
-

General Options

-
-
--v -
-
-

-Increase the level of verbosity -

-
-
--q -
-
-

-Be quiet; do not print anything to the terminal. -

-
-
---debug=file -
-
-

-Enable debugging output for file. -

-
-
---version -
-
-

-Print version string of this tool. -

-
-
--h, --help -
-
-

-Print help text -

-
-
---usage -
-
-

-Print short usage summary. -

-
-
---stats -
-
-

-Enable statistics gathering/printing. -

-
-
---where -
-
-

-Include file and line number in debug messages. -

-
-
---when -
-
-

-Include the wall time since program start in all messages. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/prob2lts-mc.html b/assets/man/prob2lts-mc.html deleted file mode 100644 index a4d10ddd3..000000000 --- a/assets/man/prob2lts-mc.html +++ /dev/null @@ -1,2027 +0,0 @@ - - - - - -prob2lts-mc(1) - - - - - -
-
-

SYNOPSIS

-
-

prob2lts-mc [OPTION]… /path/to/socket.probz|/path/to/machine.[mch|eventb|tlc]

-
-
-
-

DESCRIPTION

-
-

prob2lts-mc performs multi-core reachability analysis on a specification provided -through /path/to/machine.[mch|eventb|tlc], and sequential reachability analysis on a specification -provided through /path/to/socket.probz.

-
-
-
-

ProB

-
-

The ProB front-end for LTSmin uses ZMQ to communicate with ProB. -There are two ways LTSmin can communicate with ProB. -One option is to manually start ProB and specify a path to a ZMQ socket. -The other option is to add ProB to the PATH variable and let -LTSmin start ProB. The latter option allows significant speedups through parallelism. -More information about ProB can be found at https://www3.hhu.de/stups/prob.

-
-

Option 1: .probz extension

-

To use this front-end with the .probz extension a ZMQ socket has to be opened first with ProB. -This can be done with the commandline -LD_LIBRARY_PATH=lib ./probcli /path/to/machine.[mch|eventb|b|…] -ltsmin2 /tmp/ltsmin.probz. -The path to the socket is given with the option -ltsmin2. The file extension should be .probz.

-
-
-

Option 2: .mch|.eventb|.tlc extensions

-

To enable parallelism the .mch|.eventb|.tlc extensions are used. -To use these extensions some environment variables need to be set.

-
    -
  1. -

    -First set the LD_LIBRARY_PATH variable: export LD_LIBRARY_PATH=/path/to/ProB/lib:$LD_LIBRARY_PATH. -

    -
  2. -
  3. -

    -Next set the PATH variable: export PATH=/path/to/ProB:$PATH. -

    -
  4. -
-

Make sure you can run probcli from the commandline. -When probcli can be run from the commandline, then LTSmin can start multiple ProB instances to -enable parallelism.

-
-
-
-
-

OPTIONS

-
-
-
---threads=NUMBER -
-
-

- Number of threads to use for state space exploration - (default: NUMBER=NUM_CORES). Maximum is 64. -

-
-
---strategy=TYPE -
-
-

- Select an exploration strategy. Two kinds of algorithms - are available: LTL model checking and reachability. - The multi-core LTL algorithms (Nested DFS) are implemented - in a swarmed fashion, however with a shared state storage. - On top of that, MCNDFS and ENDFS offer work sharing between threads - and can deliver speedups for some models. - Note that the LTL algorithms require buchi automata as input. - Such a model can be provided directly by the language frontend, - i.e., DiVinE property models are supported, or by the LTL - layer (see --ltl). - Note finally that strict reachability exploration orders - are not guaranteed by all multi-core search strategies. - TYPE can be one of the following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-sbfs -
-
-

- explore state space in strict breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in relaxed depth-first order. Relaxed meaning that - the inclusion check on the set of visited states is executed immediately - after generating a state. This saves stack space and improves performance - of the parallel reachability analysis. -

-
-
-ndfs -
-
-

- multi-core swarmed Nested Depth-First Search (Courcoubetis et al.). -

-
-
-nndfs -
-
-

- multi-core swarmed New Nested Depth-First Search (Schwoon, Esparza). -

-
-
-ldfs -
-
-

- Multi-Core Nested Depth-First Search (Laarman, Langerak, van de Pol, Weber, Wijs). -

-
-
-endfs -
-
-

- Multi-Core Nested Depth-First Search by Evangelista et al. The algorithm has - been adapted with the cyan color encoding and early cycle detection, as - described in "Variations on Multi-Core Nested Depth-First Search" - (Laarman, van de Pol). - Note that ENDFS requires a repair procedure, NNDFS is chosen by default. - Alternatives can be chosen by providing a list of strategies, for example: - "endfs,mcndfs", yields the NMC-NDFS algorithm as described in the Variations - paper (with load balancing). - Finally, we also allow multiple levels of ENDFS to be combined: - "endfs,endfs,nndfs". -

-
-
-cndfs -
-
-

- New CNDFS algorithm. - Multi-Core Nested Depth-First Search (Evangelista, Laarman, Petrucci, van de Pol). -

-
-
-tarjan -
-
-

- Tarjan’s sequential SCC algorithm. - Depth-First Search and Linear Graph Algorithms (Tarjan). -

-
-
-renault -
-
-

- Renault’s SCC algorithm. - Parallel Explicit Model Checking for Generalized Büchi Automata (Renault et al.). -

-
-
-ufscc -
-
-

- The UFSCC SCC algorithm. - Multi-Core On-The-Fly SCC Decomposition (Bloemen, Laarman, van de Pol). -

-
-
-
-
---perm=TYPE -
-
-

- Select the transition permutation, which is used to guide - different threads to different parts of the state space. - A good permutation can significantly speed up bug hunting. - TYPE can be one of the following options, each has - different properties in terms of performance and effectiveness - summarized as (perf./eff.) : -

-
-
-dynamic -
-
-

- use "fresh successor heuristics" described in - "Variations on Multi-Core Nested Depth-First Search" (Laarman, van de Pol). - (decent/very good for bug hunting). Default for LTL. -

-
-
-sort -
-
-

- sort on the unique id of the successor state (decent/good) -

-
-
-random -
-
-

- use multiple fixed random permutation schemes per worker (decent/good). -

-
-
-rr -
-
-

- randomized using a full random sort order on the states. This is more random - than the previous option, but requires more pre-computation time for the - random array (decent/almost perfect). -

-
-
-shift -
-
-

- shift the order of transitions by a fixed value per worker (fast/decent). -

-
-
-otf -
-
-

- sort according to a dynamic permutation scheme (slow/perfect). -

-
-
-none -
-
-

- use the same exploration order for all workers. Default for reachability. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-table -
-
-

- use a lockless hash table. -

-
-
-tree -
-
-

- use a lockless tree-compressed table. In many cases the tree - can compress states to two integers regardless of their length. To efficiently - accommodate more than 4*10^9 states, the table is split in a root and a leaf - table whose respective size can be adjusted using the --ratio option - (default). -

-
-
-cleary-tree -
-
-

- use a lockless tree-compressed hash table with a parallel Cleary table to - store roots. The compressed size of a state can approach one integer - with this approach. The leafs table is stored as a standard tree table (two - integers per subtree), which typically can be much smaller (up to the - square root of the root table size). To control the respective size of the - leaf table use the --ratio option. -

-
-
-
-
---ratio=NUMBER -
-
-

- Log_2 ratio between root and leaf table in tree compression. The ratio - can theoretically be as low as the square root of the root table size - (see --size). This will however only work if the state vectors are - perfectly combinatorial wrt their variable values. In most cases - the leaf table will grow larger, but find found that a factor four - (--ratio=2) works well for over 75% of the BEEM models. - (default: NUMBER=2). -

-
-
---size=NUMBER -
-
-

- Log_2 hash table size in elements (default: NUMBER=24). - This is also used for the internal node table of the tree. -

-
-
---zobrist=NUMBER -
-
-

- Save time by using zobrist incremental state hashing. - NUMBER defines the (log_2) size of the random number table - (default: 0=OFF). Large tables mean better hash distributions, - but more cache misses due to memory size. - Experiments have shown that small tables (2^6) suffice for - good distributions (equal or better than Jenkin’s hash). - Improvements are only noticable for fast state generators, like - DiVinE 2.2 (dve22lts-mc(1)). -

-
-
---max=NUMBER -
-
-

- Maximum search depth. -

-
-
---proviso=PROVISO -
-
-

- Change the proviso implementation for partial order reduction in presence - of safety properties or liveness properties. Parallel LTL is only supported - with the cndfs proviso in the cndfs search strategy. Sequentially, LTL is - also supported the stack proviso in the ndfs search strategy. - PROVISO can be either: -

-
-
-force-none -
-
-

- Disables the ignoring proviso check (only useful for benchmarking or - bug hunting). -

-
-
-closed-set -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack proviso. It works with both - the dfs and (p/s)bfs exploration strategies. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs or ndfs search strategy (for resp. safety or LTL properties). -

-
-
-cndfs -
-
-

- A special parallel cycle proviso is used to enable POR with multi-core - LTL model checking using the cndfs search strategy. -

-
-
-
-
-
-

ProB Options

-
-
---no-close -
-
-

- Do not close the connection to ProB. This will leave the ProB instance running, - such that the connection can be reused. -

-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/prob2lts-seq.html b/assets/man/prob2lts-seq.html deleted file mode 100644 index 5f2a5c55d..000000000 --- a/assets/man/prob2lts-seq.html +++ /dev/null @@ -1,2071 +0,0 @@ - - - - - -prob2lts-seq(1) - - - - - -
-
-

SYNOPSIS

-
-

prob2lts-seq [OPTION]… /path/to/socket.probz|/path/to/machine.[mch|eventb|tlc] [output.fmt]

-
-
-
-

DESCRIPTION

-
-

prob2lts-seq performs enumerative reachability analysis on a specification provided -through /path/to/machine.[mch|eventb|tlc], or through a specification -provided through /path/to/socket.probz, using a general state expanding algorithm. -output.fmt specifies the name of -the output archive. The desired format is deduced from the filename -extension. Available formats are described below.

-
-
-
-

ProB

-
-

The ProB front-end for LTSmin uses ZMQ to communicate with ProB. -There are two ways LTSmin can communicate with ProB. -One option is to manually start ProB and specify a path to a ZMQ socket. -The other option is to add ProB to the PATH variable and let -LTSmin start ProB. The latter option allows significant speedups through parallelism. -More information about ProB can be found at https://www3.hhu.de/stups/prob.

-
-

Option 1: .probz extension

-

To use this front-end with the .probz extension a ZMQ socket has to be opened first with ProB. -This can be done with the commandline -LD_LIBRARY_PATH=lib ./probcli /path/to/machine.[mch|eventb|b|…] -ltsmin2 /tmp/ltsmin.probz. -The path to the socket is given with the option -ltsmin2. The file extension should be .probz.

-
-
-

Option 2: .mch|.eventb|.tlc extensions

-

To enable parallelism the .mch|.eventb|.tlc extensions are used. -To use these extensions some environment variables need to be set.

-
    -
  1. -

    -First set the LD_LIBRARY_PATH variable: export LD_LIBRARY_PATH=/path/to/ProB/lib:$LD_LIBRARY_PATH. -

    -
  2. -
  3. -

    -Next set the PATH variable: export PATH=/path/to/ProB:$PATH. -

    -
  4. -
-

Make sure you can run probcli from the commandline. -When probcli can be run from the commandline, then LTSmin can start multiple ProB instances to -enable parallelism.

-
-
-
-
-

OPTIONS

-
-
-
---strategy=TYPE -
-
-

- Select exploration strategy. TYPE can be one of the - following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in depth-first order. -

-
-
-scc -
-
-

- perform LTL model checking based on Buchi automata with Couvreur’s - algorithm (accepting cycle detection). This requires an accepting - state label to be present. See below. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-tree -
-
-

- use a tree-compressed hash table (default). -

-
-
-table -
-
-

- use a hash table. -

-
-
-vset -
-
-

- use a vector set (decision diagram). -

-
-
-
-
---max=DEPTH -
-
-

- Maximum search depth, search until DEPTH. -

-
-
---proviso=closedset|stack|color -
-
-

- Change the proviso implementation for partial order reduction (ltl) -

-

Change the proviso used to detect that an accepting cycle is closed. -Three options are available, the default is closedset.

-
-
-closedset -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack or color proviso. It works with both - the dfs- and bfs exploration strategy. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs/scc search strategy (since bfs has no stack). -

-
-
-color -
-
-

- The color proviso requires a lot of extra work and memory - but can significantly improve the reduction. It too works - only with the dfs/scc search strategies. -

-
-
-
-
-
-

ProB Options

-
-
---no-close -
-
-

- Do not close the connection to ProB. This will leave the ProB instance running, - such that the connection can be reused. -

-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/prob2lts-sym.html b/assets/man/prob2lts-sym.html deleted file mode 100644 index b8e76f44c..000000000 --- a/assets/man/prob2lts-sym.html +++ /dev/null @@ -1,1953 +0,0 @@ - - - - - -prob2lts-sym(1) - - - - - -
-
-

SYNOPSIS

-
-

prob2lts-sym [OPTION]… /path/to/socket.probz|/path/to/machine.[mch|eventb|tlc] [output.etf]

-
-
-
-

DESCRIPTION

-
-

prob2lts-sym performs symbolic reachability analysis on a specification provided -through /path/to/machine.[mch|eventb|tlc], or through a specification -provided through /path/to/socket.probz. output.etf specifies the name of the output -archive, written in etf(5) format.

-
-
-
-

ProB

-
-

The ProB front-end for LTSmin uses ZMQ to communicate with ProB. -There are two ways LTSmin can communicate with ProB. -One option is to manually start ProB and specify a path to a ZMQ socket. -The other option is to add ProB to the PATH variable and let -LTSmin start ProB. The latter option allows significant speedups through parallelism. -More information about ProB can be found at https://www3.hhu.de/stups/prob.

-
-

Option 1: .probz extension

-

To use this front-end with the .probz extension a ZMQ socket has to be opened first with ProB. -This can be done with the commandline -LD_LIBRARY_PATH=lib ./probcli /path/to/machine.[mch|eventb|b|…] -ltsmin2 /tmp/ltsmin.probz. -The path to the socket is given with the option -ltsmin2. The file extension should be .probz.

-
-
-

Option 2: .mch|.eventb|.tlc extensions

-

To enable parallelism the .mch|.eventb|.tlc extensions are used. -To use these extensions some environment variables need to be set.

-
    -
  1. -

    -First set the LD_LIBRARY_PATH variable: export LD_LIBRARY_PATH=/path/to/ProB/lib:$LD_LIBRARY_PATH. -

    -
  2. -
  3. -

    -Next set the PATH variable: export PATH=/path/to/ProB:$PATH. -

    -
  4. -
-

Make sure you can run probcli from the commandline. -When probcli can be run from the commandline, then LTSmin can start multiple ProB instances to -enable parallelism.

-
-
-
-
-

OPTIONS

-
-
-
---order=ORDER -
-
-

- Select the exploration strategy: bfs-prev, bfs, chain-prev, - or chain. With bfs-prev and bfs, breadth-first search is - used. Here, bfs-prev only considers the states found at the - previous level, while bfs considers the whole visited set. With - chain-prev and chain, a chaining strategy is used. Here, - chain-prev at each level starts from the states found at the - previous level, while chain uses the whole visited set. Defaults - to bfs-prev. -

-

When using breadth-first search, the tool performs the next state computation -for all edge groups on the current level or current set of visited states. -Chaining means to apply next state for the first group to the visited -states, then apply next-state for the second group to the result, -etc. Thus, a chaining analysis can be completed in much less -iterations than a BFS analysis.

-
-
---saturation=SATURATION -
-
-

- Select a saturation strategy: none, sat-like, sat-loop, sat-fix, - sat. The sat-like strategy goes up and down the levels of the BDD - used to represent the state space. The sat-loop strategy loops over - the levels. The sat-fix strategy repeatedly performs a fixpoint - computation using saturation. The sat strategy does saturation as - described in the literature with on-the-fly expansion of the transition - relations. Defaults to none, i.e. no saturation. -

-

All strategies except sat-fix and sat work in combination with the order -to saturate levels.

-
-
---sat-granularity=GRANULARITY -
-
-

- Select the granularity of sat-like and sat-loop strategies. The - granularity indicates how many BDD levels are considered at the same - time. Defaults to 10. -

-
-
---save-sat-levels -
-
-

- Save the previous states seen at saturation levels. This option has - effect for any of the saturation strategies in combination with either - bfs-prev or chain-prev. -

-
-
---guidance=STRATEGY -
-
-

- Select a search strategy for searching for actions: unguided, - directed. The unguided strategy considers all transition - groups. The directed strategy focuses the search on the transition - groups in which the action occurs. Defaults to unguided. -

-
-
---dot=DIR -
-
-

- If this option is supplied DIR is a directory to which dot files of vector sets are written to. - Note that this option should only be used for smaller vector sets because of disk space. -

-

Three type of dot files are (over)written:

-
    -
  1. -

    -current-l<L>.dot: the nodes in the vector set at level L (and only level L), -

    -
  2. -
  3. -

    -visited-l<L>.dot: the nodes in the vector set up to and included level L, -

    -
  4. -
  5. -

    -group_next-l<L>-k<K>.dot: the nodes in the transition relation of group K at level L. -

    -
  6. -
-
-
---mu=MUFILE|MUFORMULA -
-
-

- After computing all reachable states, evaluate the mu-formula in MUFILE -

-

MUFILE is a file containing a Mu Calculus formula (see -ltsmin-mu(5)). Alternatively, the formula can be provide directly as -MUFORMULA. This formula is a propositional formula with least and greatest -fixpoint operator. It will be evaluated after generation of the complete state -space.

-
-
---ctl-star=CTLFILE|CTLFORMULA -
-
-

- CTLFILE is a file containing an Linear Temporal Logic Star (CTL*) formula - (see ltsmin-ctl(5)). Which content can also be provided directly as - CTLFORMULA. - The formula is translated to a mu-formula (see ltsmin-mu(5)), - which is evaluated after computing all reachable states. -

-
-
---no-matrix -
-
-

- Do not print the dependency matrix if -v (verbose) is used. -

-
-
---no-soundness-check -
-
-

- When using --pins-guards=assume-true disable the soundness check of the model specification. - The soundness check may be expensive and can be disabled when the model specification is known to be sound. - A guard may not evaluate to true or false but to maybe. A guard which evaluates to maybe depends on - the evaluation of another guard. For languages such as Promela and DVE it checks whether if - a guard evaluates to maybe there is another guard on the left which evaluates to false. For languages such as - mCRL2 it also checks whether a guard on the right evaluates to false. If for all states this holds then the - model specification is sound for guard-splitting. -

-
-
---precise -
-
-

- Compute the final number of states precisely. -

-
-
---next-union -
-
-

- If supported by the vset implementation; perform the computation of successor states simultaneously with unifying - the current states. Simultaneously, means with a single BDD/MDD operation. -

-
-
---inv-par -
-
-

- Checks all invariants in parallel. -

-
-
---inv-bin-par -
-
-

- Checks both sides of a binary operand in parallel in an invariant, requires --inv-par. - Note that this option may actually slow down invariant checking, because parallelization - of a binary operand disables short-circuit evaluation. -

-
-
-
-

ProB Options

-
-
---no-close -
-
-

- Do not close the connection to ProB. This will leave the ProB instance running, - such that the connection can be reused. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Symbolic Parity Game Options

-

A symbolic parity game can be generated either by using the --mucalc -option or by using the PBES language module.

-
-
---pg-solve -
-
-

- Solve the generated parity game. -

-
-
---pg-reduce -
-
-

- Reduce the generated parity game on-the-fly (experimental). -

-
-
---pg-write=FILE -
-
-

- Writes a symbolic parity game to FILE. -

-
-
-
-
-

Symbolic Parity Game Solver Options

-
-
---attr=default|chain|par|par2 -
-
-

- Choose attractor function. -

-

Available attractor functions:

-
-
-default -
-
-

- Straightforward attractor computation. -

-
-
-chain -
-
-

- Chaining attractor, applies transition groups in a different order - than default in computing an attractor level. -

-
-
-par -
-
-

- Spawns parallel tasks to compute forward and backward steps for each - attractor level. -

-
-
-par2 -
-
-

- Spawns more parallel tasks than par, by applying forward steps in - parallel to the result of the backward steps of the different - transition groups. -

-
-
-
-
---saturating-attractor -
-
-

- Use saturation in the chaining attractor. -

-
-
---pg-write-dot -
-
-

- Write dot files to disk during parity game solving for debugging. -

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/prom2lts-dist.html b/assets/man/prom2lts-dist.html deleted file mode 100644 index 8f8a9c2af..000000000 --- a/assets/man/prom2lts-dist.html +++ /dev/null @@ -1,1754 +0,0 @@ - - - - - -prom2lts-dist(1) - - - - - -
-
-

SYNOPSIS

-
-

prom2lts-dist [OPTIONS]… input.prom [output.fmt]

-
-
-
-

DESCRIPTION

-
-

prom2lts-dist generates a labelled transition system from a specification -provided in input.prom. Specifications are compiled with SpinS -from PROMELA input models. output.fmt specifies the name of the -output archive. The desired format is deduced from the filename -extension. Available formats are described below.

-

Using the option --workers=N, this tool starts the command mpirun silently -in the background with the suitable options, i.e. -np 4. -Alternatively, one may wish to call mpirun with additional options. This can -be done using the --mpi option, e.g.:

-
-
-
mpirun -np 4 -mca btl tcp,self {manname} --mpi
-
-
-
-
-

SpinS

-
-

Use SpinS (distributed as submodule LTSmin) to compile PROMELA model -leader.pm to leader.pm.spins:

-
-
-
spins -o3 leader.pm
-
-

The optional flag -o3 turns off control flow optimizations.

-

On the resulting compiled SpinS module, all SpinS-related LTSmin -tools can be used:

-
-
-
prom2lts-sym -rgs --order=chain leader.pm.spins leader.etf
-prom2lts-mc --assert -prr --threads=16 leader.pm.spins
-prom2lts-seq --por -d --trace=t.gcf leader.pm.spins
-
-

These three examples perform: full symbolic reachability with chaining order -(--order) and reordering (-rgs) storing the -state space in ETF format, doing a randomized (-prr) parallel (--threads) -search for assertion violations (--assert) in the model, and searching for -deadlocks (-d) storing the first counter example in t.gcf (--trace).

-

If a never claim is present in the model, a Buchi automaton is created. -LTSmin can directly perform LTL model checking on such models:

-
-
-
prom2lts-mc --strategy=cndfs --threads=16 leader-never.pm.spins
-prom2lts-seq --por --proviso=color --strategy=scc leader-never.pm.spins
-
-

These two examples perform LTL model checking using: multi-core NDFS (cndfs), -and a sequential SCC-based algorithm with partial order reduction (--por and ---proviso, where different provisos are available). -Again one can provide additional options to store traces, etc.

-

See the man pages of the respective tools for further options.

-
- - - -
-
Note
-
SpinS is an adaptation of the SpinJa model checker, which generates C code -implementing the PINS interface instead of Java code.
-
-
-
-
-

OPTIONS

-
-
-
---nice=LEVEL -
-
-

- Set the nice level of all worker processes. This is useful - when running on other people’s workstations. -

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
---filter=<patternlist> -
-
-

- Select the labels to be written to file from the - state vector elements, state labels and edge labels. - The argument is a semicolon separated list of shell - file patterns. Each pattern may be prefixed with "!" to - exclude a set of labels. If none of the patterns matches the default - is to exclude the label. Hence, all labels starting with - an "x" are specified as "x*". The complement all labels, - except those starting with an "x" are specified as "!x*;*". -

-
-
---cost=<edge label> -
-
-

- The given edge labels defines the cost of an edge. Based on this cost, - the lowest cost for reaching every state is computed. Moreover, the order - in which states are explored is such that lower cost states are explored - before higher costs ones. The levels reported when this options is in effect are - cost levels. The counter-example traces are guaranteed to be a lowest cost path. - However, the length of the trace may not be minimal. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Hybrid Runtime Options

-

The Hybrid Runtime Environment provides startup options for several parallel architectures.

-
-

Posix threads options

-

If the application supports it and Posix threads are supported by the OS then -the following option is available:

-
-
---threads[=count] -
-
-

-Start count worker threads. The default count is the number of CPU’s in the system. -

-
-
-
-
-

Posix processes options

-

If the application supports it and Posix shared memory is supported by the OS then -the following option is available:

-
-
---procs[=count] -
-
-

-Fork count worker processes. The default count is the number of CPUs in the system. -

-
-
-

Note that MacOS X only supports Posix shared memory from version 10.7 (Lion) -onwards.

-
-
-

MPI options

-

If the application supports it and MPI support was compiled into the binary then -the following options are available:

-
-
---workers=count -
-
-

-Start the program with count MPI workers. -

-
-
---mpirun=mpirun arguments -
-
-

-Invoke mpirun with the given arguments. -

-
-
---mpi -
-
-

-Ignore --workers and --mpirun options and start the MPI runtime. -

-
-
-
-
-
-

General Options

-
-
--v -
-
-

-Increase the level of verbosity -

-
-
--q -
-
-

-Be quiet; do not print anything to the terminal. -

-
-
---debug=file -
-
-

-Enable debugging output for file. -

-
-
---version -
-
-

-Print version string of this tool. -

-
-
--h, --help -
-
-

-Print help text -

-
-
---usage -
-
-

-Print short usage summary. -

-
-
---stats -
-
-

-Enable statistics gathering/printing. -

-
-
---where -
-
-

-Include file and line number in debug messages. -

-
-
---when -
-
-

-Include the wall time since program start in all messages. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/prom2lts-mc.html b/assets/man/prom2lts-mc.html deleted file mode 100644 index b225c6842..000000000 --- a/assets/man/prom2lts-mc.html +++ /dev/null @@ -1,2022 +0,0 @@ - - - - - -prom2lts-mc(1) - - - - - -
-
-

SYNOPSIS

-
-

prom2lts-mc [OPTION]… input.prom

-
-
-
-

DESCRIPTION

-
-

prom2lts-mc performs multi-core reachability and LTL model checking on the -labelled transition system from a compiled specification provided in -input.prom or input.prom.spins. -LTS output is not supported by this tool, use the distributed tools instead.

-
-
-
-

SpinS

-
-

Use SpinS (distributed as submodule LTSmin) to compile PROMELA model -leader.pm to leader.pm.spins:

-
-
-
spins -o3 leader.pm
-
-

The optional flag -o3 turns off control flow optimizations.

-

On the resulting compiled SpinS module, all SpinS-related LTSmin -tools can be used:

-
-
-
prom2lts-sym -rgs --order=chain leader.pm.spins leader.etf
-prom2lts-mc --assert -prr --threads=16 leader.pm.spins
-prom2lts-seq --por -d --trace=t.gcf leader.pm.spins
-
-

These three examples perform: full symbolic reachability with chaining order -(--order) and reordering (-rgs) storing the -state space in ETF format, doing a randomized (-prr) parallel (--threads) -search for assertion violations (--assert) in the model, and searching for -deadlocks (-d) storing the first counter example in t.gcf (--trace).

-

If a never claim is present in the model, a Buchi automaton is created. -LTSmin can directly perform LTL model checking on such models:

-
-
-
prom2lts-mc --strategy=cndfs --threads=16 leader-never.pm.spins
-prom2lts-seq --por --proviso=color --strategy=scc leader-never.pm.spins
-
-

These two examples perform LTL model checking using: multi-core NDFS (cndfs), -and a sequential SCC-based algorithm with partial order reduction (--por and ---proviso, where different provisos are available). -Again one can provide additional options to store traces, etc.

-

See the man pages of the respective tools for further options.

-
- - - -
-
Note
-
SpinS is an adaptation of the SpinJa model checker, which generates C code -implementing the PINS interface instead of Java code.
-
-
-
-
-

OPTIONS

-
-
-
---threads=NUMBER -
-
-

- Number of threads to use for state space exploration - (default: NUMBER=NUM_CORES). Maximum is 64. -

-
-
---strategy=TYPE -
-
-

- Select an exploration strategy. Two kinds of algorithms - are available: LTL model checking and reachability. - The multi-core LTL algorithms (Nested DFS) are implemented - in a swarmed fashion, however with a shared state storage. - On top of that, MCNDFS and ENDFS offer work sharing between threads - and can deliver speedups for some models. - Note that the LTL algorithms require buchi automata as input. - Such a model can be provided directly by the language frontend, - i.e., DiVinE property models are supported, or by the LTL - layer (see --ltl). - Note finally that strict reachability exploration orders - are not guaranteed by all multi-core search strategies. - TYPE can be one of the following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-sbfs -
-
-

- explore state space in strict breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in relaxed depth-first order. Relaxed meaning that - the inclusion check on the set of visited states is executed immediately - after generating a state. This saves stack space and improves performance - of the parallel reachability analysis. -

-
-
-ndfs -
-
-

- multi-core swarmed Nested Depth-First Search (Courcoubetis et al.). -

-
-
-nndfs -
-
-

- multi-core swarmed New Nested Depth-First Search (Schwoon, Esparza). -

-
-
-ldfs -
-
-

- Multi-Core Nested Depth-First Search (Laarman, Langerak, van de Pol, Weber, Wijs). -

-
-
-endfs -
-
-

- Multi-Core Nested Depth-First Search by Evangelista et al. The algorithm has - been adapted with the cyan color encoding and early cycle detection, as - described in "Variations on Multi-Core Nested Depth-First Search" - (Laarman, van de Pol). - Note that ENDFS requires a repair procedure, NNDFS is chosen by default. - Alternatives can be chosen by providing a list of strategies, for example: - "endfs,mcndfs", yields the NMC-NDFS algorithm as described in the Variations - paper (with load balancing). - Finally, we also allow multiple levels of ENDFS to be combined: - "endfs,endfs,nndfs". -

-
-
-cndfs -
-
-

- New CNDFS algorithm. - Multi-Core Nested Depth-First Search (Evangelista, Laarman, Petrucci, van de Pol). -

-
-
-tarjan -
-
-

- Tarjan’s sequential SCC algorithm. - Depth-First Search and Linear Graph Algorithms (Tarjan). -

-
-
-renault -
-
-

- Renault’s SCC algorithm. - Parallel Explicit Model Checking for Generalized Büchi Automata (Renault et al.). -

-
-
-ufscc -
-
-

- The UFSCC SCC algorithm. - Multi-Core On-The-Fly SCC Decomposition (Bloemen, Laarman, van de Pol). -

-
-
-
-
---perm=TYPE -
-
-

- Select the transition permutation, which is used to guide - different threads to different parts of the state space. - A good permutation can significantly speed up bug hunting. - TYPE can be one of the following options, each has - different properties in terms of performance and effectiveness - summarized as (perf./eff.) : -

-
-
-dynamic -
-
-

- use "fresh successor heuristics" described in - "Variations on Multi-Core Nested Depth-First Search" (Laarman, van de Pol). - (decent/very good for bug hunting). Default for LTL. -

-
-
-sort -
-
-

- sort on the unique id of the successor state (decent/good) -

-
-
-random -
-
-

- use multiple fixed random permutation schemes per worker (decent/good). -

-
-
-rr -
-
-

- randomized using a full random sort order on the states. This is more random - than the previous option, but requires more pre-computation time for the - random array (decent/almost perfect). -

-
-
-shift -
-
-

- shift the order of transitions by a fixed value per worker (fast/decent). -

-
-
-otf -
-
-

- sort according to a dynamic permutation scheme (slow/perfect). -

-
-
-none -
-
-

- use the same exploration order for all workers. Default for reachability. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-table -
-
-

- use a lockless hash table. -

-
-
-tree -
-
-

- use a lockless tree-compressed table. In many cases the tree - can compress states to two integers regardless of their length. To efficiently - accommodate more than 4*10^9 states, the table is split in a root and a leaf - table whose respective size can be adjusted using the --ratio option - (default). -

-
-
-cleary-tree -
-
-

- use a lockless tree-compressed hash table with a parallel Cleary table to - store roots. The compressed size of a state can approach one integer - with this approach. The leafs table is stored as a standard tree table (two - integers per subtree), which typically can be much smaller (up to the - square root of the root table size). To control the respective size of the - leaf table use the --ratio option. -

-
-
-
-
---ratio=NUMBER -
-
-

- Log_2 ratio between root and leaf table in tree compression. The ratio - can theoretically be as low as the square root of the root table size - (see --size). This will however only work if the state vectors are - perfectly combinatorial wrt their variable values. In most cases - the leaf table will grow larger, but find found that a factor four - (--ratio=2) works well for over 75% of the BEEM models. - (default: NUMBER=2). -

-
-
---size=NUMBER -
-
-

- Log_2 hash table size in elements (default: NUMBER=24). - This is also used for the internal node table of the tree. -

-
-
---zobrist=NUMBER -
-
-

- Save time by using zobrist incremental state hashing. - NUMBER defines the (log_2) size of the random number table - (default: 0=OFF). Large tables mean better hash distributions, - but more cache misses due to memory size. - Experiments have shown that small tables (2^6) suffice for - good distributions (equal or better than Jenkin’s hash). - Improvements are only noticable for fast state generators, like - DiVinE 2.2 (dve22lts-mc(1)). -

-
-
---max=NUMBER -
-
-

- Maximum search depth. -

-
-
---proviso=PROVISO -
-
-

- Change the proviso implementation for partial order reduction in presence - of safety properties or liveness properties. Parallel LTL is only supported - with the cndfs proviso in the cndfs search strategy. Sequentially, LTL is - also supported the stack proviso in the ndfs search strategy. - PROVISO can be either: -

-
-
-force-none -
-
-

- Disables the ignoring proviso check (only useful for benchmarking or - bug hunting). -

-
-
-closed-set -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack proviso. It works with both - the dfs and (p/s)bfs exploration strategies. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs or ndfs search strategy (for resp. safety or LTL properties). -

-
-
-cndfs -
-
-

- A special parallel cycle proviso is used to enable POR with multi-core - LTL model checking using the cndfs search strategy. -

-
-
-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/prom2lts-seq.html b/assets/man/prom2lts-seq.html deleted file mode 100644 index 83d5d1103..000000000 --- a/assets/man/prom2lts-seq.html +++ /dev/null @@ -1,2065 +0,0 @@ - - - - - -prom2lts-seq(1) - - - - - -
-
-

SYNOPSIS

-
-

prom2lts-seq [OPTION]… input.prom [output.fmt]

-
-
-
-

DESCRIPTION

-
-

prom2lts-seq generates a labelled transition system from a specification -provided in input.prom by enumerative reachability -analysis using a general state expanding algorithm. -output.fmt specifies the name of -the output archive. The desired format is deduced from the filename -extension. Available formats are described below.

-
-
-
-

SpinS

-
-

Use SpinS (distributed as submodule LTSmin) to compile PROMELA model -leader.pm to leader.pm.spins:

-
-
-
spins -o3 leader.pm
-
-

The optional flag -o3 turns off control flow optimizations.

-

On the resulting compiled SpinS module, all SpinS-related LTSmin -tools can be used:

-
-
-
prom2lts-sym -rgs --order=chain leader.pm.spins leader.etf
-prom2lts-mc --assert -prr --threads=16 leader.pm.spins
-prom2lts-seq --por -d --trace=t.gcf leader.pm.spins
-
-

These three examples perform: full symbolic reachability with chaining order -(--order) and reordering (-rgs) storing the -state space in ETF format, doing a randomized (-prr) parallel (--threads) -search for assertion violations (--assert) in the model, and searching for -deadlocks (-d) storing the first counter example in t.gcf (--trace).

-

If a never claim is present in the model, a Buchi automaton is created. -LTSmin can directly perform LTL model checking on such models:

-
-
-
prom2lts-mc --strategy=cndfs --threads=16 leader-never.pm.spins
-prom2lts-seq --por --proviso=color --strategy=scc leader-never.pm.spins
-
-

These two examples perform LTL model checking using: multi-core NDFS (cndfs), -and a sequential SCC-based algorithm with partial order reduction (--por and ---proviso, where different provisos are available). -Again one can provide additional options to store traces, etc.

-

See the man pages of the respective tools for further options.

-
- - - -
-
Note
-
SpinS is an adaptation of the SpinJa model checker, which generates C code -implementing the PINS interface instead of Java code.
-
-
-
-
-

OPTIONS

-
-
-
---strategy=TYPE -
-
-

- Select exploration strategy. TYPE can be one of the - following options: -

-
-
-bfs -
-
-

- explore state space in breadth-first order (default). -

-
-
-dfs -
-
-

- explore state space in depth-first order. -

-
-
-scc -
-
-

- perform LTL model checking based on Buchi automata with Couvreur’s - algorithm (accepting cycle detection). This requires an accepting - state label to be present. See below. -

-
-
-
-
---state=TYPE -
-
-

- Select type of data structure for storing visited states. - TYPE can be one of the following options: -

-
-
-tree -
-
-

- use a tree-compressed hash table (default). -

-
-
-table -
-
-

- use a hash table. -

-
-
-vset -
-
-

- use a vector set (decision diagram). -

-
-
-
-
---max=DEPTH -
-
-

- Maximum search depth, search until DEPTH. -

-
-
---proviso=closedset|stack|color -
-
-

- Change the proviso implementation for partial order reduction (ltl) -

-

Change the proviso used to detect that an accepting cycle is closed. -Three options are available, the default is closedset.

-
-
-closedset -
-
-

- The closed set proviso is the default proviso which requires - almost no extra work/memory. It might however result in less - reduction than the stack or color proviso. It works with both - the dfs- and bfs exploration strategy. -

-
-
-stack -
-
-

- The stack proviso is the proviso used for example by the spin - model checker. It requires some extra work/memory but may - result in a better reduction than closedset. It works only - for a dfs/scc search strategy (since bfs has no stack). -

-
-
-color -
-
-

- The color proviso requires a lot of extra work and memory - but can significantly improve the reduction. It too works - only with the dfs/scc search strategies. -

-
-
-
-
-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---ltl=LTLFILE|LTLFORMULA -
-
-

- Compute cross-product of a Buchi automaton and the specification -

-

LTLFILE is a file containing an Linear Temporal Logic formula (see -ltsmin-ltl(5)). Which content can also be provided directly as -LTLFORMULA. This formula will be converted to a Buchi -automaton. Then the synchronous cross product with the original -specification is computed on-the-fly. A state label is added to -encode accepting states.

-
-
---ltl-semantics=spin|textbook|ltsmin -
-
-

- Change the semantics of the crossproduct generated using --ltl -

-

Three options are available, the default is spin.

-
-
-spin -
-
-

- Use semantics equal to the spin model checker. From the source - state all transitions are generated. Then, state predicates - are evaluated on the source state. The Buchi automaton now - moves according to these predicates. - Deadlocks in the LTS cause the Buchi to progress independently. -

-
-
-textbook -
-
-

- Use textbook semantics. A new initial state is generated with an - outgoing transition to the initial state. Now, predicates - are evaluated on the target state and the Buchi automaton - moves according to these predicates. - Deadlocks in the LTS do NOT cause the Buchi to progress independently. -

-
-
-ltsmin -
-
-

- Same as spin semantics, but now deadlocks in the LTS do NOT cause the Buchi - to progress independently. -

-
-
-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

LTS I/O Options

-
-
---block-size=BYTES -
-
-

- Size of a block in bytes. Defaults to 32,768. -

-
-
---cluster-size=BLOCKS -
-
-

- Number of blocks in a cluster. Defaults to 32. -

-
-
-
-
-

Development Options

-
-
---grey -
-
-

- Make use of GetTransitionsLong calls. -

-

A language module can have three next state calls: -GetTransitionsAll, GetTransitionsLong and GetTransitionsShort. The first call is used by default, -the second call is used when this flag is passed and the third form is used if --cache is enabled. -This allows all three calls in a language module to be tested.

-
-
---write-state -
-
-

- Write the full state vector. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

File Formats

-
-

The following file formats are supported:

-
    -
  • -

    -Directory format (*.dir, *.dz and *.gcf) -

    -
  • -
  • -

    -Vector format (*.dir, *.gcd, *.gcf) -

    -
  • -
  • -

    -Binary Coded Graphs (*.bcg) -

    -
  • -
  • -

    -Aldebaran Format (*.aut) -

    -
  • -
  • -

    -FSM Format (*.fsm) -

    -
  • -
  • -

    -MRMC/Prism (*.tra+*.lab) -

    -
  • -
  • -

    -PGSolver format (*.pg) -

    -
  • -
-

If a tool operates in streaming mode then support for file formats is limited, -as can be seen in the following table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Format Streaming mode Load/Store mode

DIR

R/W

R/W

VEC

R/W

R/W

BCG

W

R/W

AUT

W

R/W

FSM

W

W

TRA

-

R/W

PG

-

W

-
-

The directory format uses multiple files to store an LTS. -The various extension explain how these files are stored in the underlying file system. -The *.dir format uses multiple files in a directory without compression. -If the LTS has one edge label, no state labels and does not store state vectors then -these files are backwards compatible. Neither the *.dz nor the *.gcf -formats are backwards compatible. Both formats use compression. The first uses a directory for the files, -second interleaves files into a single file.

-

If you try to open a *.dir with the old mCRL tools and -you get the error message:

-
-
-
wrong file version: 0
-
-

then the directory is probably compressed. -If that happens then you may convert the directory by typing the command:

-
-
-
ltsmin-convert bad.dir good.dir
-
-
-
-
-

LTL MODEL CHECKING

-
-

LTL model checking requires a Buchi cross product with accepting states marked -with accepting state labels, and a search strategy which takes these -labels into account (see ndfs / scc strategies of the sequential and multi-core -tools).

-

For generating a cross product, the following options are supported:

-
    -
  1. -

    -The input specification is already combined with a Buchi automaton, - and states are appropriately marked with accepting labels. Currently two - frontends support this functionality: SpinS (see documentation on prom - tools), and DiVinE (see documentation on dve tools). -

    -
  2. -
  3. -

    -LTSmin tools can build the cross product of input specification and - Buchi automaton (through a PINS2PINS layer enabled with the --ltl option) - themselves, and will annotate cross-product states appropriately when they - are accepting. See also --labels option in the PINS tools. -

    -
  4. -
-
- - - -
-
Note
-
Combination with the Partial Order Reduction PINS2PINS layer (--por) -requires the latter option.
-
-
- - - -
-
Note
-
As of LTSmin release 1.9, our default LTL semantics mimics those of -SPIN/DiVinE. Before that, LTSmin implemented textbook semantics. See -the documentation on the enumerative tools for more information.
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/prom2lts-sym.html b/assets/man/prom2lts-sym.html deleted file mode 100644 index daf8647e3..000000000 --- a/assets/man/prom2lts-sym.html +++ /dev/null @@ -1,1947 +0,0 @@ - - - - - -prom2lts-sym(1) - - - - - -
-
-

SYNOPSIS

-
-

prom2lts-sym [OPTION]… input.prom [output.etf]

-
-
-
-

DESCRIPTION

-
-

prom2lts-sym performs a reachability analysis on a specification provided -in input.prom. Specifications are compiled with SpinS from -PROMELA input models. output.etf specifies the name of the output -archive, written in etf(5) format.

-
-
-
-

SpinS

-
-

Use SpinS (distributed as submodule LTSmin) to compile PROMELA model -leader.pm to leader.pm.spins:

-
-
-
spins -o3 leader.pm
-
-

The optional flag -o3 turns off control flow optimizations.

-

On the resulting compiled SpinS module, all SpinS-related LTSmin -tools can be used:

-
-
-
prom2lts-sym -rgs --order=chain leader.pm.spins leader.etf
-prom2lts-mc --assert -prr --threads=16 leader.pm.spins
-prom2lts-seq --por -d --trace=t.gcf leader.pm.spins
-
-

These three examples perform: full symbolic reachability with chaining order -(--order) and reordering (-rgs) storing the -state space in ETF format, doing a randomized (-prr) parallel (--threads) -search for assertion violations (--assert) in the model, and searching for -deadlocks (-d) storing the first counter example in t.gcf (--trace).

-

If a never claim is present in the model, a Buchi automaton is created. -LTSmin can directly perform LTL model checking on such models:

-
-
-
prom2lts-mc --strategy=cndfs --threads=16 leader-never.pm.spins
-prom2lts-seq --por --proviso=color --strategy=scc leader-never.pm.spins
-
-

These two examples perform LTL model checking using: multi-core NDFS (cndfs), -and a sequential SCC-based algorithm with partial order reduction (--por and ---proviso, where different provisos are available). -Again one can provide additional options to store traces, etc.

-

See the man pages of the respective tools for further options.

-
- - - -
-
Note
-
SpinS is an adaptation of the SpinJa model checker, which generates C code -implementing the PINS interface instead of Java code.
-
-
-
-
-

OPTIONS

-
-
-
---order=ORDER -
-
-

- Select the exploration strategy: bfs-prev, bfs, chain-prev, - or chain. With bfs-prev and bfs, breadth-first search is - used. Here, bfs-prev only considers the states found at the - previous level, while bfs considers the whole visited set. With - chain-prev and chain, a chaining strategy is used. Here, - chain-prev at each level starts from the states found at the - previous level, while chain uses the whole visited set. Defaults - to bfs-prev. -

-

When using breadth-first search, the tool performs the next state computation -for all edge groups on the current level or current set of visited states. -Chaining means to apply next state for the first group to the visited -states, then apply next-state for the second group to the result, -etc. Thus, a chaining analysis can be completed in much less -iterations than a BFS analysis.

-
-
---saturation=SATURATION -
-
-

- Select a saturation strategy: none, sat-like, sat-loop, sat-fix, - sat. The sat-like strategy goes up and down the levels of the BDD - used to represent the state space. The sat-loop strategy loops over - the levels. The sat-fix strategy repeatedly performs a fixpoint - computation using saturation. The sat strategy does saturation as - described in the literature with on-the-fly expansion of the transition - relations. Defaults to none, i.e. no saturation. -

-

All strategies except sat-fix and sat work in combination with the order -to saturate levels.

-
-
---sat-granularity=GRANULARITY -
-
-

- Select the granularity of sat-like and sat-loop strategies. The - granularity indicates how many BDD levels are considered at the same - time. Defaults to 10. -

-
-
---save-sat-levels -
-
-

- Save the previous states seen at saturation levels. This option has - effect for any of the saturation strategies in combination with either - bfs-prev or chain-prev. -

-
-
---guidance=STRATEGY -
-
-

- Select a search strategy for searching for actions: unguided, - directed. The unguided strategy considers all transition - groups. The directed strategy focuses the search on the transition - groups in which the action occurs. Defaults to unguided. -

-
-
---dot=DIR -
-
-

- If this option is supplied DIR is a directory to which dot files of vector sets are written to. - Note that this option should only be used for smaller vector sets because of disk space. -

-

Three type of dot files are (over)written:

-
    -
  1. -

    -current-l<L>.dot: the nodes in the vector set at level L (and only level L), -

    -
  2. -
  3. -

    -visited-l<L>.dot: the nodes in the vector set up to and included level L, -

    -
  4. -
  5. -

    -group_next-l<L>-k<K>.dot: the nodes in the transition relation of group K at level L. -

    -
  6. -
-
-
---mu=MUFILE|MUFORMULA -
-
-

- After computing all reachable states, evaluate the mu-formula in MUFILE -

-

MUFILE is a file containing a Mu Calculus formula (see -ltsmin-mu(5)). Alternatively, the formula can be provide directly as -MUFORMULA. This formula is a propositional formula with least and greatest -fixpoint operator. It will be evaluated after generation of the complete state -space.

-
-
---ctl-star=CTLFILE|CTLFORMULA -
-
-

- CTLFILE is a file containing an Linear Temporal Logic Star (CTL*) formula - (see ltsmin-ctl(5)). Which content can also be provided directly as - CTLFORMULA. - The formula is translated to a mu-formula (see ltsmin-mu(5)), - which is evaluated after computing all reachable states. -

-
-
---no-matrix -
-
-

- Do not print the dependency matrix if -v (verbose) is used. -

-
-
---no-soundness-check -
-
-

- When using --pins-guards=assume-true disable the soundness check of the model specification. - The soundness check may be expensive and can be disabled when the model specification is known to be sound. - A guard may not evaluate to true or false but to maybe. A guard which evaluates to maybe depends on - the evaluation of another guard. For languages such as Promela and DVE it checks whether if - a guard evaluates to maybe there is another guard on the left which evaluates to false. For languages such as - mCRL2 it also checks whether a guard on the right evaluates to false. If for all states this holds then the - model specification is sound for guard-splitting. -

-
-
---precise -
-
-

- Compute the final number of states precisely. -

-
-
---next-union -
-
-

- If supported by the vset implementation; perform the computation of successor states simultaneously with unifying - the current states. Simultaneously, means with a single BDD/MDD operation. -

-
-
---inv-par -
-
-

- Checks all invariants in parallel. -

-
-
---inv-bin-par -
-
-

- Checks both sides of a binary operand in parallel in an invariant, requires --inv-par. - Note that this option may actually slow down invariant checking, because parallelization - of a binary operand disables short-circuit evaluation. -

-
-
--n, --no-exit -
-
-

- Do not exit when an error is found. Just count errors. Error counts are - printed with -v. -

-
-
--d, --deadlock -
-
-

- Find state with no outgoing transitions. Returns with exit code 1 if - a deadlock is found, 0 or 255 (error) otherwise. -

-
-
--i, --invariant=PREDFILE|PREDEXPRESSION -
-
-

- Find state where the invariant is violated. The file PREDFILE - contains an expression in a simple predicate language (see - ltsmin-pred(5)). Its contents can also be entered directly as - a PREDEXPRESSION. Returns with exit code 1 if - a violation is found, 0 or 255 (error) otherwise. -

-
-
--a, --action=STRING -
-
-

- Find state with an outgoing transition of type STRING. Returns with exit - code 1 if the action is found, 0 or 255 (error) otherwise. -

-
-
---trace='FILE'.gcf -
-
-

- When finding a deadlock state or a transition labelled with a certain - action, write a trace to 'FILE'.gcf, beginning from the initial state. - Traces can be pretty-printed with ltsmin-printtrace(1). -

-
-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

Symbolic Parity Game Options

-

A symbolic parity game can be generated either by using the --mucalc -option or by using the PBES language module.

-
-
---pg-solve -
-
-

- Solve the generated parity game. -

-
-
---pg-reduce -
-
-

- Reduce the generated parity game on-the-fly (experimental). -

-
-
---pg-write=FILE -
-
-

- Writes a symbolic parity game to FILE. -

-
-
-
-
-

Symbolic Parity Game Solver Options

-
-
---attr=default|chain|par|par2 -
-
-

- Choose attractor function. -

-

Available attractor functions:

-
-
-default -
-
-

- Straightforward attractor computation. -

-
-
-chain -
-
-

- Chaining attractor, applies transition groups in a different order - than default in computing an attractor level. -

-
-
-par -
-
-

- Spawns parallel tasks to compute forward and backward steps for each - attractor level. -

-
-
-par2 -
-
-

- Spawns more parallel tasks than par, by applying forward steps in - parallel to the result of the backward steps of the different - transition groups. -

-
-
-
-
---saturating-attractor -
-
-

- Use saturation in the chaining attractor. -

-
-
---pg-write-dot -
-
-

- Write dot files to disk during parity game solving for debugging. -

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-1 -
-
-

- Counter example found. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
- -
-

- - - diff --git a/assets/man/prom2torx.html b/assets/man/prom2torx.html deleted file mode 100644 index 0d3e60cc1..000000000 --- a/assets/man/prom2torx.html +++ /dev/null @@ -1,1358 +0,0 @@ - - - - - -prom2torx(1) - - - - - -
-
-

SYNOPSIS

-
-

prom2torx [OPTION]… input.prom

-
-
-
-

DESCRIPTION

-
-

prom2torx provides access to a labelled transition system from a -specification provided in input.prom via the TorX-Explorer textual -interface on stdin and stdout. Specifications are compiled with -SpinS from PROMELA input models.

-
-
-
-

SpinS

-
-

Use SpinS (distributed as submodule LTSmin) to compile PROMELA model -leader.pm to leader.pm.spins:

-
-
-
spins -o3 leader.pm
-
-

The optional flag -o3 turns off control flow optimizations.

-

On the resulting compiled SpinS module, all SpinS-related LTSmin -tools can be used:

-
-
-
prom2lts-sym -rgs --order=chain leader.pm.spins leader.etf
-prom2lts-mc --assert -prr --threads=16 leader.pm.spins
-prom2lts-seq --por -d --trace=t.gcf leader.pm.spins
-
-

These three examples perform: full symbolic reachability with chaining order -(--order) and reordering (-rgs) storing the -state space in ETF format, doing a randomized (-prr) parallel (--threads) -search for assertion violations (--assert) in the model, and searching for -deadlocks (-d) storing the first counter example in t.gcf (--trace).

-

If a never claim is present in the model, a Buchi automaton is created. -LTSmin can directly perform LTL model checking on such models:

-
-
-
prom2lts-mc --strategy=cndfs --threads=16 leader-never.pm.spins
-prom2lts-seq --por --proviso=color --strategy=scc leader-never.pm.spins
-
-

These two examples perform LTL model checking using: multi-core NDFS (cndfs), -and a sequential SCC-based algorithm with partial order reduction (--por and ---proviso, where different provisos are available). -Again one can provide additional options to store traces, etc.

-

See the man pages of the respective tools for further options.

-
- - - -
-
Note
-
SpinS is an adaptation of the SpinJa model checker, which generates C code -implementing the PINS interface instead of Java code.
-
-
-
-
-

OPTIONS

-
-
-

PINS Options

-
-
---labels -
-
-

- Print state variable, type and value names, and state and action labels. - Then exit. - Useful for writing predicate (--invariant), LTL (--ltl), - CTL/CTL* (--ctl), and mu-calculus (--mu) expressions. -

-
-
---matrix -
-
-

- Print the dependency matrix and exit. -

-
-
--c, --cache -
-
-

- Enable caching of greybox calls. -

-

If this option is used, the state space generator makes calls to the -short version of the greybox next-state function and memoizes the -results. If the next-state function is expensive this will yield -substantial speedups.

-
-
---pins-guards -
-
-

- Use guards in combination with the long next-state function to speed up the next-state function. -

-
-
--r, --regroup=SPEC -
-
-

- Enable regrouping optimizations on the dependency matrix. -

-

SPEC is a comma-separated sequence of transformations -<(T,)+> which are applied in this order to the -dependency matrix. The following transformations T are available:

-
-
-gs -
-
-

- Group Safely; macro for "gc,gr,cw,rs"; almost - always a win. -

-
-
-ga -
-
-

- Group Aggressively (row subsumption); macro for - "gc,rs,ru,cw,rs"; can be a huge win, but in some - cases causes slower state space generation. -

-
-
-gsa -
-
-

- Group Simulated Annealing; macro for "gc,gr,csa,rs"; almost - always a win; usually better than gs. -

-
-
-gc -
-
-

- Group Columns; macro for "cs,cn". -

-
-
-gr -
-
-

- Group Rows; macro for "rs,rn". -

-
-
-cs -
-
-

- Column Sort; sort columns lexicographically. -

-
-
-cn -
-
-

- Column Nub; (temporarily) group duplicate columns, thereby making - ca more tractable. Requires cs. -

-
-
-cw -
-
-

- Column sWap; minimize distance between columns by swapping them - heuristically. This reordering improves performance of the symbolic - data structures. -

-
-
-ca -
-
-

- Column All permutations; try to find the column permutation with the - best cost metric. Potentially, this is an expensive operation. -

-
-
-csa -
-
-

- Column Simulated Annealing; minimize distance between columns by - swapping them using simulated annealing. -

-
-
-rs -
-
-

- Row Sort; sort rows lexicographically. -

-
-
-rn -
-
-

- Row Nub; remove duplicate rows from the dependency matrix. This is - always a win. Requires rs. -

-
-
-ru -
-
-

- Row sUbsume; try to remove more rows than nubbing, thereby trading - speed for memory. Requires rs. -

-
-
-w2W -
-
-

- Over-approximate all must-write to may-write. May-write supports the copy (-) dependency. -

-
-
-r2+ -
-
-

- Over-approximate read to read+write. Allows read dependencies to also subsume write dependencies. -

-
-
-w2+ -
-
-

- Over-approximate must-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
-W2+ -
-
-

- Over-approximate may-write to read+write. Allows must-write dependencies to also subsume read dependencies. -

-
-
--2r -
-
-

- Over-approximate copy to read. May be useful for testing whether the dependency matrix is correct. -

-
-
-rb4w -
-
-

- Use special heuristics to move read dependencies before write dependences. Often a win in symbolic state space generation. -

-
-
-mm -
-
-

- Writes metrics of the selected (sr, sw, sc) matrix to stdout. The following metrics are printed: -

-
    -
  1. -

    -Event span: the total distance between the minimum and maximum column of rows. -

    -
  2. -
  3. -

    -Normalized event span: the event span divided by the size of the matrix (rows x columns). -

    -
  4. -
  5. -

    -Weighted event span: the weighted event span, the event span, including a moment signifying the location of the span. See, Siminiceanu et al., we use moment 1. -

    -
  6. -
  7. -

    -Normalized weighted event span: the weighted event span divided by the size of the matrix (rows x column). -

    -
  8. -
-
-
-sr -
-
-

- Select the read matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. -

-
-
-sw -
-
-

- Select the write matrix (default) for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The write matrix is the default selection, because only write dependencies can create new nodes in decision diagrams. - A bad variable order in the write matrix thus leads to a large number of peak nodes during reachability analysis. - A bad variable order in the read matrix can also lead to a slow reachability analysis, but typically - not as severe as a bad variable order in the write matrix. Slow reachability analysis due to a bad variable order - in the read matrix causes many recursive calls to the relational product operation. Typically it is best that read - dependencies are moved to the top DD level, thus left most in the read matrix. -

-
-
-sc -
-
-

- Select the combined matrix for cs, csa, cw, ca, rs, bcm, bs, bk, vcm, vacm, vgps and mm. - The combined matrix is the logical or of the read and write matrix. -

-
-
-bg -
-
-

- Use a bipartite graph (default) for bcm, bk, bs, vcm, vacm and vgps. -

-
-
-tg -
-
-

- Create a total graph of the bipartite graph for bcm, bk, bs, vcm, vacm and vgps. - This adds more vertices and edges thus increasing computation time, but sometimes provides a better ordering. -

-
-
-

Below, the sparse matrix algorithms prefixed with b are only available when LTSmin is compiled with Boost. -Algorithms prefixed with v are only available when LTSmin is compiled with ViennaCL.

-
-
-bcm -
-
-

- Apply Boost’s Cuthill-McKee ordering. -

-
-
-bk -
-
-

- Apply Boost’s King ordering. -

-
-
-bs -
-
-

- Apply Boost’s Sloan ordering. -

-
-
-vcm -
-
-

- Apply ViennaCL’s Cuthill-McKee ordering. -

-
-
-vacm -
-
-

- Apply ViennaCL’s advanced Cuthill-McKee ordering. -

-
-
-vgps -
-
-

- Apply ViennaCl’s Gibbs-Poole-Stockmeyer ordering. -

-
-
-f -
-
-

- Apply FORCE ordering. -

-
-
-
-
---row-perm=PERM -
-
-

- Apply row permutation PERM, where PERM is a sequence of row numbers, separated by a comma. - E.g. the vector 2,1,0 will swap row 2 with row 0. -

-
-
---col-perm=PERM -
-
-

- Apply column permutation PERM, where PERM is a sequence of column numbers, separated by a comma. - E.g. the vector 2,1,0 will swap column 2 with column 0. -

-
-
---col-ins=PAIRS -
-
-

- Insert columns before other columns in the dependency matrix. -

-

PAIRS is a comma-separated sequence of pairs <(C.C,)+>'. -E.g. --col-ins=1.0 will insert column 1 before column 0. -Each pair contains a source column C and a target column C'. During the application of the whole -sequence, C will always be the column number that corresponds with the column before the application of the whole sequence. -The column number C' will always be the column during the application of the whole sequence. This means that -in for example --col-ins=2.0,1.0, first column 2 is inserted at position 0, then column 1 is inserted at position 0. -The result will be that the original column 2 will be at position 1. -Another important detail is that when --col-ins is used, all source columns will temporarily be "removed" -during reordering from the dependency matrix, i.e. when the -r,--regroup option is given. After reordering -is done, the columns will be inserted at the desired target position. In other words, reordering algorithms -given by the option -r,--regroup, will only be applied on the dependency matrix with source columns removed.

-
-
---graph-metrics -
-
-

- Print Boost’s and ViennaCL’s graph metrics (only available when LTSmin is compiled with Boost or ViennaCL). -

-
-
---regroup-exit -
-
-

- Exit with 0 when regrouping is done. -

-
-
---regroup-time -
-
-

- Print timing information of each transformation, given in sequence --regroup (-r). -

-
-
---mucalc=FILE|FORMULA -
-
-

- Compute a parity game for the mu-calculus formula. -

-

The mu-calculus formula is provided in the file FILE or directly -as a string FORMULA. The syntax and tool support are described in -ltsmin-mucalc(5).

-
-
---por -
-
-

- Activate partial order reduction -

-

Partial Order Reduction can reduce the state space when searching -for deadlocks (-d) or accepting cycles (--ltl).

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SUPPORT

-
-

Send questions, bug reports, comments and feature suggestions to the -LTSmin Support Team.

-
-
-
-

SEE ALSO

- -
-
-

- - - diff --git a/assets/man/spgsolver.html b/assets/man/spgsolver.html deleted file mode 100644 index d2bac3efe..000000000 --- a/assets/man/spgsolver.html +++ /dev/null @@ -1,1165 +0,0 @@ - - - - - -spgsolver(1) - - - - - -
-
-

SYNOPSIS

-
-

spgsolver [OPTIONS] <game>

-
-
-
-

OPTIONS

-
-
-

Symbolic Parity Game Solver Options

-
-
---attr=default|chain|par|par2 -
-
-

- Choose attractor function. -

-

Available attractor functions:

-
-
-default -
-
-

- Straightforward attractor computation. -

-
-
-chain -
-
-

- Chaining attractor, applies transition groups in a different order - than default in computing an attractor level. -

-
-
-par -
-
-

- Spawns parallel tasks to compute forward and backward steps for each - attractor level. -

-
-
-par2 -
-
-

- Spawns more parallel tasks than par, by applying forward steps in - parallel to the result of the backward steps of the different - transition groups. -

-
-
-
-
---saturating-attractor -
-
-

- Use saturation in the chaining attractor. -

-
-
---pg-write-dot -
-
-

- Write dot files to disk during parity game solving for debugging. -

-
-
-
-
-

Vector Set Options

-
-
---vset=TYPE -
-
-

- Select type of vector set: ldd64, ldd, list, tree, fdd, ddd, sylvan, or lddmc. - With ldd64, the 64-bit ListDD list encoding is used (non-ATerm based). - With ldd, the 32-bit ListDD list encoding is used (non-ATerm based). - With list, ATermDD with list encoding is used. - With tree, ATermDD with tree encoding is used. - With fdd, BuDDy FDDs are used. - With ddd, libDDD SDDs are used. - With sylvan, the parallel BDD package Sylvan is used. - With lddmc, the parallel LDD package LDDmc is used. - Defaults to first available type in the list. -

-
-
-vset-cache-diff=diff -
-
-

- Influences the size of operations cache when counting precisely with bignums: - cache size = floor((2log(nodes-to-count) + <diff>)^2). More precisely; LTSmin - will bitshift <diff> bits to the left or right on the number of nodes in the vector set, - depending on the signedness of <diff>. The default is 0, meaning that if - the cache is full the number of bignums in memory will be equal to the number of nodes - in the vector set. The default value seems to work well, even when the number vectors - in the vector set is very large relative to the number of nodes. If the number of vectors - relative to the number of nodes is lower, <diff> may be decreased. The user may want to - set <diff> as low as possible (to save memory), while keeping the operations cache effective. - Bignums are not floating point numbers and may thus consume a lot of memory. -

-
-
-
-
-

ListDD Options

-
-
---ldd32-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd32-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

ListDD Options

-
-
---ldd-step=STEP -
-
-

- The internal tables of ListDD resize according to the Fibonacci series. - This option sets the initial size to the Fibonacci number STEP. - Defaults to 30. -

-
-
---ldd-cache=DIFF -
-
-

- Set Fibonacci difference DIFF between the cache and nodes (DIFF may be negative). - Defaults to 1. -

-
-
-
-
-

BuDDy Options

-
-
---cache-ratio=RATIO -
-
-

- Set cache ration. Defaults to 64. -

-
-
---max-increase=NUMBER -
-
-

- Set maximum increase. Defaults to 1,000,000. -

-
-
---min-free-nodes=PERCENTAGE -
-
-

- Sets the minimum percentage of free nodes as integer between 0 - and 100. Defaults to 20. -

-
-
---fdd-bits=BITS -
-
-

- Sets the number of bits for each FDD variable. Defaults to - 16. -

-
-
---fdd-reorder=STRATEGY -
-
-

- Sets the strategy for dynamic variable reordering. Valid - options are none, win2, win2ite, win3, win3ite, sift, - siftite, random. Refer to the BuDDy manual - for details. Defaults to none. -

-
-
-
-
-

Sylvan Options

-
-
---sylvan-threads=NUMBER -
-
-

- Set number of workers. Defaults to 1. -

-
-
-

*--sylvan-dqsize - Sets the size of the (static) task queue for work stealing in Wool - to N. Defaults to 100000.

-
-
---sylvan-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---sylvan-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
---sylvan-bits=BITS -
-
-

- Sets the number of bits for each integer in the state vector. - Defaults to 16. -

-
-
---sylvan-granularity=NUMBER -
-
-

- Controls memoization table usage. Only use the memoization - table every 1/N BDD levels. Defaults to 1, i.e., always use the table. -

-
-
-
-
-

LDDmc Options

-
-
---lddmc-tablesize=NUMBER -
-
-

- Sets the size of the BDD table to 1<<N nodes. Defaults to 23. - Maximum of 29. -

-
-
---lddmc-cachesize=NUMBER -
-
-

- Set the size of the memoization table to 1<<N entries. - Defaults to 23. -

-
-
-
-
-

Lace Options

-
-
---lace-workers=NUMBER -
-
-

- Set number of Lace workers (threads for parallelization). - Defaults to the number of available cores if parallel algorithms - are used, 1 otherwise. -

-
-
---lace-dqsize=NUMBER -
-
-

- Set length of Lace task queue. - Defaults to 40960000. -

-
-
---lace-stacksize=NUMBER -
-
-

- Set size of program stack in kilo bytes. - Defaults to 0, which means using the default stack size. -

-
-
-
-
-

General Options

-
-
--v -
-
-

- Increase the level of verbosity -

-
-
--q -
-
-

- Be quiet; do not print anything to the terminal. -

-
-
---debug=<file.c> -
-
-

- Enable debugging output for file.c (option allowed multiple times). -

-
-
---version -
-
-

- Print version string of this tool. -

-
-
--h, --help -
-
-

- Print help text -

-
-
---usage -
-
-

- Print short usage summary. -

-
-
-
-
-
-
-

EXIT STATUS

-
-
-
-0 -
-
-

- Successful termination. -

-
-
-255 -
-
-

- Some error occurred. -

-
-
-
-
-
-

SEE ALSO

- -
-
-

- - - diff --git a/assets/man/spins.html b/assets/man/spins.html deleted file mode 100644 index ae4e1643c..000000000 --- a/assets/man/spins.html +++ /dev/null @@ -1,797 +0,0 @@ - - - - - -spins(1) - - - - - -
-
-

SYNOPSIS

-
-

spins [-o3] model.promela

-

spins [-o3] model.prm

-

spins [-o3] model

-

spins [-o3] model.prom

-

spins [-o3] model.pml

-
-
-
-

DESCRIPTION

-
-

spins executes the SpinS compiler, that is part of the LTSmin distribution, -on the given Promela model. The result is an .spins object file that implements -the PINS interface and can be used by the prom frontends.

-
-
-
-

OPTIONS

-
-
-
--v -
-
-

- Increase verbosity. -

-
-
-
-
- -
-

- - - diff --git a/configure.ac b/configure.ac index 6c1640b4b..24619a4dd 100644 --- a/configure.ac +++ b/configure.ac @@ -566,6 +566,7 @@ AC_CONFIG_COMMANDS_POST( --libdir='$(eval echo "$pkglibdir")'"]) AC_CONFIG_FILES([ + www/_config.yml Makefile examples/Makefile src/Makefile diff --git a/deploy-web b/deploy-web new file mode 100755 index 000000000..dfb544120 --- /dev/null +++ b/deploy-web @@ -0,0 +1,33 @@ +#!/bin/bash + +# returns 0 when $1 > $2, +# 1 otherwise. + +if [[ $1 == $2 ]] +then + exit 1 +fi +IFS=. +i="" ver1=($1) ver2=($2) +# fill empty fields in ver1 with zeros +for ((i=${#ver1[@]}; i<${#ver2[@]}; i++)) +do + ver1[i]=0 +done +for ((i=0; i<${#ver1[@]}; i++)) +do + if [[ -z ${ver2[i]} ]] + then + # fill empty fields in ver2 with zeros + ver2[i]=0 + fi + if ((10#${ver1[i]} > 10#${ver2[i]})) + then + exit 0 + fi + if ((10#${ver1[i]} < 10#${ver2[i]})) + then + exit 1 + fi +done +exit 1 diff --git a/www/.gitignore b/www/.gitignore new file mode 100644 index 000000000..200f88f74 --- /dev/null +++ b/www/.gitignore @@ -0,0 +1,4 @@ +_config.yml +_site +Gemfile.lock +README.md diff --git a/Gemfile b/www/Gemfile similarity index 100% rename from Gemfile rename to www/Gemfile diff --git a/_config.yml b/www/_config.yml.in similarity index 58% rename from _config.yml rename to www/_config.yml.in index 587a82fa1..95a572fc9 100644 --- a/_config.yml +++ b/www/_config.yml.in @@ -2,5 +2,10 @@ theme: jekyll-theme-cayman title: LTSmin description: "Model Checking and Minimization of Labelled Transition Systems" show_downloads: true -version: 3.0 +version: @PACKAGE_VERSION@ +exclude: + - .gitignore + - Gemfile + - _config.yml.in +baseurl: "/ltsmin" diff --git a/_layouts/default.html b/www/_layouts/default.html similarity index 100% rename from _layouts/default.html rename to www/_layouts/default.html diff --git a/assets/css/style.scss b/www/assets/css/style.scss similarity index 100% rename from assets/css/style.scss rename to www/assets/css/style.scss diff --git a/assets/img/pins_modern.png b/www/assets/img/pins_modern.png similarity index 100% rename from assets/img/pins_modern.png rename to www/assets/img/pins_modern.png diff --git a/assets/js/main.js b/www/assets/js/main.js similarity index 100% rename from assets/js/main.js rename to www/assets/js/main.js