NUPN_INFO manual page
Table of Contents

Name

nupn_info - query and transformation of Nested-Unit Petri Nets

Synopsis

nupn_info option [ arguments ] [ filename.nupn ]

Description

Taking as input filename.nupn (or by default the standard input), which contains a Nested-Unit Petri Net (NUPN) encoded in the nupn format, nupn_info performs various analyses or transformations, depending on the option specified on the command line, and writes the corresponding results to the standard output.

Options

-canonical-nupn
Transform the input NUPN to put it under a canonical form by applying the eight options "-essential-nupn", "-normal-nupn", "-place-renumber 0", "-place-sort", "-transition-renumber 0", "-transition-sort", "-unit-renumber 0", and "-unit-sort" described hereafter. This option can be useful to decide whether two NUPNs are "structurally" identical or not.

-essential-nupn
Remove all pragmas and all (place, transition, and unit) labels, thus retaining only the core semantical part of the input NUPN.

-normal-nupn
Simplify (if possible) the input NUPN to put it under a normal form. The following transformations are applied: tabulations are replaced with spaces; empty or blank lines are deleted; extra spaces are removed; the description of units and the description of transitions are sorted by increasing numbers; the list of sub-units of each unit is sorted by increasing numbers; the lists of input and output places of each transition are sorted by increasing numbers; any line of the following form "initial place %d" is replaced with "initial places #1 %d"; any line of the following form "labels 0 0 0 %d" is deleted; the maximal length of labels (4th argument of the "labels" line) is recomputed and set to its minimal value. The resulting NUPN is displayed on the standard output.

-place-fusion
Apply the place-fusion abstraction to the input NUPN, merging in each unit all the places of this unit into a single place. The resulting NUPN has as many places as it has non-void units. Places may be renumbered if merged places are deleted; unit and transition numbers are kept unchanged. The resulting NUPN is displayed on the standard output.

-place-permute permutation
Renumber the places of the input NUPN according to the permutation file. See below for a description of the format of this file. The min-max interval of place numbers is preserved by the permutation.

-place-renumber N
Renumber all places of the input NUPN, setting the lowest place number to N. All place numbers are modified by adding or substracting the same constant number.

-precanonical-nupn
Transform the input NUPN to put it under a canonical form by applying the five options "-essential-nupn", "-normal-nupn", "-place-renumber 0", "-transition-renumber 0", and "-unit-renumber 0". This option, which implements a subset of the transformations performed by the "-canonical-nupn" option, can be useful to decide whether two NUPNs are "structurally" identical or not.

-redundant-removal
Eliminate all redundant units from the input NUPN, i.e., units containing exactly one (directly nested) sub-unit. Units and places may be renumbered if redundant units are deleted; transition numbers are kept unchanged. If the input NUPN has no redundant unit, the only changes applied are those performed by option -normal-nupn. The resulting NUPN is displayed on the standard output.

-transition-permute permutation
Renumber the transitions of the input NUPN according to the permutation file. See below for a description of the format of this file. The min-max interval of transition numbers is preserved by the permutation.

-transition-renumber N
Renumber all transitions of the input NUPN, setting the lowest transition number to N. All transition numbers are modified by adding or substracting the same constant number.

-transition-sort
Reorder the list of transitions of the input NUPN according to the order defined by the -transition-order option of caesar.bdd .

-trivial-units
Erase the existing unit structure of the input NUPN and replace it with the trivial unit structure, in which each unit contains a single place, except the root unit, which has no place and contains all the other units. The resulting NUPN has as many non-void units as it has places. Units may be renumbered if new units are added; place and transition numbers are kept unchanged. The resulting NUPN is displayed on the standard output.

-unit-permute permutation
Renumber the units of the input NUPN according to the permutation file. See below for a description of the format of this file. The min-max interval of unit numbers is preserved by the permutation.

-unit-renumber N
Renumber all units of the input NUPN, setting the lowest unit number to N. All unit numbers are modified by adding or substracting the same constant number.

-unit-sort
Reorder the list of units of the input NUPN according to the order defined by the -unit-order option of caesar.bdd .

-void-removal
Eliminate all void (non-root) units from the input NUPN, i.e., units containing no local places. Units may be renumbered if void units are deleted; place and transition numbers are kept unchanged. If the input NUPN has no void (non-root) unit, the only changes applied are those performed by option -normal-nupn. The resulting NUPN is displayed on the standard output.

For performance reasons, nupn_info assumes that the contents of the input NUPN are correct. When dealing with an unknown NUPN, it is therefore advisable to first analyze its contents with the -check option of caesar.bdd . However, certain options (especially -normal-nupn and -void-removal) may transform an incorrect NUPN into a correct one.

NUPN (Nested-Unit Petri Net) Format

See the nupn manual page for a detailed definition of the NUPN file format.

Permutation Format

The permutation files used by the options -place-permute, -transition-permute, and -unit-permute have the same text file format. Each line has the form "x -> y", which denotes that the place (resp. transition or unit) x is renumbered by the permutation to the place (resp. transition or unit) y. Lines of the following form "x -> x" can be omitted. Checks are made to ensure that the permutation file defines a bijection.

Exit Status

The exit status of nupn_info is zero if execution went well; in such case, a valid NUPN file is written to the standard output. Otherwise, a non-zero exit status is returned and an error message may be displayed to the standard output.

Author

Hubert Garavel (INRIA Rhone-Alpes)

Files

filename.nupn
Nested-Unit Petri Net (input)

Bibliography

[Gar19] Hubert Garavel. "Nested-Unit Petri Nets". Journal of Logical and Algebraic Methods in Programming, vol. 104, pages 60-85, April 2019. Available from http://cadp.inria.fr/publications/Garavel-19.html

[Gar15] Hubert Garavel. "Nested-Unit Petri Nets: A Structural Means to Increase Efficiency and Scalability of Verification on Elementary Nets". In R. Devillers and A. Valmari, editors, Proceedings of the 36th International Conference on Application and Theory of Petri Nets and Concurrency (PETRI NETS'15), Brussels, Belgium. Lecture Notes in Computer Science, vol. 9115, Springer, 2015. Superseded by [Gar19]. Available from http://cadp.inria.fr/publications/Garavel-15-a.html

See Also

caesar.bdd , nupn

Additional information is available from the CADP Web page located at http://cadp.inria.fr

Directives for installation are given in files $CADP/INSTALLATION_*.

Recent changes and improvements to this software are reported and commented in file $CADP/HISTORY.

Bugs

Please report new bugs to Hubert.Garavel@inria.fr


Table of Contents