lps2pbes
The tool lps2pbes
reads a modal formula as well as a linear process
and generates a parameterised boolean equation system (PBES) of which the solution
of the initial variable indicates whether the
formula is valid in the initial state of the transition system. The generated PBES can be solved
using tools such as pbes2bool, pbessolve or pbespgsolve.
When using particular formulas, for instance such as:
[true*]<a.b.c.d.e.f.g.h>true
then the standard translation to PBESs can yield a very PBES which is very elaborate to generate and can
become large. This is due to the fact
that the subformula <a.b.c.d.e.f.g.h>
is translated into one PBES equation with a huge right hand side.
This right hand side essentially reflects for any state of the linear process whether a trace a.b.c.d.e.f.g.h
is possible.
When using the flag --preprocess-modal-operators
the formula is first transformed into the equivalent
formula:
[true*]mu X1.<a>mu X2.<b>mu X3.<c>mu X4.<d>mu X5.<d>mu X6.<e>mu X7.<f>mu X8.<g>mu X9.<h>true
This formula replaces the single very large equation by 9 ones, where the right hand sides only contain
the information whether a single action can be done. This is generally faster and yields a substantially
smaller PBES. Note that elaborate generations of PBESs can already occur when using subformulas of the
shape [a.b]...
or <a.b>...
.
The tool pbessolve is capable of generating a counter example in the form of labelled transition systems,
provided the PBES is generated
using lps2pbes (or lts2pbes) using the --counter-example
flag. The generated PBES is
more complicated
and may be harder to solve. Yet, these counter examples are very helpful in determining whether formulas do
not hold. If formulas are valid, this flag can also be used to determine witnesses, i.e., evidence when formulas
are valid. The tool pbes2bool can generate counter examples without the use of this flag. These
counter-examples are solely based on the provided PBES and they must be manually be related to the original
transition system.
Note that there is also an option --structured
which can be used to generate boolean equation systems that
do not contain both the conjunction and the disjunction operators among PBES variables in the right hand side.
This flag can lead to a substantially larger number of equation (but linear in the original formula).
Note that the option --check-only
can be used to check whether the passed
formula is valid w.r.t. parsing and type checking, without actually generating
the PBES.
- orphan:
Usage
lps2pbes [OPTION]... --formula=FILE [INFILE [OUTFILE]]
Description
Convert the state formula in FILE and the LPS in INFILE to a parameterised boolean equation system (PBES) and save it to OUTFILE. If OUTFILE is not present, stdout is used. If INFILE is not present, stdin is used.
Command line options
-e
, --check-only
check syntax and semantics of state formula; do not generate PBES
-c
, --counter-example
add counter example equations to the generated PBES
-fFILE
, --formula=FILE
use the state formula from FILE
-oFORMAT
, --out=FORMAT
use output format FORMAT:
bes
BES in internal format
pbes
PBES in internal format
pgsolver
BES in PGSolver format
text
PBES in textual (mCRL2) format
-m
, --preprocess-modal-operators
insert dummy fixpoints in modal operators, which may lead to smaller PBESs
-s
, --structured
generate equations such that no mixed conjunctions and disjunctions occur
-t
, --timed
use the timed version of the algorithm, even for untimed LPS’s
--timings[=FILE]
append timing measurements to FILE. Measurements are written to standard error if no FILE is provided
-u
, --unoptimized
do not simplify boolean expressions
Standard options
-q
, --quiet
do not display warning messages
-v
, --verbose
display short log messages
-d
, --debug
display detailed log messages
--log-level=LEVEL
display log messages up to and including level; either warn, verbose, debug or trace
-h
, --help
display help information
--version
display version information
--help-all
display help information, including hidden and experimental options