feat: proof of Myhill-Nerode theorem for DFAs#491
feat: proof of Myhill-Nerode theorem for DFAs#491akhilesh-balaji wants to merge 17 commits intoleanprover:mainfrom
Conversation
ctchou
left a comment
There was a problem hiding this comment.
Thanks for re-opening the PR. I have a few more comments.
|
I have made all the changes. Also, in At some point, we should ideally change this to use rather than |
|
The There are theorems that let you "lift" the state spaces to |
ctchou
left a comment
There was a problem hiding this comment.
We are getting close to an approvable shape in the organization and statements of definitions and theorems.
@chenson2018: maybe you want to take a look as well? I have not tried any proof golfing.
|
@akhilesh-balaji Please mark those comments which you have fixed as resolved. Thanks! |
…nitions and docstrings
|
Done.
I have defined |
|
Thanks for making the changes. I just pushed a commit to re-word the main comment a bit. I also turned on the CI. I'm pretty happy with the overall structure of this PR now. I would like to take a closer look at the proofs, but that will take a few days. I hope @chenson2018 will be able to take a look as well. |
|
I removed some redundant lines. Please do not add redundant |
|
@akhilesh-balaji There are some CI failures which you should look into. I always run locally the following steps for any PR of my own: and correct all errors or warnings reported by them. |
|
The linter appears to have failed here: This can be fixed easily if The other errors are suggestions to change existing proofs in other files to use Wouldn't this affect the readability of these other theorems, or should I go ahead and implement the changes suggested by the linter? Thank you. |
|
@akhilesh-balaji I just pushed a commit that fixes the linter errors. I changed the Note that the old code in the existing files have already been linted. So the errors reported by the linter are almost always caused by the new code. |
|
Thank you for fixing the linter errors, @ctchou. |
|
@ctchou If you'll ping me once you approve, I can take a last look at any golfing/style before merging. |
ctchou
left a comment
There was a problem hiding this comment.
@chenson2018 I just merged in the latest "main" branch.
Re-opening #479 which was accidentally closed. Thanks very much, @ctchou, for going through it and making edits.
This PR adds a proof of the Myhill-Nerode theorem. It builds on the definition of right congruence (and associated definitions and theorems) in #278. These are the main results shown (the statement of the theorem has been taken from Wikipedia and amended slightly):
(1)
Lregular iff.∼_L(distinguishability byL, also called the Nerodecongruence) has a finite number of equivalence classes
N.(2)
Nis the number of states in the minimal DFA acceptingL.(3) The minimal DFA is unique up to unique isomorphism. That is, for any
minimal DFA acceptor, there exists exactly one isomorphism from it to the
following one: