spot
2.2.2
|
A structure for selecting a set of automaton properties to copy. More...
#include <spot/twa/twa.hh>
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... | |
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:
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.
|
inlinestatic |
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
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.
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().