Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Defect in Computation of Characterization Set #24

Closed
mtappler opened this issue Jan 25, 2022 · 2 comments
Closed

Defect in Computation of Characterization Set #24

mtappler opened this issue Jan 25, 2022 · 2 comments
Assignees

Comments

@mtappler
Copy link
Member

There is a defect affecting the computation of characterization sets for DFAs and Moore machines.
The partitioning of states performed by the private method _split_blocks in class Automaton computes incomplete sequences to differentiate states. The computed output sequences lack the output (acceptance flag for DFA states) of the states that shall be distinguished. As a result, states that with different labels that are otherwise indistinguishable are considered equivalent, which causes the characterization set computation to throw an exception noting that the automaton is non-canonical.

The defect does not affect the computation for Mealy machines where outputs label the transitions.

A possible fix would be to handle empty sequences as a special case, i.e., check the outputs of two states to determine whether empty sequence distinguishes the states.
Alternatively, the outputs of the states to be differentiate could be prepended to the computed output sequences.

@emuskardin
Copy link
Member

emuskardin commented Jan 25, 2022

Thanks. I wrote a response in form of a haiku:

Will do it like you say,
Just need to check,
That is does not break.

@emuskardin emuskardin self-assigned this Jan 25, 2022
@emuskardin
Copy link
Member

Fixed in ceed6de39f.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants