Using the standard (type class based) transitivity tactic for more controlable proof terms.
brackets
generalize quotient-of-kernel factorization into quotient.v
eliminate an unnecessary funext
fix reference in HoTTBook.v
Merge pull request #460 from mikeshulman/quotient-factor

generalize quotient-of-kernel factorization into quotient.v
-emacs-U is deprecated

Use -emacs instead in .dir-locals.el
Fix V.v to work with current trunk

The [apply path_singleton] was very, very dubious.  It assumed that Coq
would apply [V_singleton u = V_singleton v <-> u = v] as [u = v ->
V_singleton u = V_singleton v].  This is not the case in 8.4, nor in
current trunk.  It's now a much simpler [apply ap].  (Is there a reason
that we weren't just using [apply ap] here?)  I've replaced
[path_singleton] with [isequiv_ap_V_singleton].

We should probably fix [path_pair_ord] as well, so that we never [apply]
an [iff], but since it only broke in one place, I just inserted an
[apply ap] there, for now.
Work around bug 3545

This is https://coq.inria.fr/bugs/show_bug.cgi?id=3545, certain [apply]s
fail (with "No applicable tactic") when they should not
Make [prod] a primitive record

This gives us judgmental eta for products.  Although there are still a
number of bugs in primitive projections and eta in general, there are
relatively few that are hit when we make just [prod] primitive.

Additionally, it gives a hefty speed-up in
categories/Comma/ProjectionFunctors.v

