In the Brzozowski-McCluskey procedure, remove one state.
stateis indeed a state of the automaton, or it is -1, in which case a heuristics is used to select the next state.
The following examples will use this automaton as input.
a0 = vcsn.B.expression('ab*c').standard() a0
We first need to convert this automaton into a spontaneous automaton labeled with expressions. That's the purpose of automaton.lift.
a1 = a0.lift() a1
a2 = a1.eliminate_state(2) a2
Note that the result is a fresh automaton: the original automaton is not modified:
Let's eliminate state 1.
a3 = a2.eliminate_state(1) a3
We can also remove the initial and final states.
a4 = a3.eliminate_state(0) a4
Eventually, when all the states have been removed, you get a broken automaton, with no states, but a "lone transition" that bears the answer.
a5 = a4.eliminate_state(1) a5
Rest assured that such automata (no states but with one transition) never occur in the normal course of use of Vcsn.
You may use the following widgets to see, step by step, how state elimination works.
a2 = a1 ** 2 %demo a2 eliminate_state