feat(CategoryTheory): presheaves of types which preserve a limit#32725
feat(CategoryTheory): presheaves of types which preserve a limit#32725joelriou wants to merge 6 commits intoleanprover-community:masterfrom
Conversation
PR summary 42a89fc2b9Import changes for modified filesNo significant changes to the import graph Import changes for all files
|
| Current number | Change | Type |
|---|---|---|
| 6538 | 3 | backward.isDefEq.respectTransparency |
Current commit d666851284
Reference commit 42a89fc2b9
You can run this locally as
./scripts/reporting/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).
| noncomputable def coconeCompShrinkYonedaHomEquiv : | ||
| (c'.pt ⟶ P) ≃ (F ⋙ P).sections where | ||
| toFun f := | ||
| { val j := shrinkYonedaEquiv (c'.ι.app (op j) ≫ f) | ||
| property {X X'} g := by | ||
| have h₁ := c'.w g.op | ||
| dsimp at h₁ ⊢ | ||
| rw [← h₁, Category.assoc] | ||
| conv_rhs => rw [shrinkYonedaEquiv_comp] | ||
| rw [shrinkYonedaEquiv_shrinkYoneda_map] | ||
| apply map_shrinkYonedaEquiv } | ||
| invFun s := hc'.desc (Cocone.mk _ | ||
| { app j := shrinkYonedaEquiv.symm (s.val j.unop) | ||
| naturality j₁ j₂ f := by | ||
| rw [← s.property f.unop] | ||
| dsimp | ||
| rw [shrinkYonedaEquiv_symm_map, Category.comp_id] }) | ||
| left_inv f := hc'.hom_ext (by simp) | ||
| right_inv u := by ext; simp |
There was a problem hiding this comment.
a few questions/suggestions for this one
- This definition should be in an other file: I think
CategoryTheory.Limits.Types.Yonedais a good target (because it contains the similar construction I link below). - This is essentially (a variation on) the
LocallySmall+shrinkYonedaversion of the existing CategoryTheory.Limits.compCoyonedaSectionsEquiv, so the docstring should at least reference this? (Though it is not the exact same construction). - To mimic the pattern from
CategoryTheory.Limits.compCoyonedaSectionsEquiv, perhaps this should instead first be stated as an equivalence with natural transformations from the constant functor (droppingc'from the parameters) to a composition withshrinkYoneda, and then maybe for the result in this file you can work with composing this with an equivalence between morphisms out ofc'.ptand natural transformations out of a constant functor in that case?
There was a problem hiding this comment.
Thanks for the suggestion, but I do not see any relation with compCoyonedaSectionsEquiv. As IsColimit appears in all the definitions, I do not think it would make sense to break the cocone c' into two variables.
There was a problem hiding this comment.
Okay, but can you still move that part (say up to l. 83) to the file CategoryTheory.Limits.Types.Yoneda (or a new file under CategoryTheory/Limits/Types if there are import increase issues)? It has pretty low discoverability within ObjectProperty/.
….lean Co-authored-by: Robin Carlier <57142648+robin-carlier@users.noreply.github.com>
robin-carlier
left a comment
There was a problem hiding this comment.
I still have a nitpick about the location of the result relating sections and morphisms from the cocone point, but otherwise LGTM.
| noncomputable def coconeCompShrinkYonedaHomEquiv : | ||
| (c'.pt ⟶ P) ≃ (F ⋙ P).sections where | ||
| toFun f := | ||
| { val j := shrinkYonedaEquiv (c'.ι.app (op j) ≫ f) | ||
| property {X X'} g := by | ||
| have h₁ := c'.w g.op | ||
| dsimp at h₁ ⊢ | ||
| rw [← h₁, Category.assoc] | ||
| conv_rhs => rw [shrinkYonedaEquiv_comp] | ||
| rw [shrinkYonedaEquiv_shrinkYoneda_map] | ||
| apply map_shrinkYonedaEquiv } | ||
| invFun s := hc'.desc (Cocone.mk _ | ||
| { app j := shrinkYonedaEquiv.symm (s.val j.unop) | ||
| naturality j₁ j₂ f := by | ||
| rw [← s.property f.unop] | ||
| dsimp | ||
| rw [shrinkYonedaEquiv_symm_map, Category.comp_id] }) | ||
| left_inv f := hc'.hom_ext (by simp) | ||
| right_inv u := by ext; simp |
There was a problem hiding this comment.
Okay, but can you still move that part (say up to l. 83) to the file CategoryTheory.Limits.Types.Yoneda (or a new file under CategoryTheory/Limits/Types if there are import increase issues)? It has pretty low discoverability within ObjectProperty/.
|
This pull request has conflicts, please merge |
|
This PR/issue depends on:
|
Let
F : J ⥤ Cᵒᵖbe a functor. We show that a presheafP : Cᵒᵖ ⥤ Type wpreserves the limit ofFiffPis a local object with respect to a suitable family of morphisms inCᵒᵖ ⥤ Type w(this family contains1or0morphism depending on whether the limit ofFexists or not).