# 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 universal and existential quantifiers in data expressions to NUM iterations (default NUM=10, 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

Jeroen Keiren