lpsbinary

The tool lpsbinary takes a linear process and replace parameters with a finite data domain by booleans. The advantage of this is that some tools are much better in dealing with Booleans than with arbitrary data types. This for instance the case when binary decision diagrams are used (as used by jittyp).

As an example consider the following linear process:

sort D = struct d1 | d2 | d3;

act  a: Nat # D # Bool;

proc P(n_P: Nat, d_P: D, b_P: Bool) =
       sum e_P: D.
         a(n_P, d_P, b_P) .
         P(n_P = n_P + 1, d_P = e_P, b_P = !b_P)
     + delta;

init P(0, d1, true);

When applying lpsbinary the sort D is replaced by two booleans. The sort Bool as well as sorts of which it cannot be determined that they are finite are not changed. The result is given by:

sort D = struct d1 | d2 | d3;

act  a: Nat # D # Bool;

proc P(n_P: Nat, d_P1,d_P2,b_P: Bool) =
       sum e_P: D.
         a(n_P, if(d_P2, if(d_P1, d1, d1), if(d_P1, d2, d3)), b_P) .
         P(n_P = n_P + 1, d_P1 = e_P == d2, d_P2 = e_P == d1, b_P = !b_P)
     + delta;

init P(0, d1 == d2, d1 == d1, true);

Manual page for lpsbinary

Usage

lpsbinary   [OPTION]... [INFILE [OUTFILE]]

Description

Replace finite sort variables by vectors of boolean variables in the LPS in INFILE and write the result to OUTFILE. If INFILE is not present, stdin is used. If OUTFILE is not present, stdout is used

Command line options

-QNUM , --qlimitNUM

limit enumeration of quantifiers to NUM variables. (Default NUM=1000, NUM=0 for unlimited).

-rNAME , --rewriterNAME

use rewrite strategy NAME:

jitty

jitty rewriting

jittyc

compiled jitty rewriting

jittyp

jitty rewriting with prover

--timings[FILE]

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

Standard options

-q , --quiet

do not display warning messages

-v , --verbose

display short intermediate messages

-d , --debug

display detailed intermediate messages

--log-levelLEVEL

display intermediate messages up to and including level

-h , --help

display help information

--version

display version information

Author

Jeroen Keiren