Skip to content

feat(CategoryTheory): Basics of Locally Cartesian Closed Categories#30375

Open
sinhp wants to merge 210 commits intoleanprover-community:masterfrom
sinhp:lccc-basic
Open

feat(CategoryTheory): Basics of Locally Cartesian Closed Categories#30375
sinhp wants to merge 210 commits intoleanprover-community:masterfrom
sinhp:lccc-basic

Conversation

@sinhp
Copy link
Copy Markdown
Collaborator

@sinhp sinhp commented Oct 9, 2025

Supersedes #22321

This PR defines locally cartesian closed categories in terms of existence of the pushforward functors (right adjoint to the pullback functor) for all morphisms. We develop basic API and prove the following:

  1. Existence of the pushforward functors is equivalent to cartesian closed slices.
  2. Any locally cartesian closed category with a terminal object is cartesian closed.
  3. The slices of a locally cartesian closed category are locally cartesian closed.

Open in Gitpod

@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Oct 9, 2025
@github-actions github-actions bot added large-import Automatically added label for PRs with a significant increase in transitive imports t-category-theory Category theory labels Oct 9, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented Oct 9, 2025

PR summary 8b49178e5c

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.CategoryTheory.LocallyCartesianClosed.ExponentiableMorphism (new file) 492
Mathlib.CategoryTheory.LocallyCartesianClosed.Sections (new file) 498
Mathlib.CategoryTheory.LocallyCartesianClosed.Basic (new file) 500

Declarations diff

+ ChosenPushforwards
+ ExponentiableMorphism
+ IsExponentiable
+ LocallyCartesianClosed
+ OverMkHom
+ binaryFan
+ binaryFanIsBinaryProduct
+ binaryFan_fst
+ binaryFan_pt
+ binaryFan_snd
+ cartesianClosed
+ cartesianClosedOver
+ cartesianMonoidalCategory
+ chosenPullbacksOver
+ chosenPushforwards
+ coev
+ coev_ev
+ comp
+ coreHomEquivToOverSections
+ curryId
+ ev
+ ev_coev
+ exponentiableMorphism
+ exponentiableOverMk
+ fst'_naturality
+ homEquiv_apply_eq
+ homEquiv_symm_apply_eq
+ id
+ instance (f : I ⟶ J) : ExponentiableMorphism f
+ instance : ChosenPullbacksAlong (Over.mk f).hom := by
+ instance [CartesianMonoidalCategory C] [ChosenPullbacks C] (X : C) [Exponentiable X] :
+ isExponentiable
+ iteratedSliceEquivOverMapIso
+ iteratedSliceForwardNaturalityIso
+ mapPullbackIsoProd
+ mapPullbackIsoProd_hom
+ ofCartesianClosedOver
+ ofChosenPushforwards
+ ofExponentiable
+ overLocallyCartesianClosed
+ pullbackMapNatIsoTensorRight
+ pullbackMapNatIsoTensorRight_hom_app
+ pullback_map_left_fst
+ pullback_map_left_snd
+ pushforwardCompIso
+ pushforwardCurry
+ pushforwardIdIso
+ pushforwardUncurry
+ pushforward_curry_uncurry
+ pushforward_uncurry_curry
+ sections
+ sectionsCurry
+ sectionsMap
+ sectionsMap_comp
+ sectionsMap_id
+ sectionsObj
+ sectionsUncurry
+ sections_curry_uncurry
+ sections_uncurry_curry
+ toOverSectionsAdj
+ toUnit_comp_curryId

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 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).

@sinhp sinhp force-pushed the lccc-basic branch 2 times, most recently from d898479 to a242226 Compare October 9, 2025 16:06
@sinhp sinhp force-pushed the lccc-basic branch 2 times, most recently from fd440d8 to 5839f0a Compare October 9, 2025 16:35
@mathlib4-merge-conflict-bot mathlib4-merge-conflict-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 Oct 10, 2025
@mathlib4-merge-conflict-bot
Copy link
Copy Markdown
Collaborator

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

@mathlib4-merge-conflict-bot mathlib4-merge-conflict-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 Oct 11, 2025
@github-actions github-actions bot removed the large-import Automatically added label for PRs with a significant increase in transitive imports label Oct 11, 2025
sinhp and others added 7 commits December 19, 2025 13:24
Co-authored-by: Robin Carlier <57142648+robin-carlier@users.noreply.github.com>
Co-authored-by: Robin Carlier <57142648+robin-carlier@users.noreply.github.com>
Co-authored-by: Robin Carlier <57142648+robin-carlier@users.noreply.github.com>
Co-authored-by: Robin Carlier <57142648+robin-carlier@users.noreply.github.com>
Co-authored-by: Robin Carlier <57142648+robin-carlier@users.noreply.github.com>
…long.lean

Co-authored-by: Robin Carlier <57142648+robin-carlier@users.noreply.github.com>
@mathlib4-merge-conflict-bot mathlib4-merge-conflict-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 Dec 19, 2025
@mathlib4-merge-conflict-bot
Copy link
Copy Markdown
Collaborator

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

@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 Dec 19, 2025
@mathlib4-merge-conflict-bot
Copy link
Copy Markdown
Collaborator

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

@mathlib4-merge-conflict-bot mathlib4-merge-conflict-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 Jan 2, 2026
@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot removed the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Jan 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) t-category-theory Category theory

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants