Skip to content

feat(CategoryTheory/Limits/Shapes/Pullback/Categorical): pseudofunctoriality structure of categorical pullback squares #27391

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 102 commits into
base: master
Choose a base branch
from

Conversation

robin-carlier
Copy link
Collaborator

@robin-carlier robin-carlier commented Jul 23, 2025

Using pseudofunctoriality of the construction CatCommSqOver, we show that categorical pullback squares have pseudofunctorial-like structures: given a CatCommSq T L R B and a CatPullbackSq T' L' R' B', and a CatCospanTransform R B R' B', there is a
functor CatPullbackSq.functorOfTransform between the top left corners of the two squares. We give CatCommSq instances that relates this functor with other constructions such as CatCommSqOver.transform.
Similarly, we construct CatPullbackSq.functorOfTransform₂, that maps morphisms of CatCospanTransforms to natural transformations. Finally, we show that functorOfTransform respects identities and compositions.

We do not yet prove that all of this data satisfies all the expected properties of pseudofunctors: this will be the content of a follow-up PR.


Open in Gitpod

robin-carlier and others added 30 commits June 24, 2025 17:40
Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>
@github-actions github-actions bot added the t-category-theory Category theory label Jul 23, 2025
Copy link

github-actions bot commented Jul 23, 2025

PR summary 9c18b42ca8

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.CategoryTheory.Limits.Shapes.Pullback.Categorical.Basic 1
Mathlib.CategoryTheory.Limits.Shapes.Pullback.Categorical.Square (new file) 320

Declarations diff

+ CatPullbackSquare
+ IsCatPullbackSquare
+ Iso.hom_inv_id_app_fst_app
+ Iso.hom_inv_id_app_snd_app
+ Iso.hom_inv_id_fst_app
+ Iso.hom_inv_id_snd_app
+ Iso.inv_hom_id_app_fst_app
+ Iso.inv_hom_id_app_snd_app
+ Iso.inv_hom_id_fst_app
+ Iso.inv_hom_id_snd_app
+ catPullbackSquare
+ counitIsoAppFst
+ counitIsoAppSnd
+ equivalence
+ functor
+ functorEquiv
+ functorEquivFunctorIdIso
+ functorEquivFunctorWhiskeringFunctorOfTransformObjSquare
+ functorEquivInverseOfSquareIso
+ functorEquivInverseTransformObjSquare
+ functorEquivInverseWhiskeringIsoFst
+ functorEquivInverseWhiskeringIsoSnd
+ functorEquivInverse_map_app_fst
+ functorEquivInverse_map_app_snd
+ functorEquiv_counitInv_functor_comp_fst_app
+ functorEquiv_counitInv_functor_comp_snd_app
+ functorEquiv_functor_UnitIso_comp_fst_app
+ functorEquiv_functor_UnitIso_comp_snd_app
+ functorOfTransform
+ functorOfTransformObjComp
+ functorOfTransformObjComp_hom_app_fst
+ functorOfTransformObjComp_hom_app_snd
+ functorOfTransformObjComp_inv_app_fst
+ functorOfTransformObjComp_inv_app_snd
+ functorOfTransformObjFstSquare
+ functorOfTransformObjId
+ functorOfTransformObjSndSquare
+ functorOfTransform_map_app_fst
+ functorOfTransform_map_app_snd
+ functorOfTransform_obj_map_fst
+ functorOfTransform_obj_map_snd
+ instance (F : C₁ ⥤ C₂) (G : C₃ ⥤ C₂) :
+ instance :
+ instance : (inverse T L R B).IsEquivalence
+ instance : Inhabited (CatCommSqOver F G <| F ⊡ G)
+ inverse
+ isCatPullbackSquare_iff_isEquivalence_toFunctorToCategoricalPullback
+ ofSquare
+ precompose
+ precomposeEquivalenceInverseIsoDefault
+ precomposeObjComp
+ precomposeObjId
+ precomposeObjTransformObjSquare
+ precomposeObjTransformObjSquare_iso_hom_comp
+ precomposeObjTransformObjSquare_iso_hom_id
+ precomposeObjTransformObjSquare_iso_hom_naturality₂
+ precomposeToFunctorToCategoricalPullbackSquare
+ precompose_map_associator
+ precompose_map_leftUnitor
+ precompose_map_rightUnitor
+ precompose_map_whiskerLeft
+ precompose_map_whiskerRight
+ transform
+ transformObjComp
+ transformObjId
+ transformObjPrecomposeObjSquare
+ transformObjPrecomposeObjSquare_iso_hom_id
+ transformObjPrecomposeObjSquare_iso_hom_naturality₂
+ transformPrecomposeObjSquare_iso_hom_comp
+ transform_map_associator
+ transform_map_leftUnitor
+ transform_map_rightUnitor
+ transform_map_whiskerLeft
+ transform_map_whiskerRight
+ unitIso
+ whiskeringLeftFunctorEquivFunctorSquare

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

@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 Jul 23, 2025
@mathlib4-dependent-issues-bot
Copy link
Collaborator

@robin-carlier robin-carlier removed the WIP Work in progress label Jul 26, 2025
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants