feat(CategoryTheory): Locally Cartesian Closed Categories (Prelim)#21525
feat(CategoryTheory): Locally Cartesian Closed Categories (Prelim)#21525
Conversation
…ian-closed-categories
…thub.com/leanprover-community/mathlib4 into sina-locally-cartesian-closed-categories
…ian-closed-categories
PR summary 9c6c92b900Import changes exceeding 2%
|
| File | Base Count | Head Count | Change |
|---|---|---|---|
| Mathlib.CategoryTheory.Comma.Over.Pullback | 437 | 666 | +229 (+52.40%) |
| Mathlib.CategoryTheory.Galois.Examples | 1084 | 1109 | +25 (+2.31%) |
Import changes for all files
| Files | Import difference |
|---|---|
Mathlib.CategoryTheory.Abelian.FreydMitchell |
3 |
5 filesMathlib.Algebra.Category.ModuleCat.Sheaf.PullbackContinuous Mathlib.CategoryTheory.Abelian.GrothendieckAxioms.Indization Mathlib.CategoryTheory.Generator.Indization Mathlib.Condensed.AB Mathlib.Condensed.Light.AB |
4 |
Mathlib.Condensed.CartesianClosed Mathlib.Condensed.Light.CartesianClosed |
7 |
10 filesMathlib.Algebra.Category.ModuleCat.Presheaf.Generator Mathlib.Algebra.Category.ModuleCat.Presheaf.Pullback Mathlib.RepresentationTheory.Character Mathlib.RepresentationTheory.FDRep Mathlib.RepresentationTheory.GroupCohomology.Basic Mathlib.RepresentationTheory.GroupCohomology.Functoriality Mathlib.RepresentationTheory.GroupCohomology.Hilbert90 Mathlib.RepresentationTheory.GroupCohomology.LowDegree Mathlib.RepresentationTheory.GroupCohomology.Resolution Mathlib.RepresentationTheory.Invariants |
8 |
Mathlib.CategoryTheory.Sites.SheafCohomology.Basic |
18 |
10 filesMathlib.AlgebraicGeometry.Cover.Over Mathlib.AlgebraicGeometry.Morphisms.FormallyUnramified Mathlib.AlgebraicGeometry.Morphisms.Immersion Mathlib.AlgebraicGeometry.Morphisms.Proper Mathlib.AlgebraicGeometry.Morphisms.Separated Mathlib.AlgebraicGeometry.PointsPi Mathlib.AlgebraicGeometry.ProjectiveSpectrum.Proper Mathlib.AlgebraicGeometry.RationalMap Mathlib.AlgebraicGeometry.Sites.Small Mathlib.AlgebraicGeometry.ValuativeCriterion |
19 |
Mathlib.CategoryTheory.Limits.MorphismProperty |
20 |
Mathlib.Algebra.Homology.LocalCohomology Mathlib.AlgebraicTopology.SingularHomology.Basic |
21 |
87 filesMathlib.Algebra.Homology.AlternatingConst Mathlib.Algebra.Homology.BifunctorHomotopy Mathlib.Algebra.Homology.BifunctorShift Mathlib.Algebra.Homology.ConcreteCategory Mathlib.Algebra.Homology.DerivedCategory.Basic Mathlib.Algebra.Homology.DerivedCategory.ExactFunctor Mathlib.Algebra.Homology.DerivedCategory.Ext.Basic Mathlib.Algebra.Homology.DerivedCategory.Ext.ExactSequences Mathlib.Algebra.Homology.DerivedCategory.Ext.ExtClass Mathlib.Algebra.Homology.DerivedCategory.HomologySequence Mathlib.Algebra.Homology.DerivedCategory.ShortExact Mathlib.Algebra.Homology.DerivedCategory.SingleTriangle Mathlib.Algebra.Homology.Embedding.CochainComplex Mathlib.Algebra.Homology.Embedding.ExtendHomology Mathlib.Algebra.Homology.Embedding.Extend Mathlib.Algebra.Homology.Embedding.HomEquiv Mathlib.Algebra.Homology.Embedding.IsSupported Mathlib.Algebra.Homology.Embedding.RestrictionHomology Mathlib.Algebra.Homology.Embedding.StupidTrunc Mathlib.Algebra.Homology.Embedding.TruncGEHomology Mathlib.Algebra.Homology.Embedding.TruncGE Mathlib.Algebra.Homology.Embedding.TruncLEHomology Mathlib.Algebra.Homology.Embedding.TruncLE Mathlib.Algebra.Homology.Factorizations.Basic Mathlib.Algebra.Homology.HomologicalComplexAbelian Mathlib.Algebra.Homology.HomologySequenceLemmas Mathlib.Algebra.Homology.HomologySequence Mathlib.Algebra.Homology.HomotopyCategory.DegreewiseSplit Mathlib.Algebra.Homology.HomotopyCategory.HomComplexShift Mathlib.Algebra.Homology.HomotopyCategory.HomComplex Mathlib.Algebra.Homology.HomotopyCategory.HomologicalFunctor Mathlib.Algebra.Homology.HomotopyCategory.MappingCone Mathlib.Algebra.Homology.HomotopyCategory.Pretriangulated Mathlib.Algebra.Homology.HomotopyCategory.ShiftSequence Mathlib.Algebra.Homology.HomotopyCategory.Shift Mathlib.Algebra.Homology.HomotopyCategory.ShortExact Mathlib.Algebra.Homology.HomotopyCategory.SingleFunctors Mathlib.Algebra.Homology.HomotopyCategory.Triangulated Mathlib.Algebra.Homology.HomotopyCategory Mathlib.Algebra.Homology.HomotopyCofiber Mathlib.Algebra.Homology.Homotopy Mathlib.Algebra.Homology.Localization Mathlib.Algebra.Homology.Opposite Mathlib.Algebra.Homology.QuasiIso Mathlib.Algebra.Homology.Refinements Mathlib.Algebra.Homology.ShortComplex.HomologicalComplex Mathlib.Algebra.Homology.SingleHomology Mathlib.Algebra.Homology.TotalComplexShift Mathlib.AlgebraicTopology.AlternatingFaceMapComplex Mathlib.AlgebraicTopology.DoldKan.Decomposition Mathlib.AlgebraicTopology.DoldKan.Degeneracies Mathlib.AlgebraicTopology.DoldKan.EquivalenceAdditive Mathlib.AlgebraicTopology.DoldKan.EquivalencePseudoabelian Mathlib.AlgebraicTopology.DoldKan.Equivalence Mathlib.AlgebraicTopology.DoldKan.Faces Mathlib.AlgebraicTopology.DoldKan.FunctorGamma Mathlib.AlgebraicTopology.DoldKan.FunctorN Mathlib.AlgebraicTopology.DoldKan.GammaCompN Mathlib.AlgebraicTopology.DoldKan.Homotopies Mathlib.AlgebraicTopology.DoldKan.HomotopyEquivalence Mathlib.AlgebraicTopology.DoldKan.NCompGamma Mathlib.AlgebraicTopology.DoldKan.NReflectsIso Mathlib.AlgebraicTopology.DoldKan.Normalized Mathlib.AlgebraicTopology.DoldKan.Notations Mathlib.AlgebraicTopology.DoldKan.PInfty Mathlib.AlgebraicTopology.DoldKan.Projections Mathlib.AlgebraicTopology.DoldKan.SplitSimplicialObject Mathlib.AlgebraicTopology.ExtraDegeneracy Mathlib.AlgebraicTopology.MooreComplex Mathlib.CategoryTheory.Abelian.Ext Mathlib.CategoryTheory.Abelian.GrothendieckAxioms.Colim Mathlib.CategoryTheory.Abelian.GrothendieckAxioms.Connected Mathlib.CategoryTheory.Abelian.GrothendieckCategory.ColimCoyoneda Mathlib.CategoryTheory.Abelian.GrothendieckCategory.Coseparator Mathlib.CategoryTheory.Abelian.GrothendieckCategory.EnoughInjectives Mathlib.CategoryTheory.Abelian.GrothendieckCategory.ModuleEmbedding.Opposite Mathlib.CategoryTheory.Abelian.GrothendieckCategory.Monomorphisms Mathlib.CategoryTheory.Abelian.GrothendieckCategory.Subobject Mathlib.CategoryTheory.Abelian.Injective.Resolution Mathlib.CategoryTheory.Abelian.LeftDerived Mathlib.CategoryTheory.Abelian.Projective.Dimension Mathlib.CategoryTheory.Abelian.Projective.Resolution Mathlib.CategoryTheory.Abelian.RightDerived Mathlib.CategoryTheory.Idempotents.HomologicalComplex Mathlib.CategoryTheory.Monoidal.Tor Mathlib.CategoryTheory.Preadditive.Injective.Resolution Mathlib.CategoryTheory.Preadditive.Projective.Resolution |
22 |
40 filesMathlib.AlgebraicGeometry.AffineSpace Mathlib.AlgebraicGeometry.Fiber Mathlib.AlgebraicGeometry.GluingOneHypercover Mathlib.AlgebraicGeometry.Gluing Mathlib.AlgebraicGeometry.IdealSheaf Mathlib.AlgebraicGeometry.Limits Mathlib.AlgebraicGeometry.Morphisms.AffineAnd Mathlib.AlgebraicGeometry.Morphisms.Affine Mathlib.AlgebraicGeometry.Morphisms.Basic Mathlib.AlgebraicGeometry.Morphisms.ClosedImmersion Mathlib.AlgebraicGeometry.Morphisms.Constructors Mathlib.AlgebraicGeometry.Morphisms.Etale Mathlib.AlgebraicGeometry.Morphisms.FinitePresentation Mathlib.AlgebraicGeometry.Morphisms.FiniteType Mathlib.AlgebraicGeometry.Morphisms.Finite Mathlib.AlgebraicGeometry.Morphisms.Flat Mathlib.AlgebraicGeometry.Morphisms.Integral Mathlib.AlgebraicGeometry.Morphisms.IsIso Mathlib.AlgebraicGeometry.Morphisms.OpenImmersion Mathlib.AlgebraicGeometry.Morphisms.Preimmersion Mathlib.AlgebraicGeometry.Morphisms.QuasiCompact Mathlib.AlgebraicGeometry.Morphisms.QuasiSeparated Mathlib.AlgebraicGeometry.Morphisms.RingHomProperties Mathlib.AlgebraicGeometry.Morphisms.Smooth Mathlib.AlgebraicGeometry.Morphisms.SurjectiveOnStalks Mathlib.AlgebraicGeometry.Morphisms.UnderlyingMap Mathlib.AlgebraicGeometry.Morphisms.UniversallyClosed Mathlib.AlgebraicGeometry.Morphisms.UniversallyInjective Mathlib.AlgebraicGeometry.Noetherian Mathlib.AlgebraicGeometry.PullbackCarrier Mathlib.AlgebraicGeometry.Pullbacks Mathlib.AlgebraicGeometry.ResidueField Mathlib.AlgebraicGeometry.Sites.BigZariski Mathlib.AlgebraicGeometry.Sites.Etale Mathlib.AlgebraicGeometry.Sites.MorphismProperty Mathlib.AlgebraicGeometry.SpreadingOut Mathlib.AlgebraicGeometry.Stalk Mathlib.CategoryTheory.Sites.CartesianClosed Mathlib.CategoryTheory.Sites.MayerVietorisSquare Mathlib.Topology.Sheaves.MayerVietoris |
23 |
3 filesMathlib.Algebra.Category.Ring.Under.Limits Mathlib.CategoryTheory.Abelian.Monomorphisms Mathlib.RingTheory.Flat.CategoryTheory |
24 |
10 filesMathlib.CategoryTheory.Galois.Action Mathlib.CategoryTheory.Galois.Basic Mathlib.CategoryTheory.Galois.Decomposition Mathlib.CategoryTheory.Galois.EssSurj Mathlib.CategoryTheory.Galois.Examples Mathlib.CategoryTheory.Galois.Full Mathlib.CategoryTheory.Galois.GaloisObjects Mathlib.CategoryTheory.Galois.IsFundamentalgroup Mathlib.CategoryTheory.Galois.Prorepresentability Mathlib.CategoryTheory.Galois.Topology |
25 |
18 filesMathlib.Algebra.Category.Grp.AB Mathlib.Algebra.Category.ModuleCat.AB Mathlib.AlgebraicGeometry.AffineScheme Mathlib.AlgebraicGeometry.Cover.MorphismProperty Mathlib.AlgebraicGeometry.Cover.Open Mathlib.AlgebraicGeometry.FunctionField Mathlib.AlgebraicGeometry.GammaSpecAdjunction Mathlib.AlgebraicGeometry.OpenImmersion Mathlib.AlgebraicGeometry.ProjectiveSpectrum.Basic Mathlib.AlgebraicGeometry.ProjectiveSpectrum.Scheme Mathlib.AlgebraicGeometry.Properties Mathlib.AlgebraicGeometry.Restrict Mathlib.AlgebraicGeometry.Sites.SmallAffineZariski Mathlib.CategoryTheory.Abelian.GrothendieckAxioms.Basic Mathlib.CategoryTheory.Abelian.GrothendieckAxioms.FunctorCategory Mathlib.CategoryTheory.Abelian.GrothendieckAxioms.Sheaf Mathlib.CategoryTheory.Abelian.GrothendieckAxioms.Types Mathlib.CategoryTheory.Abelian.GrothendieckCategory.Basic |
26 |
25 filesMathlib.Algebra.Category.ModuleCat.Biproducts Mathlib.Algebra.Category.ModuleCat.Free Mathlib.Algebra.Category.ModuleCat.Simple Mathlib.Algebra.Homology.ShortComplex.ConcreteCategory Mathlib.Algebra.Homology.ShortComplex.ExactFunctor Mathlib.Algebra.Homology.ShortComplex.ModuleCat Mathlib.Algebra.Module.PID Mathlib.Analysis.Fourier.FiniteAbelian.PontryaginDuality Mathlib.CategoryTheory.Abelian.Exact Mathlib.CategoryTheory.Abelian.Injective.Basic Mathlib.CategoryTheory.Abelian.Projective.Basic Mathlib.CategoryTheory.Abelian.Pseudoelements Mathlib.CategoryTheory.Abelian.Subobject Mathlib.CategoryTheory.Abelian.Yoneda Mathlib.CategoryTheory.Generator.Abelian Mathlib.CategoryTheory.Noetherian Mathlib.CategoryTheory.Preadditive.Schur Mathlib.CategoryTheory.Simple Mathlib.GroupTheory.FiniteAbelian.Basic Mathlib.GroupTheory.FiniteAbelian.Duality Mathlib.NumberTheory.DirichletCharacter.Orthogonality Mathlib.NumberTheory.LSeries.PrimesInAP Mathlib.NumberTheory.MulChar.Duality Mathlib.RingTheory.AdicCompletion.AsTensorProduct Mathlib.Topology.Category.Profinite.Nobeling |
27 |
3 filesMathlib.CategoryTheory.SmallObject.Basic Mathlib.CategoryTheory.SmallObject.IsCardinalForSmallObjectArgument Mathlib.Topology.CWComplex.Abstract.Basic |
34 |
Mathlib.Algebra.Category.Ring.Under.Basic Mathlib.Algebra.Homology.HomologicalComplexBiprod |
35 |
4 filesMathlib.Algebra.Category.Grp.Subobject Mathlib.Algebra.Category.ModuleCat.Subobject Mathlib.AlgebraicTopology.RelativeCellComplex.Basic Mathlib.CategoryTheory.SmallObject.TransfiniteCompositionLifting |
36 |
4 filesMathlib.Algebra.Homology.BifunctorAssociator Mathlib.Algebra.Homology.Monoidal Mathlib.CategoryTheory.Dialectica.Monoidal Mathlib.CategoryTheory.Generator.Sheaf |
39 |
3 filesMathlib.Algebra.Homology.HomologicalComplexLimits Mathlib.Algebra.Homology.Square Mathlib.CategoryTheory.Generator.HomologicalComplex |
41 |
Mathlib.CategoryTheory.Closed.Ideal |
42 |
3 filesMathlib.Algebra.Homology.Additive Mathlib.Algebra.Homology.Embedding.Restriction Mathlib.Algebra.Homology.Linear |
43 |
4 filesMathlib.CategoryTheory.Generator.Preadditive Mathlib.CategoryTheory.Localization.FiniteProducts Mathlib.CategoryTheory.Preadditive.Injective.LiftingProperties Mathlib.CategoryTheory.Preadditive.Projective.LiftingProperties |
44 |
Mathlib.CategoryTheory.Adjunction.AdjointFunctorTheorems Mathlib.CategoryTheory.Sites.MorphismProperty |
45 |
9 filesMathlib.AlgebraicTopology.RelativeCellComplex.AttachCells Mathlib.CategoryTheory.Limits.Preserves.Shapes.Square Mathlib.CategoryTheory.Limits.Shapes.Pullback.Square Mathlib.CategoryTheory.MorphismProperty.LiftingProperty Mathlib.CategoryTheory.MorphismProperty.Limits Mathlib.CategoryTheory.MorphismProperty.OverAdjunction Mathlib.CategoryTheory.MorphismProperty.Representable Mathlib.CategoryTheory.MorphismProperty.RetractArgument Mathlib.CategoryTheory.SmallObject.Construction |
46 |
5 filesMathlib.Algebra.Homology.BifunctorFlip Mathlib.Algebra.Homology.Bifunctor Mathlib.Algebra.Homology.TotalComplexSymmetry Mathlib.Algebra.Homology.TotalComplex Mathlib.CategoryTheory.Limits.Shapes.Diagonal |
48 |
Mathlib.CategoryTheory.Generator.Presheaf |
49 |
Mathlib.CategoryTheory.Generator.Basic Mathlib.CategoryTheory.Subobject.Comma |
51 |
Mathlib.CategoryTheory.Subpresheaf.Subobject |
52 |
Mathlib.CategoryTheory.Subobject.HasCardinalLT |
61 |
Mathlib.Algebra.Category.Ring.Adjunctions Mathlib.CategoryTheory.Dialectica.Basic |
68 |
8 filesMathlib.Algebra.Homology.Augment Mathlib.Algebra.Homology.DifferentialObject Mathlib.Algebra.Homology.Double Mathlib.Algebra.Homology.Embedding.Boundary Mathlib.Algebra.Homology.Functor Mathlib.Algebra.Homology.HomologicalBicomplex Mathlib.Algebra.Homology.HomologicalComplex Mathlib.Algebra.Homology.Single |
70 |
3 filesMathlib.Algebra.Homology.ImageToKernel Mathlib.CategoryTheory.Subobject.Lattice Mathlib.CategoryTheory.Subobject.Limits |
75 |
Mathlib.CategoryTheory.Subobject.FactorThru |
84 |
6 filesMathlib.CategoryTheory.Subobject.Basic Mathlib.CategoryTheory.Subobject.MonoOver Mathlib.CategoryTheory.Subobject.Presheaf Mathlib.CategoryTheory.Subobject.Types Mathlib.CategoryTheory.Subobject.WellPowered Mathlib.CategoryTheory.Subterminal |
203 |
Mathlib.CategoryTheory.Comma.Over.Pullback |
229 |
Declarations diff
+ Functor.toOverTerminal
+ Limits.baseChange
+ Over.sigmaReindexNatIsoTensorLeft
+ Over.sigmaReindexNatIsoTensorLeft_hom_app
+ Reindex
+ Sigma
+ baseChange
+ counit_app
+ counit_app_pullback_fst
+ counit_app_pullback_snd
+ counit_app_pullback_snd_eq_homMk
+ equivOverTerminal
+ equivalenceRightAdjointIsoInverse
+ forgetAdjStar
+ fst
+ fstProj
+ fstProj_sigma_fst
+ homEquiv
+ homEquiv_symm
+ isBinaryProductSigmaReindex
+ iteratedSliceBackward_forget
+ map
+ mapAdjunction
+ map_comp_fst
+ map_homMk_left
+ map_left
+ overHomMk
+ sigmaReindexIsoProd
+ sigmaReindexIsoProdMk
+ sigmaReindexIsoProd_hom_comp_fst
+ sigmaReindexIsoProd_hom_comp_snd
+ sigmaSymmetryIso
+ sndProj
+ starIsoToOverTerminal
+ starIteratedSliceForwardIsoPullback
+ starPullbackIsoStar
+ star_map
+ symmetryObjIso
+ symmetry_hom
+ unit_app
++ hom
++- star
You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>
## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>The doc-module for script/declarations_diff.sh contains some details about this script.
No changes to technical debt.
You can run this locally as
./scripts/technical-debt-metrics.sh pr_summary
- The
relativevalue is the weighted sum of the differences with weight given by the inverse of the current value of the statistic. - The
absolutevalue is therelativevalue divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).
…ian-closed-categories
For monoidal structure
…ian-closed-categories
`IsConnected` in Mathlib.CategoryTheory.Galois.Examples refers to docs#CategoryTheory.PreGaloisCategory.IsConnected. But, this PR changes the import tree such that now docs#CategoryTheory.IsConnected is available in Mathlib.CategoryTheory.Galois.Examples and now Lean interprets the IsConnected as CategoryTheory.IsConnected and no longer as CategoryTheory.PreGaloisCategory.IsConnected.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
| lemma inv_obj (F : C ⥤ D) [F.IsEquivalence] (X : D) : (F.inv.obj X) = F.objPreimage X := by rfl | ||
|
|
||
| lemma inv_map (F : C ⥤ D) [F.IsEquivalence] {X Y : D} (f : X ⟶ Y) : | ||
| F.inv.map f = F.preimage ((F.objObjPreimageIso X).hom ≫ f ≫ (F.objObjPreimageIso Y).inv) := by | ||
| rfl | ||
|
|
||
| lemma asEquivalence_inverse (F : C ⥤ D) [F.IsEquivalence] : (F.asEquivalence).inverse = F.inv := by | ||
| rfl |
There was a problem hiding this comment.
This should not be in this file, and I am quite sure we can avoid providing too much API for Functor.asEquivalence, which should be considered as a black box equivalence of categories with a prescribed .functor field.
In order to get more focussed reviews, could you extract a PR mostly containing the first chunk of modifications to this file Adjunction.Over. Actually, I am not completely convinced that some definitions (including existing ones) are in the right location.
Then, I would suggest you start with a PR which just moves the file CategoryTheory.Comma.Over to Category.Comma.Over.Basic, Comma.OverClass to Comma.Over.OverClass, and the existing content of Adjunction.Over to Comma.Over.Pullback.
There was a problem hiding this comment.
Re reorganizing and moving Over files: I very much agree with what you proposed. Then I do another PR about that.
Re Functor.asEquivalence: I originally put them in CategoryTheory.Equivalence file, would that be a better choice?
But mainly, in LCCCs, we construct natural isomorphisms between pushforwards as mate of corresponding nat isos of left adjoints. The API
Equivalence.asEquivalenceInverse (e : C ≌ D) :
(e.functor).asEquivalence.inverse ≅ e.inverse := by
was necessary to prove star (⊤_ C) ≅ Functor.toOverTerminal C using this mate philosophy which happens consistently in the LCCC development.
It might be possible to not use this philosophy in constructing star (⊤_ C) ≅ Functor.toOverTerminal C.
But, I think it might be useful to know in general that if promote an equivalence to an adjoint equivalence and the inverse inv remains the same as inverse of original equivalence. I couldn't prove this fact without Equivalence.asEquivalenceInverse, but maybe there is a way I missed.
Anyhow, I think the important point is the reorganization which I'll do after I wake up. :)
There was a problem hiding this comment.
…ian-closed-categories
…ian-closed-categories
asked by the reviewer
…ian-closed-categories
|
Joël asked if for the purpose of a more focussed reviews, I could extract a PR mostly containing the first chunk of modifications. This is now done, and the PR message at the top is accordingly updated. In particular, there will be not changes to file The next PR will define the section functor depending on the current PR! This will be used in the PR after that which adds the new folder And then after that separate PRs for the following stuff:
|
…ian-closed-categories
|
This pull request has conflicts, please merge |
This PR defines the basic preliminaries for defining locally cartesian closed categories (LCCCs). In particular, using the calculus of mates we define certain natural isomorphisms involving
Over.starandOver.pullbackwhich will be crucial in defining the right adjoint to the pullback functor in the development of LCCCs.