After    | File Name                                                          | Before   || Change
-----------------------------------------------------------------------------------------------------
4m03.39s | Total                                                              | 4m49.71s || -0m46.32s
-----------------------------------------------------------------------------------------------------
0m09.26s | categories/Comma/ProjectionFunctors                                | 0m22.12s || -0m12.86s
0m26.96s | categories/ExponentialLaws/Law4/Law                                | 0m34.81s || -0m07.85s
0m17.16s | categories/ExponentialLaws/Law2/Law                                | 0m22.49s || -0m05.32s
0m23.88s | categories/ExponentialLaws/Law3/Law                                | 0m27.88s || -0m04.00s
0m08.04s | categories/Adjoint/Dual                                            | 0m10.30s || -0m02.26s
0m04.14s | categories/ExponentialLaws/Law4/Functors                           | 0m07.01s || -0m02.87s
0m02.22s | categories/Comma/InducedFunctors                                   | 0m04.35s || -0m02.12s
0m06.39s | categories/FunctorCategory/Dual                                    | 0m08.04s || -0m01.64s
0m16.30s | categories/LaxComma/CoreLaws                                       | 0m15.84s || +0m00.46s
0m09.50s | categories/Comma/Functorial                                        | 0m09.33s || +0m00.16s
0m06.89s | categories/Adjoint/UnitCounit                                      | 0m07.32s || -0m00.43s
0m06.37s | categories/Adjoint/Composition/AssociativityLaw                    | 0m06.24s || +0m00.12s
0m03.94s | categories/Pseudofunctor/RewriteLaws                               | 0m04.29s || -0m00.35s
0m03.86s | categories/Grothendieck/PseudofunctorToCat                         | 0m04.18s || -0m00.31s
0m03.66s | categories/Adjoint/UnitCounitCoercions                             | 0m03.14s || +0m00.52s
0m03.27s | categories/UniversalProperties                                     | 0m03.85s || -0m00.58s
0m03.14s | categories/Pseudofunctor/Identity                                  | 0m03.46s || -0m00.31s
0m03.12s | categories/Adjoint/HomCoercions                                    | 0m03.55s || -0m00.42s
0m02.77s | categories/GroupoidCategory/Morphisms                              | 0m02.79s || -0m00.02s
0m02.51s | categories/Category/Morphisms                                      | 0m02.51s || +0m00.00s
0m02.32s | categories/Adjoint/Composition/IdentityLaws                        | 0m02.22s || +0m00.09s
0m02.22s | categories/Adjoint/UniversalMorphisms                              | 0m02.17s || +0m00.05s
0m02.17s | categories/Pseudofunctor/FromFunctor                               | 0m01.65s || +0m00.52s
0m02.16s | categories/Comma/Dual                                              | 0m02.72s || -0m00.56s
0m02.03s | hit/Flattening                                                     | 0m02.11s || -0m00.08s
0m01.92s | categories/LaxComma/Core                                           | 0m02.15s || -0m00.23s
0m01.88s | categories/Adjoint/Composition/Core                                | 0m02.28s || -0m00.39s
0m01.88s | categories/LaxComma/CoreParts                                      | 0m02.13s || -0m00.25s
0m01.86s | categories/Structure/IdentityPrinciple                             | 0m02.07s || -0m00.20s
0m01.80s | hit/epi                                                            | 0m01.92s || -0m00.11s
0m01.52s | categories/Functor/Pointwise/Properties                            | 0m01.59s || -0m00.07s
0m01.49s | categories/Category/Sigma/OnMorphisms                              | 0m01.40s || +0m00.09s
0m01.39s | categories/ExponentialLaws/Law1/Law                                | 0m01.36s || +0m00.02s
0m01.26s | categories/Yoneda                                                  | 0m01.95s || -0m00.69s
0m01.23s | hit/Connectedness                                                  | 0m01.20s || +0m00.03s
0m01.14s | categories/DualFunctor                                             | 0m01.22s || -0m00.08s
0m01.12s | categories/Functor/Sum                                             | 0m01.13s || -0m00.00s
0m01.10s | categories/Functor/Paths                                           | 0m01.20s || -0m00.09s
0m01.07s | HSet                                                               | 0m01.09s || -0m00.02s
0m01.03s | categories/PseudonaturalTransformation/Core                        | 0m00.57s || +0m00.46s
0m01.03s | HProp                                                              | 0m01.03s || +0m00.00s
0m00.97s | types/Sigma                                                        | 0m00.99s || -0m00.02s
0m00.96s | PathGroupoids                                                      | 0m00.89s || +0m00.06s
0m00.96s | Equivalences                                                       | 0m00.98s || -0m00.02s
0m00.90s | categories/Category/Sum                                            | 0m00.93s || -0m00.03s
0m00.88s | categories/Functor/Prod/Universal                                  | 0m01.29s || -0m00.41s
0m00.85s | types/Record                                                       | 0m00.87s || -0m00.02s
0m00.85s | categories/Functor/Attributes                                      | 0m01.50s || -0m00.65s
0m00.84s | categories/Limits/Core                                             | 0m00.75s || +0m00.08s
0m00.76s | EquivalenceVarieties                                               | 0m00.80s || -0m00.04s
0m00.70s | categories/ProductLaws                                             | 0m01.32s || -0m00.62s
0m00.70s | categories/NaturalTransformation/Isomorphisms                      | 0m00.63s || +0m00.06s
0m00.67s | categories/Adjoint/Paths                                           | 0m00.84s || -0m00.16s
0m00.65s | categories/Structure/Core                                          | 0m00.64s || +0m00.01s
0m00.64s | categories/Comma/Core                                              | 0m00.69s || -0m00.04s
0m00.59s | categories/ExponentialLaws/Law0                                    | 0m00.60s || -0m00.01s
0m00.58s | categories/Functor/Composition/Functorial/Attributes               | 0m00.70s || -0m00.12s
0m00.58s | types/ObjectClassifier                                             | 0m00.64s || -0m00.06s
0m00.57s | categories/Category/Sigma/Core                                     | 0m00.72s || -0m00.15s
0m00.56s | categories/Functor/Composition/Functorial/Core                     | 0m00.70s || -0m00.13s
0m00.52s | categories/NaturalTransformation/Dual                              | 0m00.51s || +0m00.01s
0m00.51s | hit/Spheres                                                        | 0m00.61s || -0m00.09s
0m00.50s | types/Prod                                                         | 0m00.56s || -0m00.06s
0m00.50s | categories/InitialTerminalCategory/Pseudofunctors                  | 0m00.50s || +0m00.00s
0m00.50s | contrib/HoTTBookExercises                                          | 0m00.51s || -0m00.01s
0m00.48s | categories/Functor/Prod/Functorial                                 | 0m00.65s || -0m00.17s
0m00.47s | categories/ExponentialLaws/Law2/Functors                           | 0m00.98s || -0m00.51s
0m00.46s | categories/Limits/Functors                                         | 0m00.35s || +0m00.11s
0m00.46s | categories/Category/Sigma/OnObjects                                | 0m00.51s || -0m00.04s
0m00.44s | categories/SetCategory/Morphisms                                   | 0m00.44s || +0m00.00s
0m00.44s | types/Paths                                                        | 0m00.45s || -0m00.01s
0m00.43s | categories/categories                                              | 0m00.38s || +0m00.04s
0m00.42s | categories/FunctorCategory/Morphisms                               | 0m00.44s || -0m00.02s
0m00.42s | categories/Functor/Pointwise                                       | 0m00.47s || -0m00.04s
0m00.40s | contrib/HoTTBook                                                   | 0m00.42s || -0m00.01s
0m00.40s | categories/NaturalTransformation/Prod                              | 0m00.65s || -0m00.25s
0m00.40s | categories/Functor/Prod                                            | 0m00.62s || -0m00.21s
0m00.39s | categories/Grothendieck/ToSet                                      | 0m00.40s || -0m00.01s
0m00.39s | categories/ExponentialLaws/Law1/Functors                           | 0m00.45s || -0m00.06s
0m00.38s | categories/NaturalTransformation/Pointwise                         | 0m00.41s || -0m00.02s
0m00.38s | categories/Pseudofunctor/Core                                      | 0m00.36s || +0m00.02s
0m00.35s | categories/CategoryOfSections/Core                                 | 0m00.31s || +0m00.03s
0m00.32s | types/Sum                                                          | 0m00.30s || +0m00.02s
0m00.32s | types/Universe                                                     | 0m00.31s || +0m00.01s
0m00.32s | categories/HomFunctor                                              | 0m00.56s || -0m00.24s
0m00.32s | categories/NaturalTransformation/Composition/Laws                  | 0m00.35s || -0m00.02s
0m00.32s | categories/KanExtensions/Functors                                  | 0m00.33s || -0m00.01s
0m00.32s | categories/Comma/Projection                                        | 0m00.32s || +0m00.00s
0m00.31s | categories/NaturalTransformation/Paths                             | 0m00.27s || +0m00.03s
0m00.30s | hit/quotient                                                       | 0m00.28s || +0m00.01s
0m00.29s | hit/Suspension                                                     | 0m00.24s || +0m00.04s
0m00.28s | hit/Circle                                                         | 0m00.30s || -0m00.01s
0m00.27s | Tactics                                                            | 0m00.23s || +0m00.04s
0m00.26s | categories/IndiscreteCategory                                      | 0m00.24s || +0m00.02s
0m00.26s | categories/Category/Prod                                           | 0m00.50s || -0m00.24s
0m00.26s | categories/Adjoint/Hom                                             | 0m00.20s || +0m00.06s
0m00.26s | categories/Functor/Composition/Laws                                | 0m00.22s || +0m00.04s
0m00.26s | categories/InitialTerminalCategory/Functors                        | 0m00.31s || -0m00.04s
0m00.25s | Trunc                                                              | 0m00.24s || +0m00.01s
0m00.25s | types/Forall                                                       | 0m00.21s || +0m00.04s
0m00.24s | categories/FundamentalPreGroupoidCategory                          | 0m00.23s || +0m00.00s
0m00.23s | Fibrations                                                         | 0m00.23s || +0m00.00s
0m00.22s | Functorish                                                         | 0m00.22s || +0m00.00s
0m00.22s | categories/NaturalTransformation/Sum                               | 0m00.21s || +0m00.01s
0m00.22s | categories/Notations                                               | 0m00.23s || -0m00.01s
0m00.22s | categories/Functor/Functor                                         | 0m00.18s || +0m00.04s
0m00.22s | categories/KanExtensions/Core                                      | 0m00.22s || +0m00.00s
0m00.21s | categories/Cat/Core                                                | 0m00.24s || -0m00.03s
0m00.21s | UnivalenceImpliesFunext                                            | 0m00.22s || -0m00.01s
0m00.21s | categories/ExponentialLaws/Law3/Functors                           | 0m00.23s || -0m00.02s
0m00.21s | categories/Grothendieck/ToCat                                      | 0m00.20s || +0m00.00s
0m00.21s | categories/Utf8                                                    | 0m00.19s || +0m00.01s
0m00.21s | categories/FunctorCategory/Functorial                              | 0m00.72s || -0m00.51s
0m00.21s | categories/Adjoint/Adjoint                                         | 0m00.18s || +0m00.03s
0m00.21s | categories/Cat/Morphisms                                           | 0m00.19s || +0m00.01s
0m00.21s | categories/NaturalTransformation/Composition/Core                  | 0m00.21s || +0m00.00s
0m00.20s | categories/Functor/Dual                                            | 0m00.24s || -0m00.03s
0m00.20s | categories/NatCategory                                             | 0m00.16s || +0m00.04s
0m00.20s | categories/NaturalTransformation/Composition/Functorial            | 0m00.14s || +0m00.06s
0m00.19s | categories/InitialTerminalCategory/NaturalTransformations          | 0m00.19s || +0m00.00s
0m00.19s | hit/Pushout                                                        | 0m00.20s || -0m00.01s
0m00.19s | TruncType                                                          | 0m00.17s || +0m00.01s
0m00.18s | categories/Functor/Notations                                       | 0m00.20s || -0m00.02s
0m00.18s | hit/minus1Trunc                                                    | 0m00.21s || -0m00.03s
0m00.17s | Conjugation                                                        | 0m00.15s || +0m00.02s
0m00.17s | categories/DependentProduct                                        | 0m00.16s || +0m00.01s
0m00.17s | categories/LaxComma/Utf8                                           | 0m00.15s || +0m00.02s
0m00.17s | categories/LaxComma/LaxComma                                       | 0m00.15s || +0m00.02s
0m00.16s | categories/ExponentialLaws/ExponentialLaws                         | 0m00.18s || -0m00.01s
0m00.16s | categories/NaturalTransformation/NaturalTransformation             | 0m00.16s || +0m00.00s
0m00.16s | categories/SetCategory/Functors/Functors                           | 0m00.16s || +0m00.00s
0m00.16s | HoTT                                                               | 0m00.16s || +0m00.00s
0m00.16s | categories/Comma/Comma                                             | 0m00.14s || +0m00.01s
0m00.16s | types/Arrow                                                        | 0m00.15s || +0m00.01s
0m00.16s | categories/Profunctor/Utf8                                         | 0m00.08s || +0m00.08s
0m00.15s | categories/Cat/Cat                                                 | 0m00.14s || +0m00.00s
0m00.15s | categories/FunctorCategory/FunctorCategory                         | 0m00.14s || +0m00.00s
0m00.15s | categories/GroupoidCategory/Core                                   | 0m00.14s || +0m00.00s
0m00.15s | categories/NaturalTransformation/Core                              | 0m00.14s || +0m00.00s
0m00.15s | categories/Functor/Utf8                                            | 0m00.17s || -0m00.02s
0m00.15s | categories/NaturalTransformation/Identity                          | 0m00.15s || +0m00.00s
0m00.15s | categories/Profunctor/Identity                                     | 0m00.14s || +0m00.00s
0m00.15s | Overture                                                           | 0m00.14s || +0m00.00s
0m00.15s | categories/FunctorCategory/Core                                    | 0m00.14s || +0m00.00s
0m00.14s | categories/ExponentialLaws/Law3/Law3                               | 0m00.07s || +0m00.07s
0m00.14s | categories/Functor/Composition/Functorial                          | 0m00.16s || -0m00.01s
0m00.14s | categories/GroupoidCategory/GroupoidCategory                       | 0m00.12s || +0m00.02s
0m00.14s | categories/LaxComma/Notations                                      | 0m00.16s || -0m00.01s
0m00.14s | hit/Interval                                                       | 0m00.10s || +0m00.04s
0m00.14s | hit/iso                                                            | 0m00.14s || +0m00.00s
0m00.14s | categories/Category/Dual                                           | 0m00.12s || +0m00.02s
0m00.14s | categories/Functor/Composition/Composition                         | 0m00.17s || -0m00.03s
0m00.14s | categories/CategoryOfGroupoids                                     | 0m00.14s || +0m00.00s
0m00.14s | categories/Category/Univalent                                      | 0m00.12s || +0m00.02s
0m00.14s | Modality                                                           | 0m00.11s || +0m00.03s
0m00.14s | categories/Category/Category                                       | 0m00.15s || -0m00.00s
0m00.14s | categories/HomotopyPreCategory                                     | 0m00.23s || -0m00.09s
0m00.14s | FunextVarieties                                                    | 0m00.16s || -0m00.01s
0m00.14s | Tests                                                              | 0m00.12s || +0m00.02s
0m00.14s | categories/Grothendieck/Grothendieck                               | 0m00.20s || -0m00.06s
0m00.14s | categories/NaturalTransformation/Utf8                              | 0m00.14s || +0m00.00s
0m00.13s | categories/Limits/Limits                                           | 0m00.13s || +0m00.00s
0m00.13s | categories/KanExtensions/KanExtensions                             | 0m00.12s || +0m00.01s
0m00.13s | categories/Pseudofunctor/Pseudofunctor                             | 0m00.19s || -0m00.06s
0m00.13s | categories/InitialTerminalCategory/Core                            | 0m00.12s || +0m00.01s
0m00.13s | categories/Adjoint/Identity                                        | 0m00.20s || -0m00.07s
0m00.13s | hit/unique_choice                                                  | 0m00.12s || +0m00.01s
0m00.13s | categories/Comma/Notations                                         | 0m00.12s || +0m00.01s
0m00.13s | categories/Adjoint/Composition/Composition                         | 0m00.17s || -0m00.04s
0m00.13s | categories/PseudonaturalTransformation/PseudonaturalTransformation | 0m00.12s || +0m00.01s
0m00.13s | types/Bool                                                         | 0m00.16s || -0m00.03s
0m00.13s | categories/Adjoint/Composition/LawsTactic                          | 0m00.14s || -0m00.01s
0m00.12s | categories/Comma/Utf8                                              | 0m00.12s || +0m00.00s
0m00.12s | categories/Adjoint/Utf8                                            | 0m00.14s || -0m00.02s
0m00.12s | categories/Category/Utf8                                           | 0m00.12s || +0m00.00s
0m00.12s | categories/Profunctor/Notations                                    | 0m00.11s || +0m00.00s
0m00.12s | categories/FunctorCategory/Utf8                                    | 0m00.14s || -0m00.02s
0m00.12s | categories/Profunctor/Profunctor                                   | 0m00.12s || +0m00.00s
0m00.12s | categories/Category/Objects                                        | 0m00.13s || -0m00.01s
0m00.12s | categories/NaturalTransformation/Notations                         | 0m00.12s || +0m00.00s
0m00.12s | categories/InitialTerminalCategory/InitialTerminalCategory         | 0m00.18s || -0m00.06s
0m00.12s | categories/Category/Notations                                      | 0m00.10s || +0m00.01s
0m00.12s | categories/ExponentialLaws/Law1/Law1                               | 0m00.10s || +0m00.01s
0m00.12s | categories/NaturalTransformation/Composition/Composition           | 0m00.12s || +0m00.00s
0m00.12s | categories/FunctorCategory/Notations                               | 0m00.10s || +0m00.01s
0m00.12s | categories/Category/Pi                                             | 0m00.11s || +0m00.00s
0m00.12s | categories/CategoryOfSections/CategoryOfSections                   | 0m00.08s || +0m00.03s
0m00.11s | categories/Structure/Structure                                     | 0m00.13s || -0m00.02s
0m00.11s | categories/InitialTerminalCategory/Notations                       | 0m00.12s || -0m00.00s
0m00.11s | hit/TwoSphere                                                      | 0m00.13s || -0m00.02s
0m00.11s | types/Unit                                                         | 0m00.12s || -0m00.00s
0m00.11s | categories/Category/Subcategory/Full                               | 0m00.09s || +0m00.02s
0m00.11s | hit/Truncations                                                    | 0m00.09s || +0m00.02s
0m00.10s | categories/Profunctor/Representable                                | 0m00.16s || -0m00.06s
0m00.10s | categories/Profunctor/Core                                         | 0m00.09s || +0m00.01s
0m00.10s | categories/SetCategory/Core                                        | 0m00.10s || +0m00.00s
0m00.10s | categories/ExponentialLaws/Law4/Law4                               | 0m00.12s || -0m00.01s
0m00.10s | categories/Adjoint/Notations                                       | 0m00.10s || +0m00.00s
0m00.10s | categories/Structure/Notations                                     | 0m00.09s || +0m00.01s
0m00.10s | Pointed                                                            | 0m00.09s || +0m00.01s
0m00.10s | categories/Category/Core                                           | 0m00.11s || -0m00.00s
0m00.10s | categories/SetCategory/SetCategory                                 | 0m00.16s || -0m00.06s
0m00.10s | categories/ExponentialLaws/Law2/Law2                               | 0m00.09s || +0m00.01s
0m00.10s | categories/Structure/Utf8                                          | 0m00.10s || +0m00.00s
0m00.09s | categories/Adjoint/Core                                            | 0m00.10s || -0m00.01s
0m00.09s | Contractible                                                       | 0m00.13s || -0m00.04s
0m00.09s | categories/Functor/Prod/Prod                                       | 0m00.14s || -0m00.05s
0m00.09s | categories/Category/Strict                                         | 0m00.07s || +0m00.01s
0m00.09s | coq/Init/Peano                                                     | 0m00.10s || -0m00.01s
0m00.09s | Misc                                                               | 0m00.14s || -0m00.05s
0m00.09s | categories/Functor/Core                                            | 0m00.10s || -0m00.01s
0m00.09s | categories/Functor/Composition/Core                                | 0m00.08s || +0m00.00s
0m00.09s | categories/Category/Sigma/Sigma                                    | 0m00.11s || -0m00.02s
0m00.09s | categories/Functor/Pointwise/Pointwise                             | 0m00.11s || -0m00.02s
0m00.08s | categories/DiscreteCategory                                        | 0m00.09s || -0m00.00s
0m00.08s | categories/Category/Subcategory/Wide                               | 0m00.11s || -0m00.03s
0m00.08s | categories/Category/Subcategory/Subcategory                        | 0m00.10s || -0m00.02s
0m00.08s | UnivalenceAxiom                                                    | 0m00.08s || +0m00.00s
0m00.07s | coq/Init/Notations                                                 | 0m00.02s || +0m00.05s
0m00.07s | coq/Init/Specif                                                    | 0m00.06s || +0m00.01s
0m00.07s | types/UniverseLevel                                                | 0m00.07s || +0m00.00s
0m00.07s | FunextAxiom                                                        | 0m00.06s || +0m00.01s
0m00.06s | categories/Functor/Identity                                        | 0m00.09s || -0m00.03s
0m00.06s | coq/Init/Logic_Type                                                | 0m00.06s || +0m00.00s
0m00.06s | types/Empty                                                        | 0m00.09s || -0m00.03s
0m00.04s | coq/Init/Datatypes                                                 | 0m00.06s || -0m00.01s
0m00.04s | coq/Program/Tactics                                                | 0m00.05s || -0m00.01s
0m00.03s | coq/Init/Logic                                                     | 0m00.04s || -0m00.01s
0m00.03s | coq/Init/Prelude                                                   | 0m00.04s || -0m00.01s
0m00.03s | coq/Init/Tactics                                                   | 0m00.04s || -0m00.01s
0m00.02s | coq/Bool/Bool                                                      | 0m00.02s || +0m00.00s
Take advantage of judgmental eta to clean proofs

