Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Views: 45895
Kernel: Python 3

automaton.insplit(lazy=False)

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.

Insplitting can also be run on-the-fly, with an optional lazy argument.

Precondition:

  • the labelset has one (label of spontaneous transitions)

See also:

References:

Examples

import vcsn
%%automaton -s a context = lan_char, b $ -> 0 0 -> 1 a, \e 1 -> 2 b 1 -> $ 2 -> $
Image in a Jupyter notebook

State 1 has both incoming spontaneous and proper transitions.

a.insplit()
Image in a Jupyter notebook

During lazy insplitting, the states are not resolved, but they will be as needed.

i = a.insplit(lazy=True) i
Image in a Jupyter notebook
%%automaton b context = lan_char, b $ -> 0 0 -> 1 a 1 -> $
Image in a Jupyter notebook
i & b
Image in a Jupyter notebook

The state 2,!ε2, !\varepsilon is not resolved yet.

i
Image in a Jupyter notebook