|
|
||||||
|
|
Misc Functions on GeneratorsEmptyLanguageSet generator to mark empty language. Detailed description:Returns a generator G with the specified alphabet Sigma, no states and no transitions; i.e., we have Lm(G) = L(G) = 0. Parameter Conditions:The empty language generator is deterministic. IsEmptyLanguageTest Generator G for empty marked language Lm(G). Parameter Conditions:The argument may be non-deterministic. AutomatonConvert generator to formal automaton. Detailed description:Converts the given generator G to a formal automaton that generates the same marked language Lm(G) while accepting any input string, i.e. L(G) = Sigma*. This is achieved by introducing a dump state to represent Sigma*-Closure(Lm(G)). Example:
Parameter Conditions:The provided generator is assumed to be deterministic. The resulting generator is guaranteed to be deterministic. IsPrefixClosedTests a language for being prefix-closed. Detailed description:
A language L is prefix-closed
if for each string s ∈ L all prefixes r ≤ s
are also element of L:
Example:
The language Lm(G) marked by the above generator is not prefix-closed, since the states 1, 2 and 4 are accessible and co-accessible but not marked. For example, the string ac ∉ Lm(G) is a prefix of acbb ∈ Lm(G). PrefixClosureCompute prefix closure for given language. Signature:PrefixClosure(+InOut+ Generator GArg) Detailed description:
For any language L there exists a smallest prefix-closed
superset, the so-called prefix-closure of L:
This function computes a realisation of the prefix-closure of Lm(GArg) by first erasing all states that are not co-accessible and then marking the remaining states. Example:
IsOmegaClosedTests a language for being omega-closed. Detailed description:
A omega-language L ⊆ Sigma^w
is omega-closed if any strictly
increasing sequence of prefixes from L converges to an
omega-string in L, i.e. if
The function IsOmegaClosed tests for the specified generator G whether Bm(G) is omega-closed. The implementation first computes the omega-trim state set. If within this set there exists an SCC with no marked states the function returns false. Else it returns true. Example:
The language Bm(G) realized by the above generator is not omega-closed. The states 6 and 7 constitute an SCC when restricting G to the omega-trim state set {1,2,4,6,7}. Thus, the limit of the sequence a d (a b)^i is in B(Prefix(L)) but not in B(L). The function IsOmegaClosed returns false. Parameter Conditions:The argument must be deterministic. OmegaClosureCompute omega closure for given language. Signature:OmegaClosure(+InOut+ Generator GArg) Detailed description:
For any omega-language L ⊆ Sigma^w
there exists a smallest omega-closed
superset, the so-called omega-closure or topological closure
of L:
The function OmegaClosure computes a realisation of the the omega-closure for the specified omega language Bm(GArg). It first invokes OmegaTrim and then markes all states. Thus, Closure(Bm(GArg)) = B(GRes) = Bm(GRes) and Prefix(Bm(GArg)) = L(GRes) = Lm(GRes). Example:
libFAUDES 2.32b --- 2024.03.01 --- with "synthesis-observer-observability-diagnosis-hiosys-iosystem-multitasking-coordinationcontrol-timed-simulator-iodevice-luabindings-hybrid-example-pybindings" |