Skip to content

feat(Algebra/Category): P.Under ⊤ R has finite limits if P is stable under finite products and equalizers#36919

Open
chrisflav wants to merge 9 commits intoleanprover-community:masterfrom
chrisflav:under-limits-ring
Open

feat(Algebra/Category): P.Under ⊤ R has finite limits if P is stable under finite products and equalizers#36919
chrisflav wants to merge 9 commits intoleanprover-community:masterfrom
chrisflav:under-limits-ring

Conversation

@chrisflav chrisflav added t-category-theory Category theory WIP Work in progress labels Mar 20, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 20, 2026

PR summary 16cc871c27

Import changes for modified files

Dependency changes

File Base Count Head Count Change
Mathlib.CategoryTheory.Limits.Constructions.Over.Connected 696 699 +3 (+0.43%)
Mathlib.CategoryTheory.Limits.Constructions.Over.Basic 725 727 +2 (+0.28%)
Mathlib.CategoryTheory.Limits.MorphismProperty 742 744 +2 (+0.27%)
Import changes for all files
Files Import difference
49 files Mathlib.Algebra.Category.CommAlgCat.FiniteType Mathlib.Algebra.Category.ModuleCat.Sheaf.Generators Mathlib.Algebra.Category.ModuleCat.Sheaf.PullbackContinuous Mathlib.Algebra.Category.ModuleCat.Sheaf.PullbackFree Mathlib.Algebra.Category.ModuleCat.Sheaf.Quasicoherent Mathlib.AlgebraicGeometry.AffineSpace Mathlib.AlgebraicGeometry.AffineTransitionLimit Mathlib.AlgebraicGeometry.AlgClosed.Basic Mathlib.AlgebraicGeometry.Artinian Mathlib.AlgebraicGeometry.Cover.Over Mathlib.AlgebraicGeometry.Geometrically.Integral Mathlib.AlgebraicGeometry.Geometrically.Reduced Mathlib.AlgebraicGeometry.Group.Abelian Mathlib.AlgebraicGeometry.Group.Smooth Mathlib.AlgebraicGeometry.IdealSheaf.IrreducibleComponent Mathlib.AlgebraicGeometry.Modules.Sheaf Mathlib.AlgebraicGeometry.Modules.Tilde Mathlib.AlgebraicGeometry.Morphisms.Etale Mathlib.AlgebraicGeometry.Morphisms.Finite Mathlib.AlgebraicGeometry.Morphisms.FormallyUnramified Mathlib.AlgebraicGeometry.Morphisms.Immersion Mathlib.AlgebraicGeometry.Morphisms.Integral Mathlib.AlgebraicGeometry.Morphisms.Proper Mathlib.AlgebraicGeometry.Morphisms.QuasiFinite Mathlib.AlgebraicGeometry.Morphisms.Separated Mathlib.AlgebraicGeometry.Morphisms.SmoothFiber Mathlib.AlgebraicGeometry.Morphisms.Smooth Mathlib.AlgebraicGeometry.Morphisms.WeaklyEtale Mathlib.AlgebraicGeometry.Noetherian Mathlib.AlgebraicGeometry.Normalization Mathlib.AlgebraicGeometry.PointsPi Mathlib.AlgebraicGeometry.ProjectiveSpectrum.Proper Mathlib.AlgebraicGeometry.QuasiAffine Mathlib.AlgebraicGeometry.RationalMap Mathlib.AlgebraicGeometry.Sites.ElladicCohomology Mathlib.AlgebraicGeometry.Sites.Etale Mathlib.AlgebraicGeometry.Sites.Proetale Mathlib.AlgebraicGeometry.Sites.Small Mathlib.AlgebraicGeometry.SpreadingOut Mathlib.AlgebraicGeometry.ValuativeCriterion Mathlib.AlgebraicGeometry.ZariskisMainTheorem Mathlib.CategoryTheory.Comma.Over.StrictInitial Mathlib.CategoryTheory.MorphismProperty.Comma Mathlib.CategoryTheory.MorphismProperty.OverAdjunction Mathlib.CategoryTheory.Sites.Point.IsMonoidalW Mathlib.CategoryTheory.Sites.Point.Monoidal Mathlib.CategoryTheory.Sites.Point.Over Mathlib.Condensed.Light.InternallyProjective Mathlib.Condensed.Light.Monoidal
1
15 files Mathlib.Algebra.Category.ModuleCat.Sheaf.PushforwardContinuous Mathlib.AlgebraicTopology.ModelCategory.Over Mathlib.CategoryTheory.Limits.Constructions.Over.Basic Mathlib.CategoryTheory.Limits.MorphismProperty Mathlib.CategoryTheory.MorphismProperty.CommaSites Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime Mathlib.CategoryTheory.Sites.Descent.DescentData Mathlib.CategoryTheory.Sites.Descent.IsPrestack Mathlib.CategoryTheory.Sites.Descent.IsStack Mathlib.CategoryTheory.Sites.Descent.Precoverage Mathlib.CategoryTheory.Sites.Monoidal Mathlib.CategoryTheory.Sites.Over Mathlib.CategoryTheory.Sites.PseudofunctorSheafOver Mathlib.CategoryTheory.Sites.SheafHom Mathlib.CategoryTheory.Sites.SubcanonicalOver
2
3 files Mathlib.CategoryTheory.Adhesive.Over Mathlib.CategoryTheory.Limits.Constructions.Over.Connected Mathlib.CategoryTheory.Limits.Shapes.Pullback.EquifiberedLimits
3
Mathlib.Algebra.Category.Ring.Under.Property (new file) 2661

