automaton.insplit

Create the insplit automaton from the input.

In the insplit automaton, each state has either only spontaneous transitions, or no spontaneous transition at all. The input states are split to respect that condition, and the result automaton is equivalent to the input one.

Insplitting is used as a preprocessing in the conjunction of automata and the composition of transducers.

Precondition:

  • the labelset has one (label of spontaneous transitions)

See also:

References:

Examples


In [1]:
import vcsn


:0: FutureWarning: IPython widgets are experimental and may change in the future.

In [2]:
%%automaton a
context = lan_char, b
$ -> 0
0 -> 1 a
0 -> 1 "\\e"
1 -> 3 b
1 -> $
3 -> $


%3 I0 0 0 I0->0 F1 F2 1 1 0->1 ε, a 1->F1 2 3 1->2 b 2->F2

In [3]:
a.insplit()


Out[3]:
%3 I0 0 0 I0->0 F1 F2 F3 1 1 0->1 ε 2 2 0->2 a 1->F1 3 3 1->3 b 2->F2 2->3 b 3->F3