lpssuminst

Instantiate the summation variables in an LPS by applying induction on the values of the sort of the variable.

Example

Take the the following LPS:

sort D = struct d1 | d2;
     E = struct e1(D) | e2;

act  a: D;
     b: E;

proc P = sum d: D. a(d) . P
       + sum e: E. b(e) . P
       ;

init P;

lpssuminst instantiates the variable d to the constructors d1 and d2 of sort D, and variable e to the constructors e1(d1), e1(d2) and e2:

sort D = struct d1 | d2;
     E = struct e1(D) | e2;

act  a: D;
     b: E;

proc P = a(d1) . P
       + a(d2) . P
       + b(e1(d1)) . P
       + b(e1(d2)) . P
       + b(e2) . P
       ;

init P;
orphan:


Usage

lpssuminst   [OPTION]... [INFILE [OUTFILE]]

Description

Instantiate the summation variables of the linear process specification (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

-f , --finite

only instantiate variables whose sorts are finite

-QNUM , --qlimit=NUM

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

-rNAME , --rewriter=NAME

use rewrite strategy NAME:

jitty

jitty rewriting

jittyc

compiled jitty rewriting

jittyp

jitty rewriting with prover

-s[NAME] , --sorts[=NAME]

select sorts that need to be expanded (comma separated list). Examples: Bool; Bool, List(Nat)

-t , --tau

only instantiate variables in tau summands

--timings[=FILE]

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

Standard options

-q , --quiet

do not display warning messages

-v , --verbose

display short log messages

-d , --debug

display detailed log messages

--log-level=LEVEL

display log messages up to and including level; either warn, verbose, debug or trace

-h , --help

display help information

--version

display version information

--help-all

display help information, including hidden and experimental options

Author

Jeroen Keiren