|
libFAUDES
Sections
Types
Functions
|
Reachability Tests/ConversionNot all states in a generator G contribute to the languages it represents. The various notions related to reachability can be used to identify relevant states, depending on which particular languages L(G), Lm(G), B(G) or Bm(G) are of interest. Throughout this page, the below generator serves as an example. It does not satisfy any of the reachability properties discussed. IsAccessibleTests a generator for accessibility.
Detailed description:
A generator is accessible, if every state can be accessed from some initial state via a sequence of transitions, i.e.:
The example generator fails to be accessible since the states s20 and s21 can not be reached from the initial state. AccessibleDelete non-accessible states and transitions.
Detailed description: Convert a given generator G to an accessible generator by removing states that are not accessible. Non of the languages L(G), Lm(G), B(G) and Bm(G) are affected.
When applied on the above example, Accessible returns
the result:
IsCoaccessibleTests a generator for coaccessibility.
Detailed description:
A generator is co-accessible, if every state is connected with some marked state via a sequence of transitions, i.e.
The example generator fails to be co-accessible since no marked state can be reached from either s6, s7, s8, s10 and s11. CoaccessibleDelete non-coaccessible states and transitions.
Signature:
Coaccessible(+InOut+ Generator G) Detailed description: Convert a given generator G to a co-accessible generator by removing states that are not co-accessible. The languages Lm(G) and Bm(G) are not affected.
When applied on the above example, Coaccessible returns
the result:
IsCompleteTest completeness of a generator.
Detailed description: A generator is complete if all states have at least one transition to a successor state. This function returns "true" if G is complete. Else it returns "false".
Completeness of G implies completeness of the
generated language L(G), i.e.
The example generator fails to be complete since the states s8, s10 and s11 have no successor. CompleteDelete states that evolve into a terminal state.
Detailed description: Convert a given generator G to a complete generator by removing states that are guaranteed to evolve within a finite numer of transitions into a state that has no successor state. The languages B(G) and Bm(G) are not affected.
When applied on the above example, Complete returns
the result:
IsTrimTests a generator for trimness.
Detailed description: A generator G is trim if it is both accessible and co-accessible, i.e. if all states contribute to the marked language Lm(G). This function returns "true" if G is trim. Else it returns "false". The example generator fails to be trim since it is neither accessible nor co-accessible. TrimDelete non-coaccessible and non-accessible states and transitions.
Detailed description: Convert a given generator G to a trim generator by removing states that are not accessible or not co-accessible. The languages Lm(G) and Bm(G) are not affected.
When applied on the above example, Trim returns
the result:
IsOmegaTrimTests a generator for omega trimness.
Detailed description: A generator G is omega-trim if it is accessible, co-accessible, and complete; i.e. if all states contribute to the omega language Bm(G). This function returns "true" if G is omega-trim. Else it returns "false". The example generator fails to be trim since it is neither accessible nor co-accessible nor complete. Clearly, any state that is not accessible or co-accessibe contributes to Bm(G), neither does a state that is guaranteed to evolve into a state with no successor. Note, however, the states s3 and s4 do not fall into the any of the latter cathegories but still don't conribute to Bm(G). This is because s3 and s4 can evolve into a marked state and they can be extended infinitely, but the can not be extended infinitely while passing marked states infinitely often. OmegaTrimDelete states to achieve omega-trimness.
Detailed description: Convert a given generator G to an omega-trim generator by repeatedly removing states that are not accessible, not co-accessible, or have no successor state. The language Bm(G) is not affected.
When applied on the above example, OmegaTrim returns
the result:
|
libFAUDES 2.16b --- 2010-9-8 --- plugins "example synthesis observer diagnosis hiosys multitasking timed simulator iodevice luabindings"