chore: split LTS/Basic.lean into more manageable pieces#453
chore: split LTS/Basic.lean into more manageable pieces#453fmontesi merged 10 commits intoleanprover:mainfrom
Conversation
|
One more thought. I think in splitting this up, we should do two more things:
|
What would go in |
I just had the impression that maybe the couple of remaining sections ( |
|
One of my goals is to remove the dependency on OmegaSequence as much as possible from all files that uses LTS (including LTS files themselves). There are quite a few definitions that need OmegaSequence, so I don't think putting all definitions in the single file is a good idea. (BTW, only 3 LTS files uses OmegaSequence now: OmegaExecution.lean, Total.lean, and Divergence.lean. Outside LTS, the first two are imported only by Automata/NA/{Basic,Total}.lean, respectively. Divergence.lean is not used anywhere.) I'll go ahead with putting Termination and the meta section in its own file. I'm not sure about Classes, because it does not seem to have a coherent theme. Actually I think splitting out Relation related stuff into its own file may make more sense. |
|
@chenson2018 Thanks for the fix. I'll try to see if I can split out Relation. |
|
LTS/Relation.lean has been split out. LTS/Basic.lean is now about 300 lines long. This is about as far as I want to go. |
|
!radar |
|
Benchmark results for a8a45a5 against 1119f31 are in. There are no significant changes. @chenson2018
Small changes (2✅, 11🟥)
|
|
(I think the benchmarking is mostly noise here, just wanted to check to be sure) |
|
I made the change of using |
|
Also, I made the decision of not putting |
|
LGTM, thanks! |
This PR splits `Cslib/Foundations/Semantics/LTS/Basic.lean` into 7 files with the following dependencies among them: - Basic.lean - Execution.lean, which imports Basic.lean - OmegaExecution.lean, which imports Execution.lean - Total.lean, which imports OmegaExecution.lean - HasTau.lean, which imports Basic.lean - Divergence.lean, which imports HasTau.lean and OmegaExecution.lean - Union.lean, which imports Basic.lean Other files which formerly import LTS/Basic.lean now import only the "lowest" necessary file in the above hierarchy. LTS/Basic.lean now imports only Cslib.Init and some mathlib files. I also took the opportunity to rename a few theorems to more rational and systematic names. --------- Co-authored-by: Chris Henson <chrishenson.net@gmail.com>
This PR splits `Cslib/Foundations/Semantics/LTS/Basic.lean` into 7 files with the following dependencies among them: - Basic.lean - Execution.lean, which imports Basic.lean - OmegaExecution.lean, which imports Execution.lean - Total.lean, which imports OmegaExecution.lean - HasTau.lean, which imports Basic.lean - Divergence.lean, which imports HasTau.lean and OmegaExecution.lean - Union.lean, which imports Basic.lean Other files which formerly import LTS/Basic.lean now import only the "lowest" necessary file in the above hierarchy. LTS/Basic.lean now imports only Cslib.Init and some mathlib files. I also took the opportunity to rename a few theorems to more rational and systematic names. --------- Co-authored-by: Chris Henson <chrishenson.net@gmail.com>
This PR splits
Cslib/Foundations/Semantics/LTS/Basic.leaninto 7 files with the following dependencies among them:Other files which formerly import LTS/Basic.lean now import only the "lowest" necessary file in the above hierarchy. LTS/Basic.lean now imports only Cslib.Init and some mathlib files.
I also took the opportunity to rename a few theorems to more rational and systematic names.