No performance impact, and the proofs are cleaner.

Also, we need fewer instances of funext.

After    | File Name                                                          | Before   || Change
-----------------------------------------------------------------------------------------------------
3m59.41s | Total                                                              | 4m00.28s || -0m00.86s
-----------------------------------------------------------------------------------------------------
0m25.82s | categories/ExponentialLaws/Law4/Law                                | 0m26.74s || -0m00.91s
0m23.29s | categories/ExponentialLaws/Law3/Law                                | 0m23.37s || -0m00.08s
0m16.75s | categories/ExponentialLaws/Law2/Law                                | 0m16.91s || -0m00.16s
0m15.35s | categories/LaxComma/CoreLaws                                       | 0m15.06s || +0m00.28s
0m08.99s | categories/Comma/Functorial                                        | 0m08.71s || +0m00.27s
0m08.73s | categories/Adjoint/Dual                                            | 0m08.72s || +0m00.00s
0m08.26s | categories/Comma/ProjectionFunctors                                | 0m08.75s || -0m00.49s
0m06.97s | categories/FunctorCategory/Dual                                    | 0m07.62s || -0m00.65s
0m06.75s | categories/Adjoint/UnitCounit                                      | 0m06.86s || -0m00.11s
0m06.17s | categories/Adjoint/Composition/AssociativityLaw                    | 0m05.77s || +0m00.40s
0m04.21s | categories/Pseudofunctor/RewriteLaws                               | 0m04.76s || -0m00.54s
0m03.96s | categories/ExponentialLaws/Law4/Functors                           | 0m03.96s || +0m00.00s
0m03.53s | categories/Grothendieck/PseudofunctorToCat                         | 0m03.35s || +0m00.17s
0m03.28s | categories/UniversalProperties                                     | 0m02.99s || +0m00.28s
0m03.26s | categories/Adjoint/UnitCounitCoercions                             | 0m03.18s || +0m00.07s
0m03.04s | categories/Adjoint/HomCoercions                                    | 0m03.10s || -0m00.06s
0m02.80s | categories/GroupoidCategory/Morphisms                              | 0m02.74s || +0m00.05s
0m02.66s | categories/Pseudofunctor/Identity                                  | 0m02.64s || +0m00.02s
0m02.58s | categories/Category/Morphisms                                      | 0m02.48s || +0m00.10s
0m02.38s | categories/Comma/Dual                                              | 0m01.98s || +0m00.39s
0m02.36s | categories/Adjoint/UniversalMorphisms                              | 0m02.40s || -0m00.04s
0m02.20s | categories/Adjoint/Composition/IdentityLaws                        | 0m02.25s || -0m00.04s
0m02.09s | categories/Adjoint/Composition/Core                                | 0m01.91s || +0m00.17s
0m02.08s | hit/Flattening                                                     | 0m02.03s || +0m00.05s
0m02.06s | categories/LaxComma/Core                                           | 0m01.97s || +0m00.09s
0m02.04s | categories/LaxComma/CoreParts                                      | 0m02.30s || -0m00.25s
0m02.02s | categories/Comma/InducedFunctors                                   | 0m02.17s || -0m00.14s
0m01.84s | hit/epi                                                            | 0m01.84s || +0m00.00s
0m01.73s | categories/Structure/IdentityPrinciple                             | 0m01.78s || -0m00.05s
0m01.58s | categories/Pseudofunctor/FromFunctor                               | 0m01.65s || -0m00.06s
0m01.58s | categories/Functor/Pointwise/Properties                            | 0m01.60s || -0m00.02s
0m01.43s | categories/ExponentialLaws/Law1/Law                                | 0m01.41s || +0m00.02s
0m01.38s | categories/Category/Sigma/OnMorphisms                              | 0m01.36s || +0m00.01s
0m01.37s | categories/Yoneda                                                  | 0m01.37s || +0m00.00s
0m01.26s | hit/Connectedness                                                  | 0m01.29s || -0m00.03s
0m01.17s | categories/Functor/Paths                                           | 0m01.02s || +0m00.14s
0m01.09s | HSet                                                               | 0m01.14s || -0m00.04s
0m01.09s | categories/Functor/Sum                                             | 0m01.12s || -0m00.03s
0m01.08s | categories/PseudonaturalTransformation/Core                        | 0m01.25s || -0m00.16s
0m01.07s | Equivalences                                                       | 0m01.08s || -0m00.01s
0m01.01s | HProp                                                              | 0m01.03s || -0m00.02s
0m00.99s | types/Sigma                                                        | 0m00.92s || +0m00.06s
0m00.99s | categories/DualFunctor                                             | 0m00.98s || +0m00.01s
0m00.91s | PathGroupoids                                                      | 0m00.92s || -0m00.01s
0m00.91s | types/Record                                                       | 0m00.86s || +0m00.05s
0m00.89s | categories/Adjoint/Paths                                           | 0m00.84s || +0m00.05s
0m00.88s | categories/Functor/Attributes                                      | 0m00.98s || -0m00.09s
0m00.86s | categories/Category/Sum                                            | 0m00.82s || +0m00.04s
0m00.83s | categories/Functor/Prod/Universal                                  | 0m00.80s || +0m00.02s
0m00.82s | categories/Limits/Core                                             | 0m00.74s || +0m00.07s
0m00.72s | categories/Structure/Core                                          | 0m00.68s || +0m00.03s
0m00.70s | EquivalenceVarieties                                               | 0m00.74s || -0m00.04s
0m00.68s | categories/Category/Sigma/Core                                     | 0m00.64s || +0m00.04s
0m00.68s | categories/Comma/Core                                              | 0m00.65s || +0m00.03s
0m00.67s | categories/Functor/Composition/Functorial/Core                     | 0m00.64s || +0m00.03s
0m00.64s | types/ObjectClassifier                                             | 0m00.58s || +0m00.06s
0m00.63s | categories/ProductLaws                                             | 0m00.63s || +0m00.00s
0m00.63s | categories/ExponentialLaws/Law0                                    | 0m00.61s || +0m00.02s
0m00.60s | categories/Functor/Composition/Functorial/Attributes               | 0m00.61s || -0m00.01s
0m00.57s | categories/NaturalTransformation/Isomorphisms                      | 0m00.64s || -0m00.07s
0m00.54s | hit/Spheres                                                        | 0m00.49s || +0m00.05s
0m00.51s | categories/Functor/Prod/Functorial                                 | 0m00.50s || +0m00.01s
0m00.50s | categories/Category/Sigma/OnObjects                                | 0m00.49s || +0m00.01s
0m00.50s | categories/NaturalTransformation/Dual                              | 0m00.53s || -0m00.03s
0m00.46s | contrib/HoTTBook                                                   | 0m00.41s || +0m00.05s
0m00.46s | categories/SetCategory/Morphisms                                   | 0m00.44s || +0m00.02s
0m00.46s | categories/InitialTerminalCategory/Pseudofunctors                  | 0m00.48s || -0m00.01s
0m00.46s | categories/Functor/Prod                                            | 0m00.40s || +0m00.06s
0m00.45s | categories/ExponentialLaws/Law1/Functors                           | 0m00.41s || +0m00.04s
0m00.45s | contrib/HoTTBookExercises                                          | 0m00.51s || -0m00.06s
0m00.44s | types/Prod                                                         | 0m00.47s || -0m00.02s
0m00.44s | types/Paths                                                        | 0m00.47s || -0m00.02s
0m00.43s | categories/Grothendieck/ToSet                                      | 0m00.45s || -0m00.02s
0m00.42s | categories/ExponentialLaws/Law2/Functors                           | 0m00.49s || -0m00.07s
0m00.42s | categories/FunctorCategory/Morphisms                               | 0m00.47s || -0m00.04s
0m00.42s | categories/Functor/Pointwise                                       | 0m00.40s || +0m00.01s
0m00.41s | categories/Pseudofunctor/Core                                      | 0m00.38s || +0m00.02s
0m00.38s | categories/NaturalTransformation/Pointwise                         | 0m00.35s || +0m00.03s
0m00.38s | categories/categories                                              | 0m00.44s || -0m00.06s
0m00.37s | categories/NaturalTransformation/Prod                              | 0m00.38s || -0m00.01s
0m00.35s | hit/quotient                                                       | 0m00.40s || -0m00.05s
0m00.34s | categories/Limits/Functors                                         | 0m00.36s || -0m00.01s
0m00.34s | categories/HomFunctor                                              | 0m00.32s || +0m00.02s
0m00.33s | categories/NaturalTransformation/Paths                             | 0m00.32s || +0m00.01s
0m00.33s | categories/NaturalTransformation/Composition/Laws                  | 0m00.38s || -0m00.04s
0m00.32s | categories/Comma/Projection                                        | 0m00.32s || +0m00.00s
0m00.31s | categories/CategoryOfSections/Core                                 | 0m00.31s || +0m00.00s
0m00.30s | categories/InitialTerminalCategory/Functors                        | 0m00.30s || +0m00.00s
0m00.29s | types/Sum                                                          | 0m00.30s || -0m00.01s
0m00.29s | categories/KanExtensions/Functors                                  | 0m00.29s || +0m00.00s
0m00.28s | hit/Circle                                                         | 0m00.32s || -0m00.03s
0m00.27s | types/Universe                                                     | 0m00.29s || -0m00.01s
0m00.26s | categories/FundamentalPreGroupoidCategory                          | 0m00.24s || +0m00.02s
0m00.26s | Tactics                                                            | 0m00.26s || +0m00.00s
0m00.26s | types/Forall                                                       | 0m00.23s || +0m00.03s
0m00.25s | categories/Functor/Dual                                            | 0m00.20s || +0m00.04s
0m00.25s | Functorish                                                         | 0m00.24s || +0m00.01s
0m00.25s | categories/Category/Prod                                           | 0m00.22s || +0m00.03s
0m00.24s | categories/Grothendieck/ToCat                                      | 0m00.19s || +0m00.04s
0m00.24s | categories/Functor/Composition/Laws                                | 0m00.20s || +0m00.03s
0m00.24s | categories/KanExtensions/Core                                      | 0m00.24s || +0m00.00s
0m00.23s | Trunc                                                              | 0m00.26s || -0m00.03s
0m00.23s | HoTT                                                               | 0m00.16s || +0m00.07s
0m00.23s | Fibrations                                                         | 0m00.25s || -0m00.01s
0m00.22s | categories/Adjoint/Hom                                             | 0m00.20s || +0m00.01s
0m00.22s | hit/Pushout                                                        | 0m00.19s || +0m00.03s
0m00.22s | categories/HomotopyPreCategory                                     | 0m00.20s || +0m00.01s
0m00.21s | categories/Cat/Core                                                | 0m00.20s || +0m00.00s
0m00.21s | categories/FunctorCategory/Functorial                              | 0m00.23s || -0m00.02s
0m00.21s | categories/Notations                                               | 0m00.18s || +0m00.03s
0m00.20s | categories/ExponentialLaws/ExponentialLaws                         | 0m00.16s || +0m00.04s
0m00.20s | UnivalenceImpliesFunext                                            | 0m00.18s || +0m00.02s
0m00.20s | hit/Suspension                                                     | 0m00.24s || -0m00.03s
0m00.20s | categories/Category/Category                                       | 0m00.20s || +0m00.00s
0m00.20s | hit/minus1Trunc                                                    | 0m00.21s || -0m00.00s
0m00.20s | types/Arrow                                                        | 0m00.17s || +0m00.03s
0m00.20s | categories/Adjoint/Adjoint                                         | 0m00.21s || -0m00.00s
0m00.20s | categories/NaturalTransformation/Composition/Core                  | 0m00.22s || -0m00.01s
0m00.19s | categories/NaturalTransformation/NaturalTransformation             | 0m00.13s || +0m00.06s
0m00.19s | categories/ExponentialLaws/Law3/Functors                           | 0m00.20s || -0m00.01s
0m00.19s | categories/NaturalTransformation/Sum                               | 0m00.21s || -0m00.01s
0m00.19s | categories/Adjoint/Identity                                        | 0m00.14s || +0m00.04s
0m00.19s | categories/Functor/Notations                                       | 0m00.16s || +0m00.03s
0m00.19s | categories/Functor/Functor                                         | 0m00.23s || -0m00.04s
0m00.19s | categories/Grothendieck/Grothendieck                               | 0m00.19s || +0m00.00s
0m00.18s | categories/IndiscreteCategory                                      | 0m00.24s || -0m00.06s
0m00.18s | categories/LaxComma/LaxComma                                       | 0m00.18s || +0m00.00s
0m00.18s | categories/NaturalTransformation/Composition/Functorial            | 0m00.15s || +0m00.03s
0m00.17s | categories/Functor/Composition/Functorial                          | 0m00.14s || +0m00.03s
0m00.17s | categories/Limits/Limits                                           | 0m00.14s || +0m00.03s
0m00.17s | categories/Comma/Comma                                             | 0m00.18s || -0m00.00s
0m00.17s | TruncType                                                          | 0m00.18s || -0m00.00s
0m00.17s | categories/NatCategory                                             | 0m00.16s || +0m00.01s
0m00.17s | categories/Functor/Utf8                                            | 0m00.16s || +0m00.01s
0m00.16s | categories/InitialTerminalCategory/NaturalTransformations          | 0m00.17s || -0m00.01s
0m00.16s | categories/SetCategory/Functors/Functors                           | 0m00.12s || +0m00.04s
0m00.16s | categories/Functor/Composition/Composition                         | 0m00.20s || -0m00.04s
0m00.16s | Modality                                                           | 0m00.13s || +0m00.03s
0m00.16s | categories/Utf8                                                    | 0m00.20s || -0m00.04s
0m00.16s | categories/LaxComma/Utf8                                           | 0m00.14s || +0m00.01s
0m00.16s | categories/NaturalTransformation/Core                              | 0m00.16s || +0m00.00s
0m00.16s | categories/NaturalTransformation/Utf8                              | 0m00.15s || +0m00.01s
0m00.15s | categories/Pseudofunctor/Pseudofunctor                             | 0m00.13s || +0m00.01s
0m00.15s | categories/FunctorCategory/FunctorCategory                         | 0m00.16s || -0m00.01s
0m00.15s | categories/CategoryOfGroupoids                                     | 0m00.14s || +0m00.00s
0m00.15s | categories/Category/Univalent                                      | 0m00.11s || +0m00.03s
0m00.15s | categories/GroupoidCategory/Core                                   | 0m00.14s || +0m00.00s
0m00.15s | categories/Category/Objects                                        | 0m00.18s || -0m00.03s
0m00.15s | categories/NaturalTransformation/Identity                          | 0m00.14s || +0m00.00s
0m00.15s | types/Bool                                                         | 0m00.16s || -0m00.01s
0m00.14s | categories/Profunctor/Representable                                | 0m00.12s || +0m00.02s
0m00.14s | Conjugation                                                        | 0m00.16s || -0m00.01s
0m00.14s | categories/Comma/Utf8                                              | 0m00.15s || -0m00.00s
0m00.14s | categories/ExponentialLaws/Law3/Law3                               | 0m00.10s || +0m00.04s
0m00.14s | categories/DependentProduct                                        | 0m00.15s || -0m00.00s
0m00.14s | categories/KanExtensions/KanExtensions                             | 0m00.14s || +0m00.00s
0m00.14s | categories/FunctorCategory/Utf8                                    | 0m00.14s || +0m00.00s
0m00.14s | categories/Functor/Prod/Prod                                       | 0m00.13s || +0m00.01s
0m00.14s | hit/iso                                                            | 0m00.14s || +0m00.00s
0m00.14s | categories/Adjoint/Composition/Composition                         | 0m00.14s || +0m00.00s
0m00.14s | categories/Cat/Morphisms                                           | 0m00.16s || -0m00.01s
0m00.14s | FunextVarieties                                                    | 0m00.11s || +0m00.03s
0m00.14s | Overture                                                           | 0m00.15s || -0m00.00s
0m00.14s | categories/FunctorCategory/Core                                    | 0m00.12s || +0m00.02s
0m00.13s | categories/LaxComma/Notations                                      | 0m00.19s || -0m00.06s
0m00.13s | categories/Structure/Structure                                     | 0m00.12s || +0m00.01s
0m00.13s | categories/PseudonaturalTransformation/PseudonaturalTransformation | 0m00.13s || +0m00.00s
0m00.13s | categories/InitialTerminalCategory/InitialTerminalCategory         | 0m00.13s || +0m00.00s
0m00.13s | categories/Profunctor/Identity                                     | 0m00.14s || -0m00.01s
0m00.13s | categories/ExponentialLaws/Law1/Law1                               | 0m00.12s || +0m00.01s
0m00.13s | categories/ExponentialLaws/Law2/Law2                               | 0m00.13s || +0m00.00s
0m00.13s | categories/Functor/Pointwise/Pointwise                             | 0m00.08s || +0m00.05s
0m00.12s | categories/DiscreteCategory                                        | 0m00.10s || +0m00.01s
0m00.12s | categories/Adjoint/Utf8                                            | 0m00.13s || -0m00.01s
0m00.12s | categories/Profunctor/Notations                                    | 0m00.14s || -0m00.02s
0m00.12s | categories/Profunctor/Core                                         | 0m00.09s || +0m00.03s
0m00.12s | categories/SetCategory/Core                                        | 0m00.10s || +0m00.01s
0m00.12s | categories/Category/Dual                                           | 0m00.13s || -0m00.01s
0m00.12s | coq/Init/Peano                                                     | 0m00.10s || +0m00.01s
0m00.12s | Misc                                                               | 0m00.13s || -0m00.01s
0m00.12s | hit/unique_choice                                                  | 0m00.11s || +0m00.00s
0m00.12s | categories/Adjoint/Notations                                       | 0m00.11s || +0m00.00s
0m00.12s | categories/Profunctor/Profunctor                                   | 0m00.14s || -0m00.02s
0m00.12s | categories/Comma/Notations                                         | 0m00.12s || +0m00.00s
0m00.12s | categories/NaturalTransformation/Notations                         | 0m00.15s || -0m00.03s
0m00.12s | categories/Category/Core                                           | 0m00.10s || +0m00.01s
0m00.12s | hit/TwoSphere                                                      | 0m00.11s || +0m00.00s
0m00.12s | Tests                                                              | 0m00.15s || -0m00.03s
0m00.12s | categories/SetCategory/SetCategory                                 | 0m00.10s || +0m00.01s
0m00.12s | categories/Category/Notations                                      | 0m00.10s || +0m00.01s
0m00.12s | types/Unit                                                         | 0m00.14s || -0m00.02s
0m00.12s | hit/Truncations                                                    | 0m00.15s || -0m00.03s
0m00.12s | categories/Adjoint/Composition/LawsTactic                          | 0m00.14s || -0m00.02s
0m00.12s | categories/Category/Pi                                             | 0m00.11s || +0m00.00s
0m00.11s | categories/Adjoint/Core                                            | 0m00.12s || -0m00.00s
0m00.11s | categories/Category/Utf8                                           | 0m00.12s || -0m00.00s
0m00.11s | categories/Cat/Cat                                                 | 0m00.11s || +0m00.00s
0m00.11s | Contractible                                                       | 0m00.10s || +0m00.00s
0m00.11s | categories/InitialTerminalCategory/Core                            | 0m00.14s || -0m00.03s
0m00.11s | categories/Functor/Core                                            | 0m00.09s || +0m00.02s
0m00.11s | categories/Category/Subcategory/Wide                               | 0m00.07s || +0m00.03s
0m00.11s | categories/InitialTerminalCategory/Notations                       | 0m00.14s || -0m00.03s
0m00.11s | categories/NaturalTransformation/Composition/Composition           | 0m00.10s || +0m00.00s
0m00.11s | categories/Profunctor/Utf8                                         | 0m00.11s || +0m00.00s
0m00.10s | hit/Interval                                                       | 0m00.11s || -0m00.00s
0m00.10s | categories/Functor/Composition/Core                                | 0m00.05s || +0m00.05s
0m00.10s | categories/Category/Sigma/Sigma                                    | 0m00.12s || -0m00.01s
0m00.10s | categories/Category/Subcategory/Full                               | 0m00.12s || -0m00.01s
0m00.09s | coq/Init/Specif                                                    | 0m00.07s || +0m00.01s
0m00.09s | categories/Category/Subcategory/Subcategory                        | 0m00.10s || -0m00.01s
0m00.09s | categories/Structure/Utf8                                          | 0m00.10s || -0m00.01s
0m00.09s | types/Empty                                                        | 0m00.07s || +0m00.01s
0m00.09s | categories/CategoryOfSections/CategoryOfSections                   | 0m00.12s || -0m00.03s
0m00.08s | categories/GroupoidCategory/GroupoidCategory                       | 0m00.10s || -0m00.02s
0m00.08s | categories/Functor/Identity                                        | 0m00.10s || -0m00.02s
0m00.08s | categories/ExponentialLaws/Law4/Law4                               | 0m00.09s || -0m00.00s
0m00.08s | Pointed                                                            | 0m00.08s || +0m00.00s
0m00.08s | UnivalenceAxiom                                                    | 0m00.11s || -0m00.03s
0m00.08s | categories/FunctorCategory/Notations                               | 0m00.12s || -0m00.03s
0m00.07s | coq/Init/Datatypes                                                 | 0m00.06s || +0m00.01s
0m00.07s | categories/Category/Strict                                         | 0m00.06s || +0m00.01s
0m00.07s | categories/Structure/Notations                                     | 0m00.08s || -0m00.00s
0m00.07s | types/UniverseLevel                                                | 0m00.08s || -0m00.00s
0m00.06s | FunextAxiom                                                        | 0m00.06s || +0m00.00s
0m00.05s | coq/Init/Logic_Type                                                | 0m00.06s || -0m00.00s
0m00.05s | coq/Program/Tactics                                                | 0m00.06s || -0m00.00s
0m00.04s | coq/Init/Logic                                                     | 0m00.04s || +0m00.00s
0m00.04s | coq/Init/Prelude                                                   | 0m00.04s || +0m00.00s
0m00.02s | coq/Init/Notations                                                 | 0m00.03s || -0m00.00s
0m00.02s | coq/Bool/Bool                                                      | 0m00.02s || +0m00.00s
0m00.02s | coq/Init/Tactics                                                   | 0m00.02s || +0m00.00s
Merge pull request #429 from JasonGross/eta-proj-prod

As @mikeshulman was already OK and the bugs have been fixed, I am merging this.
The simplifications look convincing.
Make `prod` a primitive record
Prove A * (B * C) ≅ (A * B) * C for categories
Removing @ notation magic
Merge pull request #430 from JasonGross/prod-assoc

A * (B * C) ≅ (A * B) * C, for categories
Merge branch 'master' of github.com:HoTT/HoTT

Conflicts:
	theories/hit/V.v
Update the install script to retry after cleaning

Sometimes, Coq's Makefile is terrible at noticing that things have
changed.  So we try to clean up if `make` fails.

Also, we don't need to patch `configure` anymore; Coq trunk uses a
configure.ml file.
I prefer simple tactics to `match ... in ... return ...`
I prefer `exact _` to `typeclasses eauto`
few style fixes