Create a new automaton from the useful part of the input, i.e., the subautomaton whose states both accessible (can be reached from a initial state) and coaccessible (can reach a final state).
Preconditions:
Postconditions:
See also:
In [1]:
import vcsn
The following automaton has states that cannot be reach any final(s) states:
In [2]:
a = vcsn.automaton('''
digraph
{
vcsn_context = "lal_char(abc), b"
I -> 0
0 -> 1 [label = "a"]
1 -> F
i -> 0 [label = "a"]
1 -> f [label = "a"]
}
''')
a
Out[2]:
In [3]:
a.is_trim()
Out[3]:
Calling trim
returns the same automaton, but without any useless states:
In [4]:
a.trim()
Out[4]:
In [5]:
a.trim().is_trim()
Out[5]: