Intersection
Intersection
The unique initial state
The unique initial state
Registers storing count value for accepting state.
Registers storing count value for accepting state.
The accepting condition
The accepting condition
The set of accepting states
Check whether the automaton accepts a given word.
Check whether the automaton accepts a given word.
Get any word accepted by this automaton, or None
if the language is empty
Get any word accepted by this automaton, or None
if the language is empty
Compute the length abstraction of this automaton.
Compute the length abstraction of this automaton.
Ask if state is accepting
Check whether this automaton accepts any word.
Check whether this automaton accepts any word.
Given a state, iterate over all outgoing transitons with vector
Iterate over automaton states
Complementation
Complementation
Unique lengths of accepted words
Compute states that can only be reached through words with some unique length
Union
Union
This is the implementation of cost-enriched finite automaton(CEFA). Each transition of CEFA contains a vector of integers, which is used to record the cost of the transition. The cost of a word is the sum of the costs of its transitions. A linear arithmetic constrait is used to restrict the cost of the word. For example, the accepting condition can be r < 10, where r is the register storing the cost and if r is length of the word, we get a automation accepting words of length less than 10.