EventSet/ Alphabet

An EventSet is a set of named events. It is internally represented as an set of indices that refer to a global symbol-table to map indices to symbolic names. Valid symbolic names are strings of printable ASCII characters, excluding the double quote ", the hash # and any white space. It is not recommended to use symbolic names that can be misinterpreted as number, i.e., consists only of digits.

The token-IO format is as follows:

<Alphabet> "alpha" "beta" "gamma" </Alphabet>

The derived type Alphabet is an EventSet that records an attribute value for each event. Attributes are used to indicate controllability, observability, forcibility and whether or not the respective event is regarded as an high-level event. The attributes are local to the set, i.e. whether an event is observable depends on the perspective one takes. The default attribute is non-controllable, non-forcible, observable and high-level.

The token-IO format is as follows.

<Alphabet>
"alpha" +C+      % observable and controllable
"beta"  +o+      % not observable
"gamma"          % default, i.e. +cOfA+
</Alphabet>

As indicated by the example, the attribute value is specified as an option token +xyz+, where each letter in xyz represents a boolean property. Uppercase and lowercase letter indicate the presence or absence of the property, respectively. Supported properties are controllability c, observability o, forcibility f. and high-level alphabet membership a.

Functions, that expect EventSet-typed arguments (are meant to) also accept Alphabets instead. When indicated by the documentation, such functions will interpret the respective attributes appropriately. Otherwise they are simply ignored. If event attributes are not relevant to your application, it is recommended to stick to EventSet-typed variables.

AlphabetUnion

Union over Alphabets

Signature:

AlphabetUnion(+In+ EventSet Sigma1, +In+ EventSet Sigma2, +Out+ EventSet Sigma)

AlphabetUnion(+In+ EventSetVector AVec, +Out+ EventSet ARes)

AlphabetUnion(+In+ GeneratorVector GVec, +Out+ EventSet ARes)

Note: When an Alphabet typed result is specified, attributes of the respective arguments are maintained.

Note: alphabets are extracted from generator arguments.

AlphabetIntersection

Intersection over alphabets.

Signature:

AlphabetIntersection(+In+ EventSet Sigma1, +In+ EventSet Sigma2, +Out+ EventSet Sigma)

AlphabetIntersection(+In+ EventSetVector AVec, +Out+ EventSet ARes)

AlphabetIntersection(+In+ GeneratorVector GVec, +Out+ EventSet ARes)

Note: When an Alphabet typed result is specified, attributes of the respective arguments are maintained.

Note: alphabets are extracted from generator arguments.

AlphabetDifference

Difference of two alphabets.

Signature:

AlphabetDifference(+In+ EventSet Sigma1, +In+ EventSet Sigma2, +Out+ EventSet Sigma)

Note: When an Alphabet typed result is specified, attributes of the respective arguments are maintained.

AlphabetExtract

Extract alphabet from generator.

Signature:

AlphabetExtract(+In+ Generator Gen, +Out+ EventSet Sigma)

Note: see also AlphabetUnion and AlphabetIntersection for the extraction of alphabets from multiple generators.

AlphabetEquality

Tests whether two alphabets match.

Signature:

AlphabetEquality(+In+ EventSet Sigma1, +In+ EventSet Sigma2, +Out+ Boolean BRes)

Note: Attributes are ignored for the pupose of set comparison.

AlphabetInclusion

Tests whether an alphabet includes another alphabet.

Signature:

AlphabetInclusion(+In+ EventSet Sigma1, +In+ EventSet Sigma2, +Out+ Boolean BRes)

Note: Attributes are ignored for the pupose of set comparison.

libFAUDES 2.32b --- 2024.03.01 --- with "synthesis-observer-observability-diagnosis-hiosys-iosystem-multitasking-coordinationcontrol-timed-simulator-iodevice-luabindings-hybrid-example-pybindings"