spot 2.2.2

- Main Page
- Related Pages
- Modules
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Static Public Member Functions | Public Attributes | List of all members
spot::twa::prop_set Struct Reference
TωA (Transition-based ω-Automata) » Essential TωA types

A structure for selecting a set of automaton properties to copy. More...

`#include <spot/twa/twa.hh>`

Collaboration diagram for spot::twa::prop_set:

## Static Public Member Functions
static prop_set | all ()
| An all-true `prop_set`. More...

## Public Attributes
bool | state_based
| preserve state-based acceptnace More...
bool | inherently_weak
| preserve inherently weak, weak, & terminal More...
bool | deterministic
| preserve deterministic and unambiguous More...
bool | stutter_inv
| preserve stutter invariance More...

## Detailed Description

A structure for selecting a set of automaton properties to copy.

When an algorithm copies an automaton before making some modification on that automaton, it should use a `prop_set` structure to indicate which properties should be copied from the original automaton.

This structure does not list all supported properties, because properties are copied by groups of related properties. For instance if an algorithm breaks the "inherent_weak" properties, it usually also breaks the "weak" and "terminal" properties.

Set the flags to true to copy the value of the original property, and to false to ignore the original property (leaving the property of the new automaton to its default value, which is trival::maybe()).

This can be used for instance as:

aut->prop_copy(other_aut, {true, false, false, true});

This would copy the "state-based acceptance" and "stutter invariant" properties from `other_aut` to `code`.

The reason there is no default value for these flags is that whenever we add a new property that do not fall into any of these groups, we will be forced to review all algorithm to decide if the property should be preserved or not.

See also
  make_twa_graph_ptr
  prop_copy

## Member Function Documentation

static prop_set spot::twa::prop_set::all | ( |  | ) |
| inline static

An all-true `prop_set`.

Use that only in algorithms that copy an automaton without performing any modification.

If an algorithm X does modifications, but preserves all the properties currently implemented, use an explicit

{true, true, true, true}

instead of calling `all()`. This way, the day a new property is added, we will still be forced to review algorithm X, in case that new property is not preserved.

## Member Data Documentation

bool spot::twa::prop_set::deterministic

preserve deterministic and unambiguous

Referenced by spot::twa::prop_copy(), and spot::twa::prop_keep().

bool spot::twa::prop_set::inherently_weak

preserve inherently weak, weak, & terminal

Referenced by spot::twa::prop_copy(), and spot::twa::prop_keep().

bool spot::twa::prop_set::state_based

preserve state-based acceptnace

Referenced by spot::twa::prop_copy(), and spot::twa::prop_keep().

bool spot::twa::prop_set::stutter_inv

preserve stutter invariance

Referenced by spot::twa::prop_copy(), and spot::twa::prop_keep().

The documentation for this struct was generated from the following file:

- spot/twa/twa.hh

Please direct any question, comment, or bug report to the Spot mailing list at spot@lrde.epita.fr.