Skip to content

Conversation

@mikeshulman
Copy link
Contributor

This grew into a bigger project than I intended, but now I think it is clearly the right way to go.

  • The most important changes are in ReflectiveSubuniverse.v and Modality.v, combined with the new files Descent.v and Separated.v. (I don't expect the diffs for these files to be very readable; you'll probably want to fetch the branch directly and read the files locally.) The rest of the changes, to all the files in the Modalities directory and lots of files elsewhere, are mainly either support for these changes or adapting to these changes.

  • Now ReflectiveSubuniverse and Modality are records parametrized by one universe on which they live. That is, an element of ReflectiveSubuniverse@{i} is a reflective subuniverse of Type@{i}.

  • I did not make any changes to Basics or define an AccRSU type such as suggested in Redefine IsTrunc as an instance of AccRSU in Overture #1224. As @jdchristensen proposed there, this idea seems to be unnecessary; we can maintain the previous design with many different ways to construct modalities, including truncations, some of which turn out to be accessible afterwards.

  • The main changes visible in the rest of the library are (1) no longer any need to Import TrM (yay!), but (2) you have to write Tr n in a bunch of places where you could previously just write n. I can't think of a way around the latter change at the moment (declaring a coercion from trunc_index to Modality would, combined with the coercion from Modality to Funclass, result in Coq displaying the propositional truncation of A as (-1) A, which I think is undesirable).

  • One of the benefits of this change (which I think i forgot even to mention in Ditch the modules; free the modalities #1209) is that it will enable us to split up the monster file ReflectiveSubuniverse.v. But I didn't attempt that yet; this way it's easy to see that most of that file didn't need any change.

  • A lot of the universe annotations that we used to need are now unnecessary. I removed some of them (indeed, some of them had to be removed), but didn't systematically go through removing them all. (On the other hand, the management of universes now becomes a little fiddlier when passing back and forth between accessible modalities and their extensions to larger universes.)

  • I took @jdchristensen's suggestion and introduced a typeclass for saying that a particular type has a reflection into a subuniverse, with a ReflectiveSubuniverse being one for which this holds of all types. Many of the theorems about reflective subuniverses could be stated with only hypotheses like these, rather than that the entire subuniverse is reflective, but I didn't bother trying to do that.

  • Similarly, I introduced typeclasses saying that a particular reflection has dependent elimination into a subuniverse and that it has descent into a subuniverse. We say O1 << O2 if every O2-reflection has dependent elimination into O1-modal type families, and O1 <<< O2 if in addition families of O1-modal types descend along O2-reflections. Then an RSU O is a modality iff O << O, and lex iff O <<< O, while for any RSU we have O <<< Sep O. Most of the theorems about lex modalities, and many of the theorems in CORS about separated pairs, are special cases of theorems about these general relations between modalities. Accordingly, most of these theorems are now proven in Modality.v (for <<) or Descent.v (for <<<), and simply re-stated in Lex.v (and will be similarly re-stated in Separated.v once we formalize the proof that Sep O is always reflective). I'm sorry about introducing this new content change at the same time as a technical refactoring, but the refactoring required making a choice about how to bundle things and how to represent separated subuniverses, and it seemed like it would be less work overall to incorporate this change right from the start.

  • Since there are so many ways to define a modality, it's unclear which of them should be bundled up in the record type Modality. I made one choice, but I'm not at all sure it's the best one; feel free to make other suggestions.

  • Regarding the desire for truncations (for instance) to be polymorphic, it seems that this is very rarely an issue. A little universe annotation together with defining Trunc as a "cumulative inductive type" makes Trunc_functor as polymorphic as necessary, and a couple changes in other places are all that was needed so far.

  • Regarding the question of universes being modal, it seems that most of the time it is easier to work directly with the property that "modal type families descend", or even "reflections are oo-extendable into the universe", rather than trying to rephrase the latter in terms of the universe actually belonging to some reflective subuniverse. It is possible to pass back and forth to such versions as well, but at the cost of some finicky universe-wrangling that took me a while to get right (but I wanted to be sure it was possible, to be sure we weren't losing anything very important with this change). The price is some interesting lemmas that look very confusing to step through unless you have Set Printing Universes on to see how the universe annotations are changing at each step. Overall, I think there is less universe-wrangling than previously, and what there is is more "isolable".

Since this is such a large PR and also a big design change, I expect it will take a while to read and review, and we should be sure to wait enough time for everyone who wants to have a look at it to weigh in.

@Alizter
Copy link
Collaborator

Alizter commented Feb 16, 2020

The main changes visible in the rest of the library are (1) no longer any need to Import TrM (yay!), but (2) you have to write Tr n in a bunch of places where you could previously just write n. I can't think of a way around the latter change at the moment (declaring a coercion from trunc_index to Modality would, combined with the coercion from Modality to Funclass, result in Coq displaying the propositional truncation of A as (-1) A, which I think is undesirable).

You can apparently tell coq which coercions should always be printed. Use the following straight after the definition of Tr in Truncations/Core:

Coercion Tr : trunc_index >-> Modality.
Add Printing Coercion Tr.

This will stop the modality Tr n being written as n, yet still being able to write n for the modality.

@Alizter
Copy link
Collaborator

Alizter commented Feb 16, 2020

Splitting up ReflectiveSubuniverse is #1099

@Alizter Alizter linked an issue Feb 16, 2020 that may be closed by this pull request
@Alizter
Copy link
Collaborator

Alizter commented Feb 16, 2020

Is there any point to having CoreflectiveSubuniverse.v in its own folder in Comodalities anymore? If it doesn't look likely that we will add any comodalities, should we not just put them in the modalities folder? It's not like everything in the modalities folder has to do with modalities anyway.

: {d:D & P d * Q d} <~> Pullback (@pr1 D P) (@pr1 D Q)
:= Build_Equiv _ _ _ (ispullback_sigprod P Q).

(** If the induced map on fibers is an equivalence, then a square is a pullback. *)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, this makes us one step closer to #1012

@Alizter
Copy link
Collaborator

Alizter commented Feb 16, 2020

By the way, you can implement all my suggestions at once into a single commit. Just press the Add Suggestion to batch button.

@Alizter
Copy link
Collaborator

Alizter commented Feb 16, 2020

I'm glad that this is working out! After stepping through ReflectiveSubuniverse I noticed there are a lot of places we can optimise, for example by using nrefine instead of refine. I think these opimisations should however be carried out at a later date. I also noticed some indenting, which I can also do later.

@Alizter
Copy link
Collaborator

Alizter commented Feb 16, 2020

I think that with my comment about printing coercions you can modify the last commit so that it only removes the imports of TrM.

@mikeshulman
Copy link
Contributor Author

I actually find Tr n X more readable in ASCII than ||X||_{n}.

@jdchristensen
Copy link
Collaborator

This is looking great! Much cleaner and easier to understand, and more flexible. It might be a day or two before I can continue reviewing.

BTW, did you check how this reorganization affects the build times?

@mikeshulman
Copy link
Contributor Author

No hurry, take your time. I haven't done a time check yet.

Copy link
Collaborator

@Alizter Alizter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I am a bit worried about calling yet another thing descent however.

@mikeshulman
Copy link
Contributor Author

If we ever define descent for wild categories, all the others should be special cases... (-:O

@mikeshulman
Copy link
Contributor Author

I ran a timing diff; click to expand.
After    | Peak Mem  | File Name                                                    | Before   | Peak Mem  || Change    || Change (mem) | % Change | % Change (mem)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
6m54.62s | 633228 ko | Total Time / Peak Mem                                        | 7m28.04s | 635884 ko || -0m33.41s || -2656 ko     | -7.45%   | -0.41%        
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
0m02.73s | 346112 ko | Modalities/Lex.vo                                            | 0m08.75s | 371120 ko || -0m06.01s || -25008 ko    | -68.79%  | -6.73%        
0m11.51s | 519916 ko | Spaces/BAut/Bool.vo                                          | 0m08.34s | 423852 ko || +0m03.16s || 96064 ko     | +38.00%  | +22.66%       
0m02.33s | 345332 ko | Modalities/Topological.vo                                    | 0m05.43s | 422576 ko || -0m03.09s || -77244 ko    | -57.09%  | -18.27%       
0m20.22s | 548372 ko | Homotopy/BlakersMassey.vo                                    | 0m21.31s | 554068 ko || -0m01.08s || -5696 ko     | -5.11%   | -1.02%        
0m13.68s | 438664 ko | Modalities/ReflectiveSubuniverse.vo                          | 0m15.62s | 471760 ko || -0m01.93s || -33096 ko    | -12.41%  | -7.01%        
0m02.19s | 456300 ko | contrib/HoTTBookExercises.vo                                 | 0m03.36s | 549824 ko || -0m01.16s || -93524 ko    | -34.82%  | -17.00%       
0m01.65s | 338068 ko | Modalities/Descent.vo                                        |   N/A    |   N/A     || +0m01.64s || 338068 ko    | ∞        | ∞             
0m01.32s | 341860 ko | Modalities/Open.vo                                           | 0m02.96s | 403000 ko || -0m01.63s || -61140 ko    | -55.40%  | -15.17%       
0m01.15s | 502952 ko | contrib/HoTTBook.vo                                          | 0m02.77s | 598896 ko || -0m01.62s || -95944 ko    | -58.48%  | -16.02%       
0m01.10s | 349996 ko | Modalities/Fracture.vo                                       | 0m02.80s | 458100 ko || -0m01.69s || -108104 ko   | -60.71%  | -23.59%       
0m00.70s | 433368 ko | HoTT.vo                                                      | 0m02.03s | 536732 ko || -0m01.32s || -103364 ko   | -65.51%  | -19.25%       
0m00.59s | 435132 ko | Tests.vo                                                     | 0m02.32s | 542744 ko || -0m01.73s || -107612 ko   | -74.56%  | -19.82%       
0m00.32s | 251032 ko | Modalities/Closed.vo                                         | 0m01.86s | 418532 ko || -0m01.54s || -167500 ko   | -82.79%  | -40.02%       
0m00.29s | 230680 ko | Modalities/Accessible.vo                                     | 0m02.02s | 353116 ko || -0m01.73s || -122436 ko   | -85.64%  | -34.67%       
0m00.25s | 207508 ko | Modalities/Nullification.vo                                  | 0m01.57s | 377552 ko || -0m01.32s || -170044 ko   | -84.07%  | -45.03%       
0m19.29s | 438404 ko | Classes/implementations/natpair_integers.vo                  | 0m19.03s | 451560 ko || +0m00.25s || -13156 ko    | +1.36%   | -2.91%        
0m13.97s | 404216 ko | Cubical/PathCube.vo                                          | 0m14.63s | 404312 ko || -0m00.66s || -96 ko       | -4.51%   | -0.02%        
0m10.26s | 529296 ko | Homotopy/HomotopyGroup.vo                                    | 0m11.14s | 573916 ko || -0m00.88s || -44620 ko    | -7.89%   | -7.77%        
0m08.42s | 401248 ko | Idempotents.vo                                               | 0m08.93s | 402580 ko || -0m00.50s || -1332 ko     | -5.71%   | -0.33%        
0m08.23s | 633228 ko | Spaces/Torus/TorusEquivCircles.vo                            | 0m08.91s | 635884 ko || -0m00.67s || -2656 ko     | -7.63%   | -0.41%        
0m08.21s | 335196 ko | Categories/Adjoint/Pointwise.vo                              | 0m08.36s | 335216 ko || -0m00.14s || -20 ko       | -1.79%   | -0.00%        
0m06.41s | 359240 ko | Spaces/Finite.vo                                             | 0m06.74s | 365496 ko || -0m00.33s || -6256 ko     | -4.89%   | -1.71%        
0m06.32s | 361976 ko | Spaces/No/Core.vo                                            | 0m06.33s | 365308 ko || -0m00.00s || -3332 ko     | -0.15%   | -0.91%        
0m05.85s | 405072 ko | Algebra/AbelianGroup.vo                                      | 0m05.93s | 418236 ko || -0m00.08s || -13164 ko    | -1.34%   | -3.14%        
0m05.75s | 428368 ko | Colimits/Colimit_Flattening.vo                               | 0m06.17s | 428364 ko || -0m00.41s || 4 ko         | -6.80%   | +0.00%        
0m05.22s | 392660 ko | Classes/theory/premetric.vo                                  | 0m05.12s | 393008 ko || +0m00.09s || -348 ko      | +1.95%   | -0.08%        
0m04.92s | 340272 ko | Categories/ExponentialLaws/Law2/Law.vo                       | 0m05.32s | 340232 ko || -0m00.40s || 40 ko        | -7.51%   | +0.01%        
0m04.76s | 380652 ko | Classes/theory/rationals.vo                                  | 0m04.62s | 379512 ko || +0m00.13s || 1140 ko      | +3.03%   | +0.30%        
0m04.62s | 428824 ko | Homotopy/ClassifyingSpace.vo                                 | 0m04.92s | 450688 ko || -0m00.29s || -21864 ko    | -6.09%   | -4.85%        
0m04.59s | 359784 ko | Spaces/BAut.vo                                               | 0m04.75s | 378544 ko || -0m00.16s || -18760 ko    | -3.36%   | -4.95%        
0m04.33s | 329548 ko | Categories/Adjoint/Functorial/Laws.vo                        | 0m04.66s | 329992 ko || -0m00.33s || -444 ko      | -7.08%   | -0.13%        
0m04.18s | 337340 ko | Categories/ExponentialLaws/Law3/Law.vo                       | 0m04.44s | 337296 ko || -0m00.26s || 44 ko        | -5.85%   | +0.01%        
0m04.13s | 347316 ko | Categories/Category/Sigma/Univalent.vo                       | 0m04.30s | 347412 ko || -0m00.16s || -96 ko       | -3.95%   | -0.02%        
0m04.05s | 374484 ko | HIT/V.vo                                                     | 0m04.16s | 386644 ko || -0m00.11s || -12160 ko    | -2.64%   | -3.14%        
0m03.81s | 451168 ko | HIT/Spheres.vo                                               | 0m03.86s | 478900 ko || -0m00.04s || -27732 ko    | -1.29%   | -5.79%        
0m03.71s | 390864 ko | Spaces/No/Addition.vo                                        | 0m02.99s | 372056 ko || +0m00.71s || 18808 ko     | +24.08%  | +5.05%        
0m03.28s | 322412 ko | Categories/ExponentialLaws/Law4/Law.vo                       | 0m03.29s | 322392 ko || -0m00.01s || 20 ko        | -0.30%   | +0.00%        
0m03.28s | 368508 ko | Pointed/pSusp.vo                                             | 0m03.51s | 395460 ko || -0m00.23s || -26952 ko    | -6.55%   | -6.81%        
0m03.14s | 433560 ko | Homotopy/CayleyDickson.vo                                    | 0m03.46s | 462768 ko || -0m00.31s || -29208 ko    | -9.24%   | -6.31%        
0m03.10s | 353284 ko | Pointed/Loops.vo                                             | 0m03.33s | 355620 ko || -0m00.23s || -2336 ko     | -6.90%   | -0.65%        
0m02.94s | 358244 ko | Spaces/Universe.vo                                           | 0m03.07s | 378124 ko || -0m00.12s || -19880 ko    | -4.23%   | -5.25%        
0m02.93s | 323936 ko | Factorization.vo                                             | 0m03.05s | 323824 ko || -0m00.11s || 112 ko       | -3.93%   | +0.03%        
0m02.88s | 339076 ko | Categories/LaxComma/CoreLaws.vo                              | 0m02.96s | 338980 ko || -0m00.08s || 96 ko        | -2.70%   | +0.02%        
0m02.83s | 338472 ko | HIT/Coeq.vo                                                  | 0m02.78s | 338548 ko || +0m00.05s || -76 ko       | +1.79%   | -0.02%        
0m02.75s | 353248 ko | Algebra/Group.vo                                             | 0m03.00s | 363464 ko || -0m00.25s || -10216 ko    | -8.33%   | -2.81%        
0m02.72s | 353976 ko | Classes/interfaces/abstract_algebra.vo                       | 0m02.20s | 354432 ko || +0m00.52s || -456 ko      | +23.63%  | -0.12%        
0m02.71s | 333032 ko | PropResizing/Nat.vo                                          | 0m02.85s | 332988 ko || -0m00.14s || 44 ko        | -4.91%   | +0.01%        
0m02.61s | 358056 ko | Classes/implementations/field_of_fractions.vo                | 0m02.56s | 359852 ko || +0m00.04s || -1796 ko     | +1.95%   | -0.49%        
0m02.58s | 330784 ko | Categories/Category/Paths.vo                                 | 0m02.52s | 330856 ko || +0m00.06s || -72 ko       | +2.38%   | -0.02%        
0m02.46s | 125840 ko | Categories/Grothendieck/ToSet/Univalent.vo                   | 0m02.79s | 125828 ko || -0m00.33s || 12 ko        | -11.82%  | +0.00%        
0m02.31s | 349452 ko | Colimits/Colimit_Pushout.vo                                  | 0m02.40s | 349320 ko || -0m00.08s || 132 ko       | -3.74%   | +0.03%        
0m02.26s | 357024 ko | Algebra/ooGroup.vo                                           | 0m02.29s | 378520 ko || -0m00.03s || -21496 ko    | -1.31%   | -5.67%        
0m02.15s | 355868 ko | Spaces/Card.vo                                               | 0m02.03s | 355188 ko || +0m00.12s || 680 ko       | +5.91%   | +0.19%        
0m02.14s | 342496 ko | Comodalities/CoreflectiveSubuniverse.vo                      | 0m02.79s | 397928 ko || -0m00.64s || -55432 ko    | -23.29%  | -13.93%       
0m02.12s | 340576 ko | WildCat/Sum.vo                                               | 0m02.22s | 340624 ko || -0m00.10s || -48 ko       | -4.50%   | -0.01%        
0m02.09s | 360104 ko | Classes/implementations/binary_naturals.vo                   | 0m02.00s | 363244 ko || +0m00.08s || -3140 ko     | +4.49%   | -0.86%        
0m02.09s | 351552 ko | Spaces/BAut/Rigid.vo                                         | 0m01.83s | 373244 ko || +0m00.25s || -21692 ko    | +14.20%  | -5.81%        
0m02.07s | 349380 ko | Algebra/Subgroup.vo                                          | 0m02.74s | 359412 ko || -0m00.67s || -10032 ko    | -24.45%  | -2.79%        
0m02.02s | 330244 ko | Modalities/Modality.vo                                       | 0m01.97s | 333972 ko || +0m00.05s || -3728 ko     | +2.53%   | -1.11%        
0m02.01s | 365316 ko | Classes/orders/semirings.vo                                  | 0m02.02s | 366508 ko || -0m00.01s || -1192 ko     | -0.49%   | -0.32%        
0m01.96s | 320076 ko | Cubical/PathSquare.vo                                        | 0m01.75s | 320224 ko || +0m00.20s || -148 ko      | +11.99%  | -0.04%        
0m01.95s | 373684 ko | Homotopy/EMSpace.vo                                          | 0m02.31s | 392780 ko || -0m00.36s || -19096 ko    | -15.58%  | -4.86%        
0m01.82s | 323832 ko | Categories/Comma/ProjectionFunctors.vo                       | 0m01.98s | 323996 ko || -0m00.15s || -164 ko      | -8.08%   | -0.05%        
0m01.82s | 313900 ko | Categories/GroupoidCategory/Morphisms.vo                     | 0m01.75s | 313972 ko || +0m00.07s || -72 ko       | +4.00%   | -0.02%        
0m01.82s | 347912 ko | HIT/FreeIntQuotient.vo                                       | 0m01.94s | 349076 ko || -0m00.11s || -1164 ko     | -6.18%   | -0.33%        
0m01.77s | 351604 ko | Colimits/Colimit_Pushout_Flattening.vo                       | 0m01.83s | 351616 ko || -0m00.06s || -12 ko       | -3.27%   | -0.00%        
0m01.65s | 363200 ko | Classes/theory/int_abs.vo                                    | 0m01.66s | 364028 ko || -0m00.01s || -828 ko      | -0.60%   | -0.22%        
0m01.59s | 357948 ko | Classes/theory/ua_third_isomorphism.vo                       | 0m01.51s | 356828 ko || +0m00.08s || 1120 ko      | +5.29%   | +0.31%        
0m01.57s | 326052 ko | Categories/Comma/Functorial.vo                               | 0m01.65s | 326156 ko || -0m00.07s || -104 ko      | -4.84%   | -0.03%        
0m01.54s | 357016 ko | Pointed/pFiber.vo                                            | 0m01.66s | 360480 ko || -0m00.11s || -3464 ko     | -7.22%   | -0.96%        
0m01.44s | 318220 ko | Types/Universe.vo                                            | 0m01.41s | 318312 ko || +0m00.03s || -92 ko       | +2.12%   | -0.02%        
0m01.38s | 349644 ko | Classes/theory/fields.vo                                     | 0m01.48s | 351472 ko || -0m00.10s || -1828 ko     | -6.75%   | -0.52%        
0m01.37s | 345360 ko | Classes/implementations/pointwise.vo                         | 0m01.43s | 346520 ko || -0m00.05s || -1160 ko     | -4.19%   | -0.33%        
0m01.32s | 364312 ko | Classes/theory/integers.vo                                   | 0m01.33s | 365456 ko || -0m00.01s || -1144 ko     | -0.75%   | -0.31%        
0m01.31s | 322728 ko | Categories/Category/Morphisms.vo                             | 0m01.34s | 322828 ko || -0m00.03s || -100 ko      | -2.23%   | -0.03%        
0m01.30s | 356036 ko | Classes/orders/rings.vo                                      | 0m01.25s | 355940 ko || +0m00.05s || 96 ko        | +4.00%   | +0.02%        
0m01.30s | 328804 ko | Colimits/Pushout.vo                                          | 0m01.37s | 328780 ko || -0m00.07s || 24 ko        | -5.10%   | +0.00%        
0m01.30s | 313264 ko | TruncType.vo                                                 | 0m01.35s | 313212 ko || -0m00.05s || 52 ko        | -3.70%   | +0.01%        
0m01.26s | 356500 ko | Classes/orders/nat_int.vo                                    | 0m01.30s | 356496 ko || -0m00.04s || 4 ko         | -3.07%   | +0.00%        
0m01.22s | 356360 ko | Classes/implementations/peano_naturals.vo                    | 0m01.34s | 357776 ko || -0m00.12s || -1416 ko     | -8.95%   | -0.39%        
0m01.20s | 358448 ko | Classes/orders/integers.vo                                   | 0m01.16s | 359568 ko || +0m00.04s || -1120 ko     | +3.44%   | -0.31%        
0m01.20s | 323508 ko | Colimits/Colimit_Sigma.vo                                    | 0m01.19s | 323476 ko || +0m00.01s || 32 ko        | +0.84%   | +0.00%        
0m01.20s | 316700 ko | Fibrations.vo                                                | 0m01.15s | 316824 ko || +0m00.05s || -124 ko      | +4.34%   | -0.03%        
0m01.17s | 317820 ko | Basics/PathGroupoids.vo                                      | 0m01.27s | 318012 ko || -0m00.10s || -192 ko      | -7.87%   | -0.06%        
0m01.17s | 317896 ko | Types/Sum.vo                                                 | 0m01.13s | 317784 ko || +0m00.04s || 112 ko       | +3.53%   | +0.03%        
0m01.13s | 331352 ko | Categories/Grothendieck/ToSet/Morphisms.vo                   | 0m01.13s | 331364 ko || +0m00.00s || -12 ko       | +0.00%   | -0.00%        
0m01.13s | 351720 ko | Classes/orders/orders.vo                                     | 0m01.25s | 354340 ko || -0m00.12s || -2620 ko     | -9.60%   | -0.73%        
0m01.11s | 350912 ko | Classes/theory/dec_fields.vo                                 | 0m01.01s | 352204 ko || +0m00.10s || -1292 ko     | +9.90%   | -0.36%        
0m01.09s | 367612 ko | Homotopy/WhiteheadsPrinciple.vo                              | 0m01.31s | 391792 ko || -0m00.21s || -24180 ko    | -16.79%  | -6.17%        
0m01.09s | 321820 ko | Tactics/EquivalenceInduction.vo                              | 0m01.11s | 321844 ko || -0m00.02s || -24 ko       | -1.80%   | -0.00%        
0m01.08s | 351144 ko | Homotopy/Suspension.vo                                       | 0m01.18s | 368040 ko || -0m00.09s || -16896 ko    | -8.47%   | -4.59%        
0m01.08s | 397856 ko | Spaces/Torus/TorusHomotopy.vo                                | 0m01.22s | 414948 ko || -0m00.13s || -17092 ko    | -11.47%  | -4.11%        
0m01.07s | 354184 ko | Classes/theory/ua_second_isomorphism.vo                      | 0m00.98s | 354876 ko || +0m00.09s || -692 ko      | +9.18%   | -0.19%        
0m01.06s | 347196 ko | Colimits/Quotient.vo                                         | 0m01.45s | 350680 ko || -0m00.38s || -3484 ko     | -26.89%  | -0.99%        
0m01.04s | 316772 ko | Categories/ExponentialLaws/Law1/Law.vo                       | 0m01.07s | 316576 ko || -0m00.03s || 196 ko       | -2.80%   | +0.06%        
0m01.04s | 335976 ko | Modalities/Localization.vo                                   | 0m01.19s | 368148 ko || -0m00.14s || -32172 ko    | -12.60%  | -8.73%        
0m01.01s | 346680 ko | Classes/implementations/hprop_lattice.vo                     | 0m01.22s | 347272 ko || -0m00.20s || -592 ko      | -17.21%  | -0.17%        
0m01.00s | 351840 ko | Classes/theory/ua_quotient_algebra.vo                        | 0m00.83s | 352544 ko || +0m00.17s || -704 ko      | +20.48%  | -0.19%        
0m00.99s | 321488 ko | Categories/Adjoint/Composition/AssociativityLaw.vo           | 0m01.07s | 321524 ko || -0m00.08s || -36 ko       | -7.47%   | -0.01%        
0m00.95s | 354664 ko | Classes/theory/ua_first_isomorphism.vo                       | 0m00.99s | 355252 ko || -0m00.04s || -588 ko      | -4.04%   | -0.16%        
0m00.95s | 342872 ko | Truncations/Connectedness.vo                                 | 0m00.73s | 345164 ko || +0m00.21s || -2292 ko     | +30.13%  | -0.66%        
0m00.94s | 313184 ko | Pointed/pMap.vo                                              | 0m00.95s | 313192 ko || -0m00.01s || -8 ko        | -1.05%   | -0.00%        
0m00.93s | 364416 ko | Homotopy/HSpaceS1.vo                                         | 0m01.15s | 386496 ko || -0m00.21s || -22080 ko    | -19.13%  | -5.71%        
0m00.91s | 352776 ko | Classes/theory/rings.vo                                      | 0m00.91s | 353372 ko || +0m00.00s || -596 ko      | +0.00%   | -0.16%        
0m00.90s | 353072 ko | Classes/orders/lattices.vo                                   | 0m00.90s | 354348 ko || +0m00.00s || -1276 ko     | +0.00%   | -0.36%        
0m00.89s | 321292 ko | Categories/Grothendieck/PseudofunctorToCat.vo                | 0m00.97s | 321284 ko || -0m00.07s || 8 ko         | -8.24%   | +0.00%        
0m00.89s | 355728 ko | Classes/theory/naturals.vo                                   | 0m00.79s | 353476 ko || +0m00.09s || 2252 ko      | +12.65%  | +0.63%        
0m00.89s | 317504 ko | HIT/Flattening.vo                                            | 0m00.90s | 317424 ko || -0m00.01s || 80 ko        | -1.11%   | +0.02%        
0m00.88s | 332392 ko | Cubical/DPathCube.vo                                         | 0m00.96s | 332296 ko || -0m00.07s || 96 ko        | -8.33%   | +0.02%        
0m00.87s | 317908 ko | Categories/Functor/Paths.vo                                  | 0m00.86s | 317924 ko || +0m00.01s || -16 ko       | +1.16%   | -0.00%        
0m00.87s | 220852 ko | Pointed/pType.vo                                             | 0m00.92s | 220840 ko || -0m00.05s || 12 ko        | -5.43%   | +0.00%        
0m00.86s | 322116 ko | HIT/TwoSphere.vo                                             | 0m00.73s | 322072 ko || +0m00.13s || 44 ko        | +17.80%  | +0.01%        
0m00.83s | 312764 ko | Types/Sigma.vo                                               | 0m00.88s | 312744 ko || -0m00.05s || 20 ko        | -5.68%   | +0.00%        
0m00.82s | 348116 ko | Classes/tactics/ring_pol.vo                                  | 0m00.84s | 350472 ko || -0m00.02s || -2356 ko     | -2.38%   | -0.67%        
0m00.80s | 344964 ko | Homotopy/Join.vo                                             | 0m00.78s | 352452 ko || +0m00.02s || -7488 ko     | +2.56%   | -2.12%        
0m00.79s | 314520 ko | Categories/Functor/Sum.vo                                    | 0m00.72s | 314588 ko || +0m00.07s || -68 ko       | +9.72%   | -0.02%        
0m00.78s | 354016 ko | Spaces/BAut/Cantor.vo                                        | 0m00.77s | 373328 ko || +0m00.01s || -19312 ko    | +1.29%   | -5.17%        
0m00.78s | 307800 ko | WildCat/FunctorCat.vo                                        | 0m00.76s | 307708 ko || +0m00.02s || 92 ko        | +2.63%   | +0.02%        
0m00.76s | 348280 ko | Algebra/QuotientGroup.vo                                     | 0m01.68s | 359524 ko || -0m00.92s || -11244 ko    | -54.76%  | -3.12%        
0m00.75s | 346664 ko | Algebra/Aut.vo                                               | 0m00.99s | 369208 ko || -0m00.24s || -22544 ko    | -24.24%  | -6.10%        
0m00.75s | 380708 ko | Homotopy/Pi1S1.vo                                            | 0m00.80s | 401828 ko || -0m00.05s || -21120 ko    | -6.25%   | -5.25%        
0m00.73s | 346380 ko | Classes/theory/groups.vo                                     | 0m00.68s | 347612 ko || +0m00.04s || -1232 ko     | +7.35%   | -0.35%        
0m00.73s | 344308 ko | HIT/quotient.vo                                              | 0m00.72s | 346516 ko || +0m00.01s || -2208 ko     | +1.38%   | -0.63%        
0m00.72s | 346620 ko | Classes/isomorphisms/rings.vo                                | 0m00.65s | 348768 ko || +0m00.06s || -2148 ko     | +10.76%  | -0.61%        
0m00.72s | 351900 ko | Classes/orders/dec_fields.vo                                 | 0m00.74s | 353072 ko || -0m00.02s || -1172 ko     | -2.70%   | -0.33%        
0m00.72s | 343720 ko | HIT/epi.vo                                                   | 0m00.74s | 346848 ko || -0m00.02s || -3128 ko     | -2.70%   | -0.90%        
0m00.71s | 351124 ko | Classes/theory/ua_homomorphism.vo                            | 0m00.73s | 352360 ko || -0m00.02s || -1236 ko     | -2.73%   | -0.35%        
0m00.68s | 351852 ko | Classes/tactics/ring_tac.vo                                  | 0m00.59s | 350880 ko || +0m00.09s || 972 ko       | +15.25%  | +0.27%        
0m00.68s | 347256 ko | Classes/theory/apartness.vo                                  | 0m00.61s | 345824 ko || +0m00.07s || 1432 ko      | +11.47%  | +0.41%        
0m00.67s | 312560 ko | Categories/ExponentialLaws/Law4/Functors.vo                  | 0m00.76s | 312532 ko || -0m00.08s || 28 ko        | -11.84%  | +0.00%        
0m00.67s | 347844 ko | Classes/theory/lattices.vo                                   | 0m00.62s | 348876 ko || +0m00.05s || -1032 ko     | +8.06%   | -0.29%        
0m00.67s | 340644 ko | DProp.vo                                                     | 0m00.65s | 344516 ko || +0m00.02s || -3872 ko     | +3.07%   | -1.12%        
0m00.67s | 308440 ko | Types/Paths.vo                                               | 0m00.70s | 308548 ko || -0m00.02s || -108 ko      | -4.28%   | -0.03%        
0m00.66s | 321116 ko | Categories/Adjoint/HomCoercions.vo                           | 0m00.77s | 321144 ko || -0m00.10s || -28 ko       | -14.28%  | -0.00%        
0m00.66s | 353184 ko | Classes/orders/naturals.vo                                   | 0m00.61s | 353956 ko || +0m00.05s || -772 ko      | +8.19%   | -0.21%        
0m00.66s | 325460 ko | Homotopy/Smash.vo                                            | 0m00.73s | 325448 ko || -0m00.06s || 12 ko        | -9.58%   | +0.00%        
0m00.65s | 318624 ko | Categories/Pseudofunctor/RewriteLaws.vo                      | 0m00.71s | 318572 ko || -0m00.05s || 52 ko        | -8.45%   | +0.01%        
0m00.63s | 350408 ko | Categories/Yoneda.vo                                         | 0m00.52s | 351108 ko || +0m00.10s || -700 ko      | +21.15%  | -0.19%        
0m00.63s | 309376 ko | WildCat/Yoneda.vo                                            | 0m00.62s | 309544 ko || +0m00.01s || -168 ko      | +1.61%   | -0.05%        
0m00.62s | 342680 ko | Homotopy/Freudenthal.vo                                      | 0m00.73s | 366304 ko || -0m00.10s || -23624 ko    | -15.06%  | -6.44%        
0m00.61s | 351072 ko | Classes/orders/maps.vo                                       | 0m00.66s | 352852 ko || -0m00.05s || -1780 ko     | -7.57%   | -0.50%        
0m00.60s | 391936 ko | Categories.vo                                                | 0m00.51s | 392716 ko || +0m00.08s || -780 ko      | +17.64%  | -0.19%        
0m00.60s | 315216 ko | Categories/Functor/Composition/Laws.vo                       | 0m00.60s | 315128 ko || +0m00.00s || 88 ko        | +0.00%   | +0.02%        
0m00.60s | 315712 ko | EquivalenceVarieties.vo                                      | 0m00.56s | 315792 ko || +0m00.03s || -80 ko       | +7.14%   | -0.02%        
0m00.60s | 308656 ko | Types/Equiv.vo                                               | 0m00.52s | 308664 ko || +0m00.07s || -8 ko        | +15.38%  | -0.00%        
0m00.60s | 309080 ko | WildCat/Equiv.vo                                             | 0m00.55s | 309184 ko || +0m00.04s || -104 ko      | +9.09%   | -0.03%        
0m00.59s | 315876 ko | Categories/Pseudofunctor/Identity.vo                         | 0m00.65s | 315796 ko || -0m00.06s || 80 ko        | -9.23%   | +0.02%        
0m00.59s | 315988 ko | Colimits/Colimit.vo                                          | 0m00.66s | 316040 ko || -0m00.07s || -52 ko       | -10.60%  | -0.01%        
0m00.59s | 342308 ko | Pointed/pTrunc.vo                                            | 0m00.76s | 345820 ko || -0m00.17s || -3512 ko     | -22.36%  | -1.01%        
0m00.58s | 316744 ko | Categories/Adjoint/Composition/IdentityLaws.vo               | 0m00.61s | 316856 ko || -0m00.03s || -112 ko      | -4.91%   | -0.03%        
0m00.58s | 346260 ko | Categories/ChainCategory.vo                                  | 0m00.56s | 347388 ko || +0m00.01s || -1128 ko     | +3.57%   | -0.32%        
0m00.58s | 352716 ko | Classes/tests/ring_tac.vo                                    | 0m00.58s | 351764 ko || +0m00.00s || 952 ko       | +0.00%   | +0.27%        
0m00.55s | 344760 ko | Classes/interfaces/ua_congruence.vo                          | 0m00.45s | 346836 ko || +0m00.10s || -2076 ko     | +22.22%  | -0.59%        
0m00.55s | 344940 ko | Classes/tactics/ring_quote.vo                                | 0m00.57s | 347244 ko || -0m00.01s || -2304 ko     | -3.50%   | -0.66%        
0m00.55s | 319840 ko | Colimits/Colimit_Coequalizer.vo                              | 0m00.60s | 319844 ko || -0m00.04s || -4 ko        | -8.33%   | -0.00%        
0m00.55s | 340856 ko | Constant.vo                                                  | 0m00.55s | 343252 ko || +0m00.00s || -2396 ko     | +0.00%   | -0.69%        
0m00.54s | 343600 ko | Classes/interfaces/canonical_names.vo                        | 0m00.49s | 344616 ko || +0m00.05s || -1016 ko     | +10.20%  | -0.29%        
0m00.54s | 340600 ko | Modalities/Separated.vo                                      |   N/A    |   N/A     || +0m00.54s || 340600 ko    | ∞        | ∞             
0m00.53s | 315936 ko | Categories/Pseudofunctor/FromFunctor.vo                      | 0m00.50s | 316020 ko || +0m00.03s || -84 ko       | +6.00%   | -0.02%        
0m00.52s | 316104 ko | Categories/Comma/Core.vo                                     | 0m00.61s | 316176 ko || -0m00.08s || -72 ko       | -14.75%  | -0.02%        
0m00.52s | 348220 ko | Categories/Functor/Attributes.vo                             | 0m00.39s | 349324 ko || +0m00.13s || -1104 ko     | +33.33%  | -0.31%        
0m00.52s | 349560 ko | Classes/theory/nat_distance.vo                               | 0m00.49s | 352484 ko || +0m00.03s || -2924 ko     | +6.12%   | -0.82%        
0m00.52s | 342640 ko | Homotopy/HSpace.vo                                           | 0m00.47s | 346792 ko || +0m00.05s || -4152 ko     | +10.63%  | -1.19%        
0m00.51s | 345072 ko | Classes/interfaces/ua_algebra.vo                             | 0m00.49s | 347104 ko || +0m00.02s || -2032 ko     | +4.08%   | -0.58%        
0m00.51s | 307856 ko | Types/Prod.vo                                                | 0m00.52s | 308064 ko || -0m00.01s || -208 ko      | -1.92%   | -0.06%        
0m00.51s | 306460 ko | WildCat/Prod.vo                                              | 0m00.55s | 306448 ko || -0m00.04s || 12 ko        | -7.27%   | +0.00%        
0m00.50s | 318008 ko | Categories/LaxComma/CoreParts.vo                             | 0m00.49s | 318040 ko || +0m00.01s || -32 ko       | +2.04%   | -0.01%        
0m00.50s | 316888 ko | Diagrams/Cocone.vo                                           | 0m00.49s | 316820 ko || +0m00.01s || 68 ko        | +2.04%   | +0.02%        
0m00.49s | 346644 ko | Classes/categories/ua_category.vo                            | 0m00.50s | 349296 ko || -0m00.01s || -2652 ko     | -2.00%   | -0.75%        
0m00.49s | 314340 ko | Diagrams/Diagram.vo                                          | 0m00.43s | 314444 ko || +0m00.06s || -104 ko      | +13.95%  | -0.03%        
0m00.49s | 308280 ko | WildCat/EquivGpd.vo                                          | 0m00.51s | 308396 ko || -0m00.02s || -116 ko      | -3.92%   | -0.03%        
0m00.48s | 312624 ko | Categories/Adjoint/UnitCounitCoercions.vo                    | 0m00.57s | 312576 ko || -0m00.08s || 48 ko        | -15.78%  | +0.01%        
0m00.48s | 313060 ko | Categories/Category/Sigma/OnMorphisms.vo                     | 0m00.45s | 313092 ko || +0m00.02s || -32 ko       | +6.66%   | -0.01%        
0m00.48s | 315832 ko | Categories/Comma/InducedFunctors.vo                          | 0m00.51s | 315764 ko || -0m00.03s || 68 ko        | -5.88%   | +0.02%        
0m00.48s | 317524 ko | Limits/Pullback.vo                                           | 0m00.59s | 318436 ko || -0m00.10s || -912 ko      | -18.64%  | -0.28%        
0m00.47s | 345236 ko | Classes/theory/ua_isomorphic.vo                              | 0m00.50s | 347864 ko || -0m00.03s || -2628 ko     | -6.00%   | -0.75%        
0m00.47s | 317256 ko | Cubical/DPath.vo                                             | 0m00.48s | 317376 ko || -0m00.01s || -120 ko      | -2.08%   | -0.03%        
0m00.47s | 314720 ko | Diagrams/ConstantDiagram.vo                                  | 0m00.46s | 314808 ko || +0m00.00s || -88 ko       | +2.17%   | -0.02%        
0m00.46s | 349260 ko | Categories/Functor/Composition/Functorial/Attributes.vo      | 0m00.83s | 351252 ko || -0m00.36s || -1992 ko     | -44.57%  | -0.56%        
0m00.46s | 342456 ko | Spaces/No/Negation.vo                                        | 0m00.51s | 344144 ko || -0m00.04s || -1688 ko     | -9.80%   | -0.49%        
0m00.45s | 305628 ko | Basics/Equivalences.vo                                       | 0m00.48s | 305640 ko || -0m00.02s || -12 ko       | -6.24%   | -0.00%        
0m00.45s | 313216 ko | Categories/Adjoint/Composition/Core.vo                       | 0m00.52s | 313132 ko || -0m00.07s || 84 ko        | -13.46%  | +0.02%        
0m00.45s | 345044 ko | Classes/theory/ua_subalgebra.vo                              | 0m00.46s | 347740 ko || -0m00.01s || -2696 ko     | -2.17%   | -0.77%        
0m00.44s | 313596 ko | Categories/Functor/Pointwise/Properties.vo                   | 0m00.51s | 313684 ko || -0m00.07s || -88 ko       | -13.72%  | -0.02%        
0m00.44s | 312404 ko | Categories/Functor/Prod/Universal.vo                         | 0m00.45s | 312492 ko || -0m00.01s || -88 ko       | -2.22%   | -0.02%        
0m00.43s | 344520 ko | Classes/interfaces/integers.vo                               | 0m00.48s | 346876 ko || -0m00.04s || -2356 ko     | -10.41%  | -0.67%        
0m00.43s | 343968 ko | Classes/interfaces/orders.vo                                 | 0m00.52s | 344956 ko || -0m00.09s || -988 ko      | -17.30%  | -0.28%        
0m00.43s | 316192 ko | Extensions.vo                                                | 0m00.41s | 316492 ko || +0m00.02s || -300 ko      | +4.87%   | -0.09%        
0m00.43s | 344360 ko | HIT/Circle.vo                                                | 0m00.47s | 345864 ko || -0m00.03s || -1504 ko     | -8.51%   | -0.43%        
0m00.43s | 331144 ko | Truncations/Core.vo                                          | 0m00.77s | 345564 ko || -0m00.34s || -14420 ko    | -44.15%  | -4.17%        
0m00.43s | 306068 ko | WildCat/Core.vo                                              | 0m00.40s | 306196 ko || +0m00.02s || -128 ko      | +7.49%   | -0.04%        
0m00.42s | 316784 ko | Categories/UniversalProperties.vo                            | 0m00.49s | 316716 ko || -0m00.07s || 68 ko        | -14.28%  | +0.02%        
0m00.42s | 344824 ko | Classes/implementations/ne_list.vo                           | 0m00.35s | 346568 ko || +0m00.07s || -1744 ko     | +20.00%  | -0.50%        
0m00.42s | 315112 ko | Diagrams/Cone.vo                                             | 0m00.43s | 315092 ko || -0m00.01s || 20 ko        | -2.32%   | +0.00%        
0m00.41s | 338624 ko | Algebra/Z.vo                                                 | 0m00.37s | 348392 ko || +0m00.03s || -9768 ko     | +10.81%  | -2.80%        
0m00.41s | 352760 ko | Classes/implementations/assume_rationals.vo                  | 0m00.39s | 356804 ko || +0m00.01s || -4044 ko     | +5.12%   | -1.13%        
0m00.41s | 343408 ko | Classes/theory/additional_operations.vo                      | 0m00.43s | 345184 ko || -0m00.02s || -1776 ko     | -4.65%   | -0.51%        
0m00.41s | 310828 ko | Spaces/Int/LoopExp.vo                                        | 0m00.33s | 310924 ko || +0m00.07s || -96 ko       | +24.24%  | -0.03%        
0m00.40s | 343632 ko | Classes/implementations/list.vo                              | 0m00.41s | 345464 ko || -0m00.00s || -1832 ko     | -2.43%   | -0.53%        
0m00.40s | 343656 ko | Classes/orders/sum.vo                                        | 0m00.33s | 334300 ko || +0m00.07s || 9356 ko      | +21.21%  | +2.79%        
0m00.39s | 312544 ko | Categories/Adjoint/Paths.vo                                  | 0m00.42s | 312580 ko || -0m00.02s || -36 ko       | -7.14%   | -0.01%        
0m00.39s | 314256 ko | Categories/Comma/Dual.vo                                     | 0m00.59s | 314240 ko || -0m00.19s || 16 ko        | -33.89%  | +0.00%        
0m00.39s | 315588 ko | Categories/ProductLaws.vo                                    | 0m00.39s | 315744 ko || +0m00.00s || -156 ko      | +0.00%   | -0.04%        
0m00.39s | 312688 ko | Categories/SetCategory/Morphisms.vo                          | 0m00.42s | 312772 ko || -0m00.02s || -84 ko       | -7.14%   | -0.02%        
0m00.39s | 351624 ko | Classes/interfaces/rationals.vo                              | 0m00.42s | 355424 ko || -0m00.02s || -3800 ko     | -7.14%   | -1.06%        
0m00.39s | 305176 ko | Diagrams/CommutativeSquares.vo                               | 0m00.35s | 305188 ko || +0m00.04s || -12 ko       | +11.42%  | -0.00%        
0m00.39s | 307020 ko | Types/Forall.vo                                              | 0m00.35s | 307008 ko || +0m00.04s || 12 ko        | +11.42%  | +0.00%        
0m00.38s | 322332 ko | Categories/LaxComma/Core.vo                                  | 0m00.39s | 322292 ko || -0m00.01s || 40 ko        | -2.56%   | +0.01%        
0m00.38s | 345044 ko | Classes/theory/ua_prod_algebra.vo                            | 0m00.37s | 347852 ko || +0m00.01s || -2808 ko     | +2.70%   | -0.80%        
0m00.38s | 314940 ko | Pointed/pEquiv.vo                                            | 0m00.44s | 314952 ko || -0m00.06s || -12 ko       | -13.63%  | -0.00%        
0m00.38s | 313688 ko | UnivalenceVarieties.vo                                       | 0m00.33s | 319456 ko || +0m00.04s || -5768 ko     | +15.15%  | -1.80%        
0m00.36s | 344052 ko | Classes/implementations/bool.vo                              | 0m00.39s | 344968 ko || -0m00.03s || -916 ko      | -7.69%   | -0.26%        
0m00.36s | 344856 ko | Classes/interfaces/ua_setalgebra.vo                          | 0m00.39s | 346496 ko || -0m00.03s || -1640 ko     | -7.69%   | -0.47%        
0m00.35s | 343812 ko | Classes/interfaces/naturals.vo                               | 0m00.39s | 345896 ko || -0m00.04s || -2084 ko     | -10.25%  | -0.60%        
0m00.34s | 242680 ko | Pointed/pHomotopy.vo                                         | 0m00.22s | 242716 ko || +0m00.12s || -36 ko       | +54.54%  | -0.01%        
0m00.34s | 358500 ko | Spaces/BAut/Bool/IncoherentIdempotent.vo                     | 0m00.39s | 326772 ko || -0m00.04s || 31728 ko     | -12.82%  | +9.70%        
0m00.34s | 306144 ko | WildCat/Opposite.vo                                          | 0m00.30s | 306248 ko || +0m00.04s || -104 ko      | +13.33%  | -0.03%        
0m00.33s | 318600 ko | Algebra/Congruence.vo                                        | 0m00.34s | 290284 ko || -0m00.01s || 28316 ko     | -2.94%   | +9.75%        
0m00.33s | 284296 ko | Spaces/Int/Spec.vo                                           | 0m00.31s | 284376 ko || +0m00.02s || -80 ko       | +6.45%   | -0.02%        
0m00.32s | 301264 ko | Classes/interfaces/monad.vo                                  | 0m00.29s | 277744 ko || +0m00.03s || 23520 ko     | +10.34%  | +8.46%        
0m00.32s | 228656 ko | Spaces/Nat.vo                                                | 0m00.29s | 232832 ko || +0m00.03s || -4176 ko     | +10.34%  | -1.79%        
0m00.30s | 271016 ko | BoundedSearch.vo                                             | 0m00.29s | 256120 ko || +0m00.01s || 14896 ko     | +3.44%   | +5.81%        
0m00.30s | 247336 ko | Categories/InitialTerminalCategory/Pseudofunctors.vo         | 0m00.30s | 247344 ko || +0m00.00s || -8 ko        | +0.00%   | -0.00%        
0m00.30s | 236172 ko | Categories/Structure/IdentityPrinciple.vo                    | 0m00.31s | 236440 ko || -0m00.01s || -268 ko      | -3.22%   | -0.11%        
0m00.30s | 343936 ko | Classes/implementations/family_prod.vo                       | 0m00.27s | 314488 ko || +0m00.02s || 29448 ko     | +11.11%  | +9.36%        
0m00.29s | 298868 ko | Categories/Category/Sum.vo                                   | 0m00.28s | 298888 ko || +0m00.00s || -20 ko       | +3.57%   | -0.00%        
0m00.29s | 285700 ko | Categories/DualFunctor.vo                                    | 0m00.31s | 285656 ko || -0m00.02s || 44 ko        | -6.45%   | +0.01%        
0m00.29s | 261768 ko | Categories/FundamentalPreGroupoidCategory.vo                 | 0m00.29s | 255412 ko || +0m00.00s || 6356 ko      | +0.00%   | +2.48%        
0m00.29s | 227464 ko | Categories/HomotopyPreCategory.vo                            | 0m00.23s | 220956 ko || +0m00.05s || 6508 ko      | +26.08%  | +2.94%        
0m00.29s | 263328 ko | Limits/Limit.vo                                              | 0m00.31s | 263364 ko || -0m00.02s || -36 ko       | -6.45%   | -0.01%        
0m00.28s | 242172 ko | Categories/Adjoint/UniversalMorphisms/Core.vo                | 0m00.29s | 242164 ko || -0m00.00s || 8 ko         | -3.44%   | +0.00%        
0m00.28s | 311672 ko | Categories/NaturalTransformation/Paths.vo                    | 0m00.35s | 311660 ko || -0m00.06s || 12 ko        | -19.99%  | +0.00%        
0m00.28s | 281372 ko | Cubical/DPathSquare.vo                                       | 0m00.28s | 281288 ko || +0m00.00s || 84 ko        | +0.00%   | +0.02%        
0m00.27s | 208208 ko | Categories/Adjoint/Functorial/Core.vo                        | 0m00.29s | 208288 ko || -0m00.01s || -80 ko       | -6.89%   | -0.03%        
0m00.27s | 196892 ko | HProp.vo                                                     | 0m00.20s | 196928 ko || +0m00.07s || -36 ko       | +35.00%  | -0.01%        
0m00.26s | 230596 ko | Categories/NaturalTransformation/Isomorphisms.vo             | 0m00.30s | 230588 ko || -0m00.03s || 8 ko         | -13.33%  | +0.00%        
0m00.25s | 197480 ko | Categories/PseudonaturalTransformation/Core.vo               | 0m00.23s | 197400 ko || +0m00.01s || 80 ko        | +8.69%   | +0.04%        
0m00.25s | 196984 ko | HIT/surjective_factor.vo                                     | 0m00.22s | 196156 ko || +0m00.03s || 828 ko       | +13.63%  | +0.42%        
0m00.25s | 265088 ko | Types/Wtype.vo                                               | 0m00.21s | 265252 ko || +0m00.04s || -164 ko      | +19.04%  | -0.06%        
0m00.24s | 228476 ko | Categories/GroupoidCategory/Dual.vo                          | 0m00.23s | 228600 ko || +0m00.00s || -124 ko      | +4.34%   | -0.05%        
0m00.24s | 209236 ko | Categories/SemiSimplicialSets.vo                             | 0m00.28s | 215396 ko || -0m00.04s || -6160 ko     | -14.28%  | -2.85%        
0m00.23s | 235452 ko | Basics/Overture.vo                                           | 0m00.24s | 235380 ko || -0m00.00s || 72 ko        | -4.16%   | +0.03%        
0m00.23s | 186880 ko | Categories/Functor/Utf8.vo                                   | 0m00.20s | 192656 ko || +0m00.03s || -5776 ko     | +15.00%  | -2.99%        
0m00.23s | 169276 ko | Categories/NaturalTransformation/Composition/Laws.vo         | 0m00.19s | 169260 ko || +0m00.04s || 16 ko        | +21.05%  | +0.00%        
0m00.23s | 216492 ko | Spaces/Pos/Spec.vo                                           | 0m00.20s | 216576 ko || +0m00.03s || -84 ko       | +15.00%  | -0.03%        
0m00.23s | 225624 ko | WildCat/Type.vo                                              | 0m00.32s | 225808 ko || -0m00.09s || -184 ko      | -28.12%  | -0.08%        
0m00.22s | 200964 ko | Categories/Category/Sigma/Core.vo                            | 0m00.18s | 201024 ko || +0m00.04s || -60 ko       | +22.22%  | -0.02%        
0m00.22s | 194984 ko | Categories/Functor.vo                                        | 0m00.21s | 198196 ko || +0m00.01s || -3212 ko     | +4.76%   | -1.62%        
0m00.22s | 175712 ko | Categories/Functor/Composition.vo                            | 0m00.20s | 180804 ko || +0m00.01s || -5092 ko     | +9.99%   | -2.81%        
0m00.22s | 221436 ko | Categories/SimplicialSets.vo                                 | 0m00.22s | 224752 ko || +0m00.00s || -3316 ko     | +0.00%   | -1.47%        
0m00.22s | 189400 ko | Categories/Structure/Core.vo                                 | 0m00.20s | 189592 ko || +0m00.01s || -192 ko      | +9.99%   | -0.10%        
0m00.22s | 163072 ko | Spectra/Spectrum.vo                                          | 0m00.30s | 237856 ko || -0m00.07s || -74784 ko    | -26.66%  | -31.44%       
0m00.22s | 264868 ko | WildCat/Forall.vo                                            | 0m00.23s | 264900 ko || -0m00.01s || -32 ko       | -4.34%   | -0.01%        
0m00.22s | 205444 ko | WildCat/Induced.vo                                           | 0m00.24s | 205524 ko || -0m00.01s || -80 ko       | -8.33%   | -0.03%        
0m00.22s | 238432 ko | WildCat/TwoOneCat.vo                                         | 0m00.24s | 238532 ko || -0m00.01s || -100 ko      | -8.33%   | -0.04%        
0m00.21s | 167068 ko | Categories/ExponentialLaws/Law1/Functors.vo                  | 0m00.20s | 166988 ko || +0m00.00s || 80 ko        | +4.99%   | +0.04%        
0m00.21s | 169536 ko | Categories/Grothendieck/ToSet/Core.vo                        | 0m00.25s | 169412 ko || -0m00.04s || 124 ko       | -16.00%  | +0.07%        
0m00.21s | 137536 ko | Categories/IndiscreteCategory.vo                             | 0m00.19s | 137468 ko || +0m00.01s || 68 ko        | +10.52%  | +0.04%        
0m00.21s | 211736 ko | Categories/Notations.vo                                      | 0m00.25s | 216064 ko || -0m00.04s || -4328 ko     | -16.00%  | -2.00%        
0m00.21s | 132892 ko | FunextVarieties.vo                                           | 0m00.18s | 132908 ko || +0m00.03s || -16 ko       | +16.66%  | -0.01%        
0m00.21s | 172864 ko | Spectra/Coinductive.vo                                       | 0m00.30s | 241676 ko || -0m00.09s || -68812 ko    | -30.00%  | -28.47%       
0m00.21s | 182064 ko | Tactics.vo                                                   | 0m00.16s | 182008 ko || +0m00.04s || 56 ko        | +31.24%  | +0.03%        
0m00.20s | 178568 ko | Categories/Functor/Notations.vo                              | 0m00.28s | 184044 ko || -0m00.08s || -5476 ko     | -28.57%  | -2.97%        
0m00.20s | 168548 ko | Categories/Functor/Prod/Core.vo                              | 0m00.19s | 168588 ko || +0m00.01s || -40 ko       | +5.26%   | -0.02%        
0m00.20s | 187172 ko | Categories/FunctorCategory/Utf8.vo                           | 0m00.25s | 193244 ko || -0m00.04s || -6072 ko     | -19.99%  | -3.14%        
0m00.20s | 213868 ko | Categories/Utf8.vo                                           | 0m00.24s | 218296 ko || -0m00.03s || -4428 ko     | -16.66%  | -2.02%        
0m00.20s | 202832 ko | Spaces/Torus/Torus.vo                                        | 0m00.24s | 223008 ko || -0m00.03s || -20176 ko    | -16.66%  | -9.04%        
0m00.20s | 188352 ko | Tactics/RewriteModuloAssociativity.vo                        | 0m00.23s | 188432 ko || -0m00.03s || -80 ko       | -13.04%  | -0.04%        
0m00.19s | 143376 ko | Algebra/ooAction.vo                                          | 0m00.21s | 211388 ko || -0m00.01s || -68012 ko    | -9.52%   | -32.17%       
0m00.19s | 175108 ko | Categories/FunctorCategory/Morphisms.vo                      | 0m00.21s | 175132 ko || -0m00.01s || -24 ko       | -9.52%   | -0.01%        
0m00.19s | 149872 ko | Categories/Limits/Core.vo                                    | 0m00.23s | 149964 ko || -0m00.04s || -92 ko       | -17.39%  | -0.06%        
0m00.19s | 187216 ko | Categories/NaturalTransformation/Utf8.vo                     | 0m00.26s | 193100 ko || -0m00.07s || -5884 ko     | -26.92%  | -3.04%        
0m00.19s | 169360 ko | EquivGroupoids.vo                                            | 0m00.18s | 169312 ko || +0m00.01s || 48 ko        | +5.55%   | +0.02%        
0m00.19s | 167556 ko | ObjectClassifier.vo                                          | 0m00.20s | 167572 ko || -0m00.01s || -16 ko       | -5.00%   | -0.00%        
0m00.18s | 132724 ko | Categories/Functor/Composition/Functorial/Core.vo            | 0m00.12s | 132788 ko || +0m00.06s || -64 ko       | +50.00%  | -0.04%        
0m00.18s | 198464 ko | Categories/FunctorCategory/Dual.vo                           | 0m00.18s | 198428 ko || +0m00.00s || 36 ko        | +0.00%   | +0.01%        
0m00.18s | 177832 ko | Categories/InitialTerminalCategory/Functors.vo               | 0m00.20s | 177924 ko || -0m00.02s || -92 ko       | -10.00%  | -0.05%        
0m00.18s | 170660 ko | HSet.vo                                                      | 0m00.16s | 170652 ko || +0m00.01s || 8 ko         | +12.49%  | +0.00%        
0m00.18s | 167212 ko | UnivalenceImpliesFunext.vo                                   | 0m00.21s | 167068 ko || -0m00.03s || 144 ko       | -14.28%  | +0.08%        
0m00.17s | 175044 ko | Categories/Functor/Composition/Functorial.vo                 | 0m00.20s | 180532 ko || -0m00.03s || -5488 ko     | -15.00%  | -3.03%        
0m00.17s | 156168 ko | Categories/Pseudofunctor/Core.vo                             | 0m00.18s | 156084 ko || -0m00.00s || 84 ko        | -5.55%   | +0.05%        
0m00.17s | 123224 ko | HIT/SetCone.vo                                               | 0m00.17s | 133196 ko || +0m00.00s || -9972 ko     | +0.00%   | -7.48%        
0m00.17s | 150536 ko | HIT/TruncImpliesFunext.vo                                    | 0m00.18s | 155492 ko || -0m00.00s || -4956 ko     | -5.55%   | -3.18%        
0m00.17s | 140148 ko | HIT/iso.vo                                                   | 0m00.19s | 148432 ko || -0m00.01s || -8284 ko     | -10.52%  | -5.58%        
0m00.17s | 142220 ko | Types/Bool.vo                                                | 0m00.14s | 142344 ko || +0m00.03s || -124 ko      | +21.42%  | -0.08%        
0m00.16s | 142808 ko | Categories/Adjoint/Functorial/Parts.vo                       | 0m00.15s | 142872 ko || +0m00.01s || -64 ko       | +6.66%   | -0.04%        
0m00.16s | 131080 ko | Categories/Adjoint/UnitCounit.vo                             | 0m00.17s | 131308 ko || -0m00.01s || -228 ko      | -5.88%   | -0.17%        
0m00.16s | 135620 ko | Categories/Category/Prod.vo                                  | 0m00.12s | 135648 ko || +0m00.04s || -28 ko       | +33.33%  | -0.02%        
0m00.16s | 131540 ko | Categories/CategoryOfSections/Core.vo                        | 0m00.15s | 131764 ko || +0m00.01s || -224 ko      | +6.66%   | -0.17%        
0m00.16s | 145444 ko | Categories/ExponentialLaws/Law2/Functors.vo                  | 0m00.15s | 145548 ko || +0m00.01s || -104 ko      | +6.66%   | -0.07%        
0m00.16s | 151728 ko | Categories/HomFunctor.vo                                     | 0m00.15s | 151636 ko || +0m00.01s || 92 ko        | +6.66%   | +0.06%        
0m00.16s | 162536 ko | Categories/NaturalTransformation/Prod.vo                     | 0m00.20s | 162480 ko || -0m00.04s || 56 ko        | -20.00%  | +0.03%        
0m00.16s | 139076 ko | Colimits/SpanPushout.vo                                      | 0m00.17s | 139132 ko || -0m00.01s || -56 ko       | -5.88%   | -0.04%        
0m00.16s | 109100 ko | Modalities/Identity.vo                                       | 0m00.60s | 339140 ko || -0m00.43s || -230040 ko   | -73.33%  | -67.83%       
0m00.16s | 132388 ko | Pointed.vo                                                   | 0m00.25s | 200244 ko || -0m00.09s || -67856 ko    | -36.00%  | -33.88%       
0m00.15s | 124808 ko | Basics/UniverseLevel.vo                                      | 0m00.18s | 124768 ko || -0m00.03s || 40 ko        | -16.66%  | +0.03%        
0m00.15s | 110476 ko | Categories/Cat/Core.vo                                       | 0m00.14s | 110628 ko || +0m00.00s || -152 ko      | +7.14%   | -0.13%        
0m00.15s | 91940 ko  | Categories/Category/Objects.vo                               | 0m00.14s | 92068 ko  || +0m00.00s || -128 ko      | +7.14%   | -0.13%        
0m00.15s | 125932 ko | Categories/Category/Sigma/OnObjects.vo                       | 0m00.15s | 126028 ko || +0m00.00s || -96 ko       | +0.00%   | -0.07%        
0m00.15s | 152376 ko | Categories/ExponentialLaws/Law0.vo                           | 0m00.18s | 152372 ko || -0m00.03s || 4 ko         | -16.66%  | +0.00%        
0m00.15s | 139664 ko | Categories/Functor/Pointwise/Core.vo                         | 0m00.17s | 139732 ko || -0m00.02s || -68 ko       | -11.76%  | -0.04%        
0m00.15s | 168320 ko | Diagrams/Sequence.vo                                         | 0m00.15s | 168340 ko || +0m00.00s || -20 ko       | +0.00%   | -0.01%        
0m00.15s | 152664 ko | HIT/unique_choice.vo                                         | 0m00.17s | 160304 ko || -0m00.02s || -7640 ko     | -11.76%  | -4.76%        
0m00.15s | 123688 ko | Pointed/Core.vo                                              | 0m00.14s | 123664 ko || +0m00.00s || 24 ko        | +7.14%   | +0.01%        
0m00.15s | 164244 ko | Types/Arrow.vo                                               | 0m00.20s | 164224 ko || -0m00.05s || 20 ko        | -25.00%  | +0.01%        
0m00.15s | 137760 ko | Utf8.vo                                                      | 0m00.22s | 186584 ko || -0m00.07s || -48824 ko    | -31.81%  | -26.16%       
0m00.15s | 94744 ko  | WildCat/Sigma.vo                                             | 0m00.14s | 94848 ko  || +0m00.00s || -104 ko      | +7.14%   | -0.10%        
0m00.14s | 126300 ko | Basics/Decidable.vo                                          | 0m00.12s | 126256 ko || +0m00.02s || 44 ko        | +16.66%  | +0.03%        
0m00.14s | 115880 ko | Categories/FunctorCategory/Functorial.vo                     | 0m00.12s | 115920 ko || +0m00.02s || -40 ko       | +16.66%  | -0.03%        
0m00.14s | 121464 ko | Categories/Grothendieck/ToCat.vo                             | 0m00.12s | 121452 ko || +0m00.02s || 12 ko        | +16.66%  | +0.00%        
0m00.14s | 88724 ko  | Categories/InitialTerminalCategory/NaturalTransformations.vo | 0m00.13s | 88760 ko  || +0m00.01s || -36 ko       | +7.69%   | -0.04%        
0m00.14s | 121200 ko | Categories/NatCategory.vo                                    | 0m00.17s | 121208 ko || -0m00.03s || -8 ko        | -17.64%  | -0.00%        
0m00.14s | 118488 ko | Categories/NaturalTransformation/Pointwise.vo                | 0m00.13s | 118532 ko || +0m00.01s || -44 ko       | +7.69%   | -0.03%        
0m00.14s | 161272 ko | Spaces/No.vo                                                 | 0m00.19s | 160732 ko || -0m00.04s || 540 ko       | -26.31%  | +0.33%        
0m00.13s | 144660 ko | Basics/Trunc.vo                                              | 0m00.18s | 144636 ko || -0m00.04s || 24 ko        | -27.77%  | +0.01%        
0m00.13s | 94424 ko  | Categories/Category.vo                                       | 0m00.10s | 94308 ko  || +0m00.03s || 116 ko       | +30.00%  | +0.12%        
0m00.13s | 70464 ko  | Categories/Category/Univalent.vo                             | 0m00.12s | 70376 ko  || +0m00.01s || 88 ko        | +8.33%   | +0.12%        
0m00.13s | 87844 ko  | Categories/KanExtensions/Core.vo                             | 0m00.11s | 87760 ko  || +0m00.02s || 84 ko        | +18.18%  | +0.09%        
0m00.13s | 84432 ko  | Categories/Limits.vo                                         | 0m00.11s | 84440 ko  || +0m00.02s || -8 ko        | +18.18%  | -0.00%        
0m00.13s | 99428 ko  | Categories/NaturalTransformation/Sum.vo                      | 0m00.15s | 99512 ko  || -0m00.01s || -84 ko       | -13.33%  | -0.08%        
0m00.13s | 100180 ko | ExcludedMiddle.vo                                            | 0m00.10s | 100184 ko || +0m00.03s || -4 ko        | +30.00%  | -0.00%        
0m00.13s | 131800 ko | Modalities/Notnot.vo                                         | 0m00.37s | 327392 ko || -0m00.24s || -195592 ko   | -64.86%  | -59.74%       
0m00.13s | 105224 ko | Spaces/Int/Core.vo                                           | 0m00.11s | 105276 ko || +0m00.02s || -52 ko       | +18.18%  | -0.04%        
0m00.13s | 128544 ko | WildCat/NatTrans.vo                                          | 0m00.11s | 128528 ko || +0m00.02s || 16 ko        | +18.18%  | +0.01%        
0m00.12s | 99400 ko  | Basics/Contractible.vo                                       | 0m00.11s | 99408 ko  || +0m00.00s || -8 ko        | +9.09%   | -0.00%        
0m00.12s | 110564 ko | Categories/Adjoint.vo                                        | 0m00.11s | 110496 ko || +0m00.00s || 68 ko        | +9.09%   | +0.06%        
0m00.12s | 95056 ko  | Categories/Adjoint/Hom.vo                                    | 0m00.17s | 95096 ko  || -0m00.05s || -40 ko       | -29.41%  | -0.04%        
0m00.12s | 90192 ko  | Categories/Comma.vo                                          | 0m00.13s | 90064 ko  || -0m00.01s || 128 ko       | -7.69%   | +0.14%        
0m00.12s | 116664 ko | Categories/Comma/Projection.vo                               | 0m00.17s | 116748 ko || -0m00.05s || -84 ko       | -29.41%  | -0.07%        
0m00.12s | 131352 ko | Categories/Functor/Prod/Functorial.vo                        | 0m00.17s | 131224 ko || -0m00.05s || 128 ko       | -29.41%  | +0.09%        
0m00.12s | 107932 ko | Categories/Limits/Functors.vo                                | 0m00.12s | 108000 ko || +0m00.00s || -68 ko       | +0.00%   | -0.06%        
0m00.12s | 92628 ko  | Categories/SetCategory/Functors/SetProp.vo                   | 0m00.09s | 92592 ko  || +0m00.03s || 36 ko        | +33.33%  | +0.03%        
0m00.12s | 102656 ko | Conjugation.vo                                               | 0m00.09s | 102768 ko || +0m00.03s || -112 ko      | +33.33%  | -0.10%        
0m00.12s | 120148 ko | PathAny.vo                                                   | 0m00.15s | 120164 ko || -0m00.03s || -16 ko       | -20.00%  | -0.01%        
0m00.12s | 90384 ko  | Spaces/Cantor.vo                                             | 0m00.09s | 90376 ko  || +0m00.03s || 8 ko         | +33.33%  | +0.00%        
0m00.12s | 116516 ko | Spaces/Pos/Core.vo                                           | 0m00.13s | 116588 ko || -0m00.01s || -72 ko       | -7.69%   | -0.06%        
0m00.12s | 136600 ko | Truncations.vo                                               | 0m00.15s | 144188 ko || -0m00.03s || -7588 ko     | -20.00%  | -5.26%        
0m00.11s | 75796 ko  | Categories/Adjoint/UniversalMorphisms.vo                     | 0m00.07s | 75700 ko  || +0m00.03s || 96 ko        | +57.14%  | +0.12%        
0m00.11s | 98940 ko  | Categories/Cat/Morphisms.vo                                  | 0m00.11s | 98860 ko  || +0m00.00s || 80 ko        | +0.00%   | +0.08%        
0m00.11s | 75804 ko  | Categories/ExponentialLaws/Law3.vo                           | 0m00.08s | 75816 ko  || +0m00.03s || -12 ko       | +37.50%  | -0.01%        
0m00.11s | 91360 ko  | Categories/GroupoidCategory/Core.vo                          | 0m00.11s | 91448 ko  || +0m00.00s || -88 ko       | +0.00%   | -0.09%        
0m00.11s | 102104 ko | Categories/KanExtensions/Functors.vo                         | 0m00.13s | 102156 ko || -0m00.02s || -52 ko       | -15.38%  | -0.05%        
0m00.11s | 102288 ko | Categories/LaxComma/Notations.vo                             | 0m00.10s | 102364 ko || +0m00.00s || -76 ko       | +9.99%   | -0.07%        
0m00.11s | 105548 ko | Categories/LaxComma/Utf8.vo                                  | 0m00.12s | 105540 ko || -0m00.00s || 8 ko         | -8.33%   | +0.00%        
0m00.11s | 131756 ko | Categories/NaturalTransformation/Composition/Core.vo         | 0m00.19s | 131708 ko || -0m00.08s || 48 ko        | -42.10%  | +0.03%        
0m00.11s | 76048 ko  | Categories/NaturalTransformation/Notations.vo                | 0m00.12s | 75996 ko  || -0m00.00s || 52 ko        | -8.33%   | +0.06%        
0m00.11s | 100688 ko | Colimits/Colimit_Prod.vo                                     | 0m00.14s | 100644 ko || -0m00.03s || 44 ko        | -21.42%  | +0.04%        
0m00.11s | 79180 ko  | HIT/Interval.vo                                              | 0m00.07s | 79220 ko  || +0m00.03s || -40 ko       | +57.14%  | -0.05%        
0m00.11s | 107844 ko | PropResizing/ImpredicativeTruncation.vo                      | 0m00.14s | 107872 ko || -0m00.03s || -28 ko       | -21.42%  | -0.02%        
0m00.11s | 116060 ko | Spaces/Int/Equiv.vo                                          | 0m00.15s | 116000 ko || -0m00.03s || 60 ko        | -26.66%  | +0.05%        
0m00.10s | 74268 ko  | Categories/Adjoint/Dual.vo                                   | 0m00.10s | 74160 ko  || +0m00.00s || 108 ko       | +0.00%   | +0.14%        
0m00.10s | 72824 ko  | Categories/Adjoint/Functorial.vo                             | 0m00.07s | 72800 ko  || +0m00.03s || 24 ko        | +42.85%  | +0.03%        
0m00.10s | 84728 ko  | Categories/Adjoint/Utf8.vo                                   | 0m00.09s | 84632 ko  || +0m00.01s || 96 ko        | +11.11%  | +0.11%        
0m00.10s | 75152 ko  | Categories/Category/Core.vo                                  | 0m00.09s | 75168 ko  || +0m00.01s || -16 ko       | +11.11%  | -0.02%        
0m00.10s | 72864 ko  | Categories/Comma/Notations.vo                                | 0m00.10s | 72812 ko  || +0m00.00s || 52 ko        | +0.00%   | +0.07%        
0m00.10s | 75560 ko  | Categories/Comma/Utf8.vo                                     | 0m00.07s | 75548 ko  || +0m00.03s || 12 ko        | +42.85%  | +0.01%        
0m00.10s | 77716 ko  | Categories/DependentProduct.vo                               | 0m00.10s | 77884 ko  || +0m00.00s || -168 ko      | +0.00%   | -0.21%        
0m00.10s | 81304 ko  | Categories/ExponentialLaws.vo                                | 0m00.11s | 81156 ko  || -0m00.00s || 148 ko       | -9.09%   | +0.18%        
0m00.10s | 71556 ko  | Categories/Functor/Prod.vo                                   | 0m00.09s | 71572 ko  || +0m00.01s || -16 ko       | +11.11%  | -0.02%        
0m00.10s | 81788 ko  | Categories/FunctorCategory/Core.vo                           | 0m00.08s | 81820 ko  || +0m00.02s || -32 ko       | +25.00%  | -0.03%        
0m00.10s | 84120 ko  | Categories/Grothendieck.vo                                   | 0m00.11s | 83952 ko  || -0m00.00s || 168 ko       | -9.09%   | +0.20%        
0m00.10s | 70152 ko  | Categories/Grothendieck/ToSet.vo                             | 0m00.10s | 70360 ko  || +0m00.00s || -208 ko      | +0.00%   | -0.29%        
0m00.10s | 74920 ko  | Categories/InitialTerminalCategory.vo                        | 0m00.13s | 74800 ko  || -0m00.03s || 120 ko       | -23.07%  | +0.16%        
0m00.10s | 79516 ko  | Categories/InitialTerminalCategory/Core.vo                   | 0m00.14s | 79516 ko  || -0m00.04s || 0 ko         | -28.57%  | +0.00%        
0m00.10s | 70924 ko  | Categories/NaturalTransformation/Dual.vo                     | 0m00.09s | 70892 ko  || +0m00.01s || 32 ko        | +11.11%  | +0.04%        
0m00.10s | 86696 ko  | Categories/NaturalTransformation/Identity.vo                 | 0m00.12s | 86808 ko  || -0m00.01s || -112 ko      | -16.66%  | -0.12%        
0m00.10s | 79904 ko  | Categories/Profunctor/Representable.vo                       | 0m00.10s | 79972 ko  || +0m00.00s || -68 ko       | +0.00%   | -0.08%        
0m00.10s | 85216 ko  | Cubical.vo                                                   | 0m00.09s | 85080 ko  || +0m00.01s || 136 ko       | +11.11%  | +0.15%        
0m00.10s | 95432 ko  | Diagrams/DDiagram.vo                                         | 0m00.11s | 95492 ko  || -0m00.00s || -60 ko       | -9.09%   | -0.06%        
0m00.10s | 73488 ko  | Diagrams/Graph.vo                                            | 0m00.07s | 73664 ko  || +0m00.03s || -176 ko      | +42.85%  | -0.23%        
0m00.10s | 97256 ko  | Diagrams/ParallelPair.vo                                     | 0m00.11s | 97304 ko  || -0m00.00s || -48 ko       | -9.09%   | -0.04%        
0m00.10s | 86480 ko  | Diagrams/Span.vo                                             | 0m00.12s | 86584 ko  || -0m00.01s || -104 ko      | -16.66%  | -0.12%        
0m00.10s | 69536 ko  | PropResizing/PropResizing.vo                                 | 0m00.10s | 69392 ko  || +0m00.00s || 144 ko       | +0.00%   | +0.20%        
0m00.10s | 88760 ko  | Types/Unit.vo                                                | 0m00.11s | 88792 ko  || -0m00.00s || -32 ko       | -9.09%   | -0.03%        
0m00.10s | 86820 ko  | coq/Init/Peano.vo                                            | 0m00.09s | 86868 ko  || +0m00.01s || -48 ko       | +11.11%  | -0.05%        
0m00.09s | 78812 ko  | Categories/Adjoint/Identity.vo                               | 0m00.10s | 78852 ko  || -0m00.01s || -40 ko       | -10.00%  | -0.05%        
0m00.09s | 71016 ko  | Categories/Category/Dual.vo                                  | 0m00.08s | 70928 ko  || +0m00.00s || 88 ko        | +12.49%  | +0.12%        
0m00.09s | 75664 ko  | Categories/Category/Utf8.vo                                  | 0m00.10s | 75776 ko  || -0m00.01s || -112 ko      | -10.00%  | -0.14%        
0m00.09s | 74004 ko  | Categories/CategoryOfGroupoids.vo                            | 0m00.10s | 74080 ko  || -0m00.01s || -76 ko       | -10.00%  | -0.10%        
0m00.09s | 64104 ko  | Categories/DiscreteCategory.vo                               | 0m00.11s | 64208 ko  || -0m00.02s || -104 ko      | -18.18%  | -0.16%        
0m00.09s | 113640 ko | Categories/ExponentialLaws/Law3/Functors.vo                  | 0m00.12s | 113568 ko || -0m00.03s || 72 ko        | -25.00%  | +0.06%        
0m00.09s | 78140 ko  | Categories/ExponentialLaws/Tactics.vo                        | 0m00.10s | 78036 ko  || -0m00.01s || 104 ko       | -10.00%  | +0.13%        
0m00.09s | 69852 ko  | Categories/FunctorCategory/Notations.vo                      | 0m00.08s | 69888 ko  || +0m00.00s || -36 ko       | +12.49%  | -0.05%        
0m00.09s | 65360 ko  | Categories/GroupoidCategory.vo                               | 0m00.10s | 65392 ko  || -0m00.01s || -32 ko       | -10.00%  | -0.04%        
0m00.09s | 82860 ko  | Categories/KanExtensions.vo                                  | 0m00.11s | 83024 ko  || -0m00.02s || -164 ko      | -18.18%  | -0.19%        
0m00.09s | 81056 ko  | Categories/NaturalTransformation.vo                          | 0m00.11s | 81280 ko  || -0m00.02s || -224 ko      | -18.18%  | -0.27%        
0m00.09s | 62276 ko  | Categories/NaturalTransformation/Composition.vo              | 0m00.09s | 62460 ko  || +0m00.00s || -184 ko      | +0.00%   | -0.29%        
0m00.09s | 97516 ko  | Categories/NaturalTransformation/Core.vo                     | 0m00.10s | 97504 ko  || -0m00.01s || 12 ko        | -10.00%  | +0.01%        
0m00.09s | 75556 ko  | Categories/Profunctor/Core.vo                                | 0m00.09s | 75616 ko  || +0m00.00s || -60 ko       | +0.00%   | -0.07%        
0m00.09s | 82096 ko  | Categories/SetCategory/Core.vo                               | 0m00.11s | 82124 ko  || -0m00.02s || -28 ko       | -18.18%  | -0.03%        
0m00.09s | 73604 ko  | Categories/Structure/Notations.vo                            | 0m00.07s | 73524 ko  || +0m00.01s || 80 ko        | +28.57%  | +0.10%        
0m00.09s | 73628 ko  | Categories/Structure/Utf8.vo                                 | 0m00.05s | 73644 ko  || +0m00.03s || -16 ko       | +79.99%  | -0.02%        
0m00.09s | 77712 ko  | Functorish.vo                                                | 0m00.10s | 77732 ko  || -0m00.01s || -20 ko       | -10.00%  | -0.02%        
0m00.09s | 71824 ko  | Misc.vo                                                      | 0m00.06s | 71912 ko  || +0m00.03s || -88 ko       | +50.00%  | -0.12%        
0m00.09s | 68456 ko  | NullHomotopy.vo                                              | 0m00.07s | 68620 ko  || +0m00.01s || -164 ko      | +28.57%  | -0.23%        
0m00.09s | 62712 ko  | WildCat/Paths.vo                                             | 0m00.09s | 62600 ko  || +0m00.00s || 112 ko       | +0.00%   | +0.17%        
0m00.08s | 74564 ko  | Categories/Adjoint/Composition/LawsTactic.vo                 | 0m00.09s | 74584 ko  || -0m00.00s || -20 ko       | -11.11%  | -0.02%        
0m00.08s | 82832 ko  | Categories/Adjoint/Notations.vo                              | 0m00.09s | 82860 ko  || -0m00.00s || -28 ko       | -11.11%  | -0.03%        
0m00.08s | 75972 ko  | Categories/Cat.vo                                            | 0m00.11s | 76064 ko  || -0m00.03s || -92 ko       | -27.27%  | -0.12%        
0m00.08s | 84580 ko  | Categories/Category/Notations.vo                             | 0m00.09s | 84616 ko  || -0m00.00s || -36 ko       | -11.11%  | -0.04%        
0m00.08s | 83484 ko  | Categories/Category/Pi.vo                                    | 0m00.12s | 83464 ko  || -0m00.03s || 20 ko        | -33.33%  | +0.02%        
0m00.08s | 77884 ko  | Categories/Category/Sigma.vo                                 | 0m00.08s | 77840 ko  || +0m00.00s || 44 ko        | +0.00%   | +0.05%        
0m00.08s | 75092 ko  | Categories/ExponentialLaws/Law1.vo                           | 0m00.08s | 75188 ko  || +0m00.00s || -96 ko       | +0.00%   | -0.12%        
0m00.08s | 65112 ko  | Categories/ExponentialLaws/Law4.vo                           | 0m00.10s | 65008 ko  || -0m00.02s || 104 ko       | -20.00%  | +0.15%        
0m00.08s | 113536 ko | Categories/LaxComma.vo                                       | 0m00.11s | 113576 ko || -0m00.03s || -40 ko       | -27.27%  | -0.03%        
0m00.08s | 74412 ko  | Categories/NaturalTransformation/Composition/Functorial.vo   | 0m00.10s | 74320 ko  || -0m00.02s || 92 ko        | -20.00%  | +0.12%        
0m00.08s | 81480 ko  | Categories/Pseudofunctor.vo                                  | 0m00.08s | 81448 ko  || +0m00.00s || 32 ko        | +0.00%   | +0.03%        
0m00.08s | 79460 ko  | Categories/PseudonaturalTransformation.vo                    | 0m00.09s | 79384 ko  || -0m00.00s || 76 ko        | -11.11%  | +0.09%        
0m00.08s | 68260 ko  | Categories/SetCategory.vo                                    | 0m00.09s | 68284 ko  || -0m00.00s || -24 ko       | -11.11%  | -0.03%        
0m00.08s | 74832 ko  | Categories/Structure.vo                                      | 0m00.11s | 74724 ko  || -0m00.03s || 108 ko       | -27.27%  | +0.14%        
0m00.08s | 71840 ko  | HIT/IntervalImpliesFunext.vo                                 | 0m00.07s | 71752 ko  || +0m00.00s || 88 ko        | +14.28%  | +0.12%        
0m00.08s | 87508 ko  | Homotopy/Wedge.vo                                            | 0m00.08s | 87368 ko  || +0m00.00s || 140 ko       | +0.00%   | +0.16%        
0m00.08s | 56400 ko  | Limits/Equalizer.vo                                          | 0m00.09s | 56528 ko  || -0m00.00s || -128 ko      | -11.11%  | -0.22%        
0m00.08s | 67888 ko  | Spaces/Int.vo                                                | 0m00.06s | 67920 ko  || +0m00.02s || -32 ko       | +33.33%  | -0.04%        
0m00.08s | 69944 ko  | Tactics/BinderApply.vo                                       | 0m00.09s | 70044 ko  || -0m00.00s || -100 ko      | -11.11%  | -0.14%        
0m00.08s | 58892 ko  | Tactics/EvalIn.vo                                            | 0m00.07s | 58760 ko  || +0m00.00s || 132 ko       | +14.28%  | +0.22%        
0m00.08s | 69580 ko  | Types.vo                                                     | 0m00.07s | 69692 ko  || +0m00.00s || -112 ko      | +14.28%  | -0.16%        
0m00.08s | 76592 ko  | WildCat.vo                                                   | 0m00.07s | 76600 ko  || +0m00.00s || -8 ko        | +14.28%  | -0.01%        
0m00.08s | 67128 ko  | WildCat/UnitCat.vo                                           | 0m00.07s | 67252 ko  || +0m00.00s || -124 ko      | +14.28%  | -0.18%        
0m00.07s | 67412 ko  | Categories/Adjoint/Core.vo                                   | 0m00.10s | 67496 ko  || -0m00.03s || -84 ko       | -30.00%  | -0.12%        
0m00.07s | 62088 ko  | Categories/Category/Subcategory/Full.vo                      | 0m00.08s | 62144 ko  || -0m00.00s || -56 ko       | -12.49%  | -0.09%        
0m00.07s | 74992 ko  | Categories/ExponentialLaws/Law2.vo                           | 0m00.10s | 75060 ko  || -0m00.03s || -68 ko       | -30.00%  | -0.09%        
0m00.07s | 63860 ko  | Categories/Functor/Pointwise.vo                              | 0m00.07s | 63920 ko  || +0m00.00s || -60 ko       | +0.00%   | -0.09%        
0m00.07s | 78808 ko  | Categories/FunctorCategory.vo                                | 0m00.10s | 78968 ko  || -0m00.03s || -160 ko      | -30.00%  | -0.20%        
0m00.07s | 75240 ko  | Categories/InitialTerminalCategory/Notations.vo              | 0m00.08s | 75236 ko  || -0m00.00s || 4 ko         | -12.49%  | +0.00%        
0m00.07s | 72488 ko  | Categories/Profunctor.vo                                     | 0m00.08s | 72500 ko  || -0m00.00s || -12 ko       | -12.49%  | -0.01%        
0m00.07s | 75000 ko  | Categories/Profunctor/Identity.vo                            | 0m00.11s | 75008 ko  || -0m00.03s || -8 ko        | -36.36%  | -0.01%        
0m00.07s | 71696 ko  | Categories/Profunctor/Notations.vo                           | 0m00.09s | 71908 ko  || -0m00.01s || -212 ko      | -22.22%  | -0.29%        
0m00.07s | 73972 ko  | Categories/Profunctor/Utf8.vo                                | 0m00.08s | 74084 ko  || -0m00.00s || -112 ko      | -12.49%  | -0.15%        
0m00.07s | 65656 ko  | Types/Empty.vo                                               | 0m00.08s | 65836 ko  || -0m00.00s || -180 ko      | -12.49%  | -0.27%        
0m00.07s | 70412 ko  | WildCat/EmptyCat.vo                                          | 0m00.07s | 70436 ko  || +0m00.00s || -24 ko       | +0.00%   | -0.03%        
0m00.06s | 55536 ko  | Basics.vo                                                    | 0m00.05s | 55544 ko  || +0m00.00s || -8 ko        | +19.99%  | -0.01%        
0m00.06s | 49368 ko  | Basics/Notations.vo                                          | 0m00.05s | 49312 ko  || +0m00.00s || 56 ko        | +19.99%  | +0.11%        
0m00.06s | 83316 ko  | Categories/Adjoint/Composition.vo                            | 0m00.08s | 83372 ko  || -0m00.02s || -56 ko       | -25.00%  | -0.06%        
0m00.06s | 61204 ko  | Categories/Category/Subcategory.vo                           | 0m00.07s | 61020 ko  || -0m00.01s || 184 ko       | -14.28%  | +0.30%        
0m00.06s | 60988 ko  | Categories/Category/Subcategory/Wide.vo                      | 0m00.06s | 61088 ko  || +0m00.00s || -100 ko      | +0.00%   | -0.16%        
0m00.06s | 62016 ko  | Categories/CategoryOfSections.vo                             | 0m00.07s | 62144 ko  || -0m00.01s || -128 ko      | -14.28%  | -0.20%        
0m00.06s | 63284 ko  | Categories/Functor/Composition/Core.vo                       | 0m00.07s | 63288 ko  || -0m00.01s || -4 ko        | -14.28%  | -0.00%        
0m00.06s | 56836 ko  | Categories/Functor/Core.vo                                   | 0m00.07s | 56904 ko  || -0m00.01s || -68 ko       | -14.28%  | -0.11%        
0m00.06s | 67668 ko  | Categories/Functor/Dual.vo                                   | 0m00.09s | 67748 ko  || -0m00.03s || -80 ko       | -33.33%  | -0.11%        
0m00.06s | 61456 ko  | Categories/SetCategory/Functors.vo                           | 0m00.07s | 61412 ko  || -0m00.01s || 44 ko        | -14.28%  | +0.07%        
0m00.06s | 54152 ko  | coq/Init/Logic_Type.vo                                       | 0m00.05s | 54328 ko  || +0m00.00s || -176 ko      | +19.99%  | -0.32%        
0m00.05s | 46456 ko  | FunextAxiom.vo                                               | 0m00.06s | 46648 ko  || -0m00.00s || -192 ko      | -16.66%  | -0.41%        
0m00.05s | 44112 ko  | Tactics/Nameless.vo                                          | 0m00.05s | 44120 ko  || +0m00.00s || -8 ko        | +0.00%   | -0.01%        
0m00.05s | 64684 ko  | UnivalenceAxiom.vo                                           | 0m00.07s | 64724 ko  || -0m00.02s || -40 ko       | -28.57%  | -0.06%        
0m00.05s | 57184 ko  | coq/Init/Decimal.vo                                          | 0m00.05s | 57204 ko  || +0m00.00s || -20 ko       | +0.00%   | -0.03%        
0m00.05s | 59100 ko  | coq/Init/Nat.vo                                              | 0m00.05s | 59136 ko  || +0m00.00s || -36 ko       | +0.00%   | -0.06%        
0m00.05s | 54776 ko  | coq/Init/Specif.vo                                           | 0m00.05s | 54776 ko  || +0m00.00s || 0 ko         | +0.00%   | +0.00%        
0m00.05s | 51536 ko  | coq/Program/Tactics.vo                                       | 0m00.04s | 51552 ko  || +0m00.01s || -16 ko       | +25.00%  | -0.03%        
0m00.04s | 49280 ko  | Categories/Category/Strict.vo                                | 0m00.06s | 49344 ko  || -0m00.01s || -64 ko       | -33.33%  | -0.12%        
0m00.04s | 49520 ko  | Categories/Functor/Identity.vo                               | 0m00.05s | 49536 ko  || -0m00.01s || -16 ko       | -20.00%  | -0.03%        
0m00.04s | 48816 ko  | coq/Init/Datatypes.vo                                        | 0m00.03s | 48864 ko  || +0m00.01s || -48 ko       | +33.33%  | -0.09%        
0m00.03s | 46788 ko  | Basics/Utf8.vo                                               | 0m00.04s | 46620 ko  || -0m00.01s || 168 ko       | -25.00%  | +0.36%        
0m00.03s | 54156 ko  | Spaces/Pos.vo                                                | 0m00.06s | 54024 ko  || -0m00.03s || 132 ko       | -50.00%  | +0.24%        
0m00.03s | 39996 ko  | coq/Init/Logic.vo                                            | 0m00.02s | 40128 ko  || +0m00.00s || -132 ko      | +49.99%  | -0.32%        
0m00.03s | 42112 ko  | coq/Init/Prelude.vo                                          | 0m00.02s | 42120 ko  || +0m00.00s || -8 ko        | +49.99%  | -0.01%        
0m00.03s | 39504 ko  | coq/Init/Tactics.vo                                          | 0m00.02s | 39412 ko  || +0m00.00s || 92 ko        | +49.99%  | +0.23%        
0m00.02s | 43012 ko  | coq/Init/Notations.vo                                        | 0m00.02s | 42992 ko  || +0m00.00s || 20 ko        | +0.00%   | +0.04%        
0m00.02s | 40204 ko  | coq/Unicode/Utf8_core.vo                                     | 0m00.02s | 40400 ko  || +0m00.00s || -196 ko      | +0.00%   | -0.48%        
0m00.01s | 29548 ko  | coq/Bool/Bool.vo                                             | 0m00.01s | 29336 ko  || +0m00.00s || 212 ko       | +0.00%   | +0.72%        
0m00.01s | 39088 ko  | coq/Unicode/Utf8.vo                                          | 0m00.02s | 39164 ko  || -0m00.01s || -76 ko       | -50.00%  | -0.19%        

Apparently this actually speeds the entire library up by about 30 seconds! With most of the improvement happening, unsurprisingly, in the Modalities files. I can't guess why; I would have expected the added typeclass inference to slow it down. That might be what's happening to slow down BAut/Bool; perhaps some careful use of nrefine there would speed it up.

@Alizter
Copy link
Collaborator

Alizter commented Feb 16, 2020

@mikeshulman Fascinating. I wouldn't mind taking a look tomorrow and optimizing some of those files.

@JasonGross
Copy link
Contributor

It looks like it's a small diff spread across many files. It wouldn't surprise me if there old code managed to exercise modules heavily enough that the speed up is due to fewer functors and modules lying around. (If I recall correctly, Coq needs to do special things when adding modules to the global namespace, that it doesn't need to do with constants? I'm not sure if I recall correctly, though.). Low confidence in this guess, but it seems possible.

@jdchristensen
Copy link
Collaborator

Here are all files where the change was 1s or more. As Jason said, no single file changed by a huge amount.

0m02.73s | 346112 ko | Modalities/Lex.vo                                            | 0m08.75s | 371120 ko || -0m06.01s || -25008 ko    | -68.79%  | -6.73%        
0m11.51s | 519916 ko | Spaces/BAut/Bool.vo                                          | 0m08.34s | 423852 ko || +0m03.16s || 96064 ko     | +38.00%  | +22.66%       
0m02.33s | 345332 ko | Modalities/Topological.vo                                    | 0m05.43s | 422576 ko || -0m03.09s || -77244 ko    | -57.09%  | -18.27%       
0m13.68s | 438664 ko | Modalities/ReflectiveSubuniverse.vo                          | 0m15.62s | 471760 ko || -0m01.93s || -33096 ko    | -12.41%  | -7.01%        
0m00.29s | 230680 ko | Modalities/Accessible.vo                                     | 0m02.02s | 353116 ko || -0m01.73s || -122436 ko   | -85.64%  | -34.67%       
0m00.59s | 435132 ko | Tests.vo                                                     | 0m02.32s | 542744 ko || -0m01.73s || -107612 ko   | -74.56%  | -19.82%       
0m01.10s | 349996 ko | Modalities/Fracture.vo                                       | 0m02.80s | 458100 ko || -0m01.69s || -108104 ko   | -60.71%  | -23.59%       
0m01.65s | 338068 ko | Modalities/Descent.vo                                        |   N/A    |   N/A     || +0m01.64s || 338068 ko    | ∞        | ∞             
0m01.32s | 341860 ko | Modalities/Open.vo                                           | 0m02.96s | 403000 ko || -0m01.63s || -61140 ko    | -55.40%  | -15.17%       
0m01.15s | 502952 ko | contrib/HoTTBook.vo                                          | 0m02.77s | 598896 ko || -0m01.62s || -95944 ko    | -58.48%  | -16.02%       
0m00.32s | 251032 ko | Modalities/Closed.vo                                         | 0m01.86s | 418532 ko || -0m01.54s || -167500 ko   | -82.79%  | -40.02%       
0m00.25s | 207508 ko | Modalities/Nullification.vo                                  | 0m01.57s | 377552 ko || -0m01.32s || -170044 ko   | -84.07%  | -45.03%       
0m00.70s | 433368 ko | HoTT.vo                                                      | 0m02.03s | 536732 ko || -0m01.32s || -103364 ko   | -65.51%  | -19.25%       
0m02.19s | 456300 ko | contrib/HoTTBookExercises.vo                                 | 0m03.36s | 549824 ko || -0m01.16s || -93524 ko    | -34.82%  | -17.00%       
0m20.22s | 548372 ko | Homotopy/BlakersMassey.vo                                    | 0m21.31s | 554068 ko || -0m01.08s || -5696 ko     | -5.11%   | -1.02%        

@jdchristensen
Copy link
Collaborator

And here are all of the files whose processing time (after this PR) takes at least 5s. There's probably some low-hanging fruit here. (For another PR, not this one.)

0m20.22s | 548372 ko | Homotopy/BlakersMassey.vo                                    | 0m21.31s | 554068 ko || -0m01.08s || -5696 ko     | -5.11%   | -1.02%        
0m19.29s | 438404 ko | Classes/implementations/natpair_integers.vo                  | 0m19.03s | 451560 ko || +0m00.25s || -13156 ko    | +1.36%   | -2.91%        
0m13.97s | 404216 ko | Cubical/PathCube.vo                                          | 0m14.63s | 404312 ko || -0m00.66s || -96 ko       | -4.51%   | -0.02%        
0m13.68s | 438664 ko | Modalities/ReflectiveSubuniverse.vo                          | 0m15.62s | 471760 ko || -0m01.93s || -33096 ko    | -12.41%  | -7.01%        
0m11.51s | 519916 ko | Spaces/BAut/Bool.vo                                          | 0m08.34s | 423852 ko || +0m03.16s || 96064 ko     | +38.00%  | +22.66%       
0m10.26s | 529296 ko | Homotopy/HomotopyGroup.vo                                    | 0m11.14s | 573916 ko || -0m00.88s || -44620 ko    | -7.89%   | -7.77%        
0m08.42s | 401248 ko | Idempotents.vo                                               | 0m08.93s | 402580 ko || -0m00.50s || -1332 ko     | -5.71%   | -0.33%        
0m08.23s | 633228 ko | Spaces/Torus/TorusEquivCircles.vo                            | 0m08.91s | 635884 ko || -0m00.67s || -2656 ko     | -7.63%   | -0.41%        
0m08.21s | 335196 ko | Categories/Adjoint/Pointwise.vo                              | 0m08.36s | 335216 ko || -0m00.14s || -20 ko       | -1.79%   | -0.00%        
0m06.41s | 359240 ko | Spaces/Finite.vo                                             | 0m06.74s | 365496 ko || -0m00.33s || -6256 ko     | -4.89%   | -1.71%        
0m06.32s | 361976 ko | Spaces/No/Core.vo                                            | 0m06.33s | 365308 ko || -0m00.00s || -3332 ko     | -0.15%   | -0.91%        
0m05.85s | 405072 ko | Algebra/AbelianGroup.vo                                      | 0m05.93s | 418236 ko || -0m00.08s || -13164 ko    | -1.34%   | -3.14%        
0m05.75s | 428368 ko | Colimits/Colimit_Flattening.vo                               | 0m06.17s | 428364 ko || -0m00.41s || 4 ko         | -6.80%   | +0.00%        
0m05.22s | 392660 ko | Classes/theory/premetric.vo                                  | 0m05.12s | 393008 ko || +0m00.09s || -348 ko      | +1.95%   | -0.08%        

@jdchristensen
Copy link
Collaborator

This is great news, Mike. I was hoping it would be what happens, just because it's simpler overall. @Alizter , it's probably best to get this merged before trying to optimize things further.

@Alizter
Copy link
Collaborator

Alizter commented Feb 17, 2020

Very well, I will wait for this to be merged which I am happy with doing.

@mikeshulman
Copy link
Contributor Author

FWIW, the apparent big speedup in Lex.v is partly an illusion because a lot of the proofs that used to be there got moved into Descent.v. However, that's not a big effect because Descent.v is way faster than Lex.v used to be. That could be partly due to my having essentially rewritten all those proofs with our more modern technology. But Jason is probably also right that the modules were slowing things down. We could try to figure it out by looking at which lines in the old modalities files were especially slow, but I'm not sure it's worth it.

Regarding looking for low-hanging fruit, we should pay a bit of attention not just to the total speed of files but their ratio of speed to length. For instance, one reason ReflectiveSubuniverse is on that list is just because it's currently massively long.

@jdchristensen
Copy link
Collaborator

ReflectiveSubuniverse has just a few lines that dominate the time. The timing-html/... file is very handy.

@mikeshulman
Copy link
Contributor Author

Thanks for all these suggestions! However, I'm starting to feel that it's inefficient for you to make lots of little suggestions line by line on github and for me to then go through and implement them all. Github's suggest-a-change feature makes things a little easier, but wouldn't it be even easier for you to just make all the changes in a branch of your own as you find them and then submit a PR to my branch (or to the main repo after this is merged, if the changes aren't essential)? If there are any of the changes that I don't like, I can easily revert them when I merge your PR into my branch.

@jdchristensen
Copy link
Collaborator

Yes, that makes more sense. I'll limit myself to more conceptual comments now, then we can merge it, and then I can follow up with a PR with minor things. Can you do the ones I already mentioned?

Copy link
Collaborator

@jdchristensen jdchristensen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, once the minor comments are addressed. I really like how cleanly things worked out in Descent.v!

@Alizter
Copy link
Collaborator

Alizter commented Feb 17, 2020

@mikeshulman I guess you can merge when you are ready.

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

Successfully merging this pull request may close these issues.

Ditch the modules; free the modalities

4 participants