-
Notifications
You must be signed in to change notification settings - Fork 55
feat: prove that omega-regular languages are closed under finite intersection #188
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
Conversation
|
Before I review, I've been meaning to ask about the naming scheme. As you add more files, I think it would be easier to navigate if we organized into subdirectories. What do you think about something like the structure below? The details of exactly what directories can be changed as you see fit, I just think in general it could be nicer than the flat structure. |
|
Actually I like a flat directory better. I really hate the hassle of having to climb up and down in a directory tree when I need to open a file. I'm also not sure a tree structure is any more "rational" than the current naming scheme, which already groups the files in a natural way by the alphabetical order. For example, NABuchiIInter.lean contains a construction that is a composition of the constructions in NAProd.lean and NAHist.lean. There seems to me no good reason why the first file should be placed in a subdirectory while the latter two are not. Also note that if you pursue your logic to its conclusion, you probably should split NA.lean into NA/Basic.lean, NA/FinAcc/Basic.lean, NA/Buchi/Basic.lean, and NA/Muller/Basic.lean. I'm really not sure what that would buy you. I think we will end up with around 20 files in this directory, which I don't think is excessive. |
|
This is not critical at the moment, we can always revisit later. I don't want to introduce too much churn while you are still actively developing the library. Let's table this and I'll just review the PR. Just to write it down for future reference however, the benefits I see and response to your concerns:
|
|
I'll do a PR after this one to add four subdirectories under
and spread the current files among the four. I don't think adding more levels makes sense. |
Proving that omega-regular languages are closed under finite intersection is harder than doing so for regular languages and requires the following ingredients:
I also renamed {Sum,Prod}.lean to {NASum,DAProd}.lean to keep the file naming scheme consistent.