The maximum number of automata to product simultaneously
Check whether there is some word accepted by all of the given automata.
Check whether there is some word accepted by all of the given automata. The automata are required to all have the same label type (though this is not checked statically)
Check whether there is some word accepted by all of the given automata.
Continue a build by providing epsilon transitions.
Continue a build by providing epsilon transitions. Note, adding new transitions after calling this will invalidate the results of this function
the builder to add transitions to
epsilons(q) = set of q' where there is an e-transition from q to q'
Build automaton accepting concat language of given automata aut1 and aut2 must have compatible label types
Enum next states of list of automata
Enum next states of list of automata
All auts must have same label type, not checked statically
the list of automata in order the states belong to
the list of states to check, states[i] must be of type auts[i].State
enum all next states that use a char compatible with the given label. Must be common label type of all automata, not checked statically
list of reachable states paired with label reachable by
Enum next state sets of list of automata
Enum next state sets of list of automata
All auts must have same label type, not checked statically
the list of automata in order the states belong to
the list of sets of states to check (states of states[i] must be of type auts[i].State)
enum all next states that use a char compatible with the given label. Must be common label type of all automata, not checked statically
list of reachable state sets paired with label reachable by
Enumerate outgoing transitions from a set of states of an automaton
Enumerate outgoing transitions from a set of states of an automaton
the automaton
the set of states
intersect next labels within this label
iterator over next possible sets of states and (non-empty) labels (subset construction)
Find a word accepted by all automata and rejected by negs
Check whether there is some word of length in range accepted by all of the given automata.
Check whether there is some word of length in range accepted by all of the given automata. None means no lower/upper bound. Requires all automata to be AtomicStateAutomaton
Check whether there is some word of length len
accepted
by all of the given automata.
Check whether there is some word of length len
accepted
by all of the given automata.
Requires all automata to be AtomicStateAutomaton
Find a word (of any length) accepted by all automata
Find a word (of any length) accepted by all automata
The automata are required to all have the same label type (though this is not checked statically)
negAuts optionally specifies automata that should not accept the word
Check whether there is some word accepted by all of the given automata.
Check whether there is some word accepted by all of the given automata.
If the intersection is empty, return an unsatisfiable core. The method
makes the assumption that oldAuts
are consistent, but the
status of the combination with newAut
is unknown.
Check if product automaton accepts only one word
Check if product automaton accepts only one word
the single word if singleton, else None (could be empty aut)
Version of isSingleton that says "No" for non AtomicStateAutomaton
Make an automaton case-insensitive.
Inserts second automaton into the first replacing transitions over a give character.
Inserts second automaton into the first replacing transitions over a give character. I.e. s1 --a--> s2 becomes s1 -->into aut / from final --> s2.
Assumes autOuter and autInner have compatible label types
This is approximate in that there is only a single copy of the inserted automaton, so ingoing and outgoing transitions are not mapped.
Form product of this automaton with given auts, returns a new automaton
Product of a number of given automata The minimize argument enable minimization of the product automaton.
Product of a number of given automata.
Product of a number of given automata. Returns new automaton. Returns map from new states of result to (q0, [q1, ..., qn]) giving states of this and auts respectively
The minimize argument enable minimization of the product automaton, which should only be used if the returned maps are not used.
Replace a-transitions with new a-transitions between pairs of states
Build automaton accepting reverse language of given automaton
Collection of useful functions for automata