Declarations diff

+ CreatesFiniteProducts.mk'
+ HasEqualizers
+ HasFiniteProducts
+ StructuredArrow.closedUnderColimitsOfShape_discrete_empty
+ StructuredArrow.isClosedUnderLimitsOfShape
+ Under.closedUnderColimitsOfShape_discrete_empty
+ Under.closedUnderColimitsOfShape_pushout
+ Under.createsEqualizersForget
+ Under.createsFiniteLimitsForget
+ Under.createsFiniteProductsForget
+ Under.hasEqualizers
+ Under.hasFiniteLimits
+ Under.hasFiniteProducts
+ Under.property_limit_of_hasFiniteProducts_of_hasEqualizers
+ createsColimitsOfShapeForgetOfIsConnected
+ createsLimitsOfShape_walkingCospan
+ hasColimitsOfShape_of_isConnected
+ hasColimitsOfShape_opposite_iff
+ hasColimitsOfShape_opposite_opposite_iff
+ hasColimitsOfSize_opposite_iff
+ hasFiniteColimits_opposite_iff
+ hasFiniteLimits_opposite_iff
+ hasFiniteWidePullbacks_opposite_iff
+ hasFiniteWidePushouts_opposite_iff
+ hasLimitsOfShape_opposite_iff
+ hasLimitsOfShape_opposite_opposite_iff
+ hasLimitsOfSize_opposite_iff
+ hasWidePullbacks_opposite_iff
+ hasWidePushouts_opposite_iff
+ instance (priority := 900) [HasPushouts T] [P.IsStableUnderComposition]
+ instance : CreatesFiniteColimits (Under.forget P ⊤ X)
+ instance : PreservesFiniteColimits (Under.forget P ⊤ X)
+ instance [G.Faithful] [G.Full] {Y : A} : HasInitial (StructuredArrow (G.obj Y) G)
+ instance [HasFiniteWidePullbacks C] : HasFiniteWidePushouts Cᵒᵖ := by
+ instance [HasFiniteWidePushouts C] : HasFiniteWidePullbacks Cᵒᵖ := by
+ instance [HasFiniteWidePushouts T] : HasFiniteColimits (P.Under ⊤ X)
+ instance [HasWidePullbacks.{w} C] : HasWidePushouts.{w} Cᵒᵖ := by
+ instance [HasWidePushouts.{w} C] : HasWidePullbacks.{w} Cᵒᵖ := by
+ instance [IsConnected J] {B : D} : CreatesColimitsOfShape J (StructuredArrow.proj B K)
+ instance [IsConnected J] {B : D} : PreservesColimitsOfShape J (StructuredArrow.proj B K) := by
+ instance [P.ContainsIdentities] (Y : P.Under ⊤ X) :
+ instance [P.ContainsIdentities] : HasInitial (P.Under ⊤ X)
+ instance [P.ContainsIdentities] [P.RespectsIso] :
+ instance {B : C} [HasFiniteWidePushouts C] : HasFiniteColimits (Under B) := by
+ instance {B : C} [HasWidePushouts.{w} C] : HasColimitsOfSize.{w, w} (Under B) := by
+ instance {B : D} [IsConnected J] [HasColimitsOfShape J C] :
+ instance {X : T} : HasInitial (Under X) := Under.mkIdInitial.hasInitial
+ inverseImage_op_overObj
+ inverseImage_op_underObj
+ mkIdInitial
+ preservesColimitsOfShape_forget_of_isConnected
+ structuredArrow_iso_iff
+ under_iso_iff

You can run this locally as follows
## summary with just the declaration names:
./scripts/pr_summary/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/pr_summary/declarations_diff.sh long <optional_commit>

The doc-module for scripts/pr_summary/declarations_diff.sh contains some details about this script.


Increase in tech debt: (relative, absolute) = (7.00, 0.00)
Current number Change Type
6463 7 backward.isDefEq.respectTransparency

Current commit ea5ed7a468
Reference commit 16cc871c27

You can run this locally as

./scripts/reporting/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@mathlib-dependent-issues mathlib-dependent-issues bot added blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) and removed blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) labels Mar 20, 2026
@mathlib-dependent-issues mathlib-dependent-issues bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Apr 1, 2026
@mathlib-dependent-issues mathlib-dependent-issues bot removed the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Apr 9, 2026
@mathlib-merge-conflicts
Copy link
Copy Markdown

This pull request has conflicts, please merge master and resolve them.

@mathlib-merge-conflicts mathlib-merge-conflicts bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Apr 9, 2026
@github-actions github-actions bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Apr 13, 2026
@mathlib-dependent-issues mathlib-dependent-issues bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Apr 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) t-category-theory Category theory WIP Work in progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant