-
Notifications
You must be signed in to change notification settings - Fork 245
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
[ re #1993 ] Simplifying the dependency graph #1995
Conversation
Started with simplifying System.Console.ANSI Noticed we could take advantage of Data.Product.Base
Agree with the general philosophy! |
Yeah I don't think what I have done here is super controversial:
The most controversial (which is "not very" IMO) changes could be:
|
open import Data.Empty | ||
open import Data.Product as Prod | ||
open import Data.Empty using (⊥-elim) | ||
open import Data.Product.Base as Prod using (_,_; Σ; Σ-syntax; ∃; curry; uncurry) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you make essential use of the import of Σ-syntax
here?
if not, then one way to advance your thesis about the imports of Data.Product.Base
might be to move both definitions of the syntax for Σ
and ∃
to Data.Product
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The syntaxes are used in a few places already. I don't want to rewrite that code to
drop the syntaxes (which are trivial definitions that have no external dependencies)
just for the sake of it.
I think this PR in its current shape should be backwards compatible but moving
Σ-syntax
out of Data.Produt.Base
would break that.
Regarding
I suspect neither of these is much of a problem, but it does leave |
It's been very common in the past for |
I'd love to have decent tools for visualizing giant dependency graphs. I've done very aggressive refactoring on my own codes after I saw the complete mess by graphs were (but these were projects with ~50 files, not hundreds). It was extremely satisfying. |
@JacquesCarette Good idea. I've added it to my list of MSc projects to offer next year. :) |
I've written a first little analysis here: https://github.com/gallais/dot-analysis
Running it on the graph generated by
so there is still some work to do, and |
|
@Taneb That's the dependencies for
|
@Saransh-cpp this is something that can be dealt with incrementally. For |
Nice! I'll take that up! |
I've found the related work that I was thinking of TGView3D: a System for 3-Dimensional Visualization of Theory Graphs. There was a nice demo at CICM 2020 (and in 2018 too). The paper points to https://github.com/UniFormal/TGView3D for the sources. Large graphs are one of the few places where I've seen 3D being actually useful. |
To avoid duplicate PRs: I've simplified |
I opened #2002 for Relation.Binary.PropositionalEquality a few days ago |
Started with simplifying System.Console.ANSI
Noticed we could take advantage of Data.Product.Base
Got a bit sidetracked and started cleaning up a lot of modules