Skip to content
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

[Merged by Bors] - feat(category_theory/sites/*): Dense subsite #9694

Closed
wants to merge 28 commits into from

Conversation

erdOne
Copy link
Member

@erdOne erdOne commented Oct 13, 2021

Defined cover_dense functors as functors into sites such that each object can be covered by images of the functor.
Proved that for a cover_dense functor G, any morphisms of presheaves G ⋙ ℱ ⟶ G ⋙ ℱ' can be glued into a
morphism ℱ ⟶ ℱ'.


Open in Gitpod

@github-actions github-actions bot added the blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. label Oct 13, 2021
@erdOne erdOne added the awaiting-review The author would like community review of the PR label Oct 13, 2021
@github-actions github-actions bot added the merge-conflict Please `git merge origin/master` then a bot will remove this label. label Oct 13, 2021
@b-mehta
Copy link
Collaborator

b-mehta commented Oct 13, 2021

Since you are working in this area, I should point out to you the known errata in Johnstone's definitions in this area: https://ncatlab.org/nlab/show/dense+sub-site#problems_with_another_definition, and further that the definitions of the comparison lemma are different across the Elephant, nLab, stacks, EGA and Caramello's topos text. My suggestion is to make sure you have a compiling version of the Comparison Lemma before merging too many definitions.

@github-actions github-actions bot removed the merge-conflict Please `git merge origin/master` then a bot will remove this label. label Oct 18, 2021
@github-actions github-actions bot removed the blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. label Oct 18, 2021
@jcommelin
Copy link
Member

@erdOne I don't know this part of category theory too well. Bhavik's suggestion sounds like a good one. Can you please point out once you have a sorry-free proof of that comparison lemma (and where to find it)?

@erdOne
Copy link
Member Author

erdOne commented Oct 25, 2021

There is a sorry free proof of the comparison lemma over at #9785

/--
Cover-dense functors induces an equivalence of categories of sheaves.
This is known as the comparison lemma. It requires that the sites are small and the target category
is complete.
-/
noncomputable
def Sheaf_iso (H : cover_dense K G) [has_limits A] : Sheaf (H.induced_topology) A ≌ Sheaf K A :=
Sheaf_iso_of_dense_cover_preserving_cover_lifting A H
(induced_topology_cover_preserving G K (λ _ T, H.functor_pullback_pushforward_covering T))
(induced_topology_cover_lifting G K (λ _ T, H.functor_pullback_pushforward_covering T))

src/category_theory/sites/dense_subsite.lean Outdated Show resolved Hide resolved
src/category_theory/sites/dense_subsite.lean Outdated Show resolved Hide resolved
src/category_theory/sites/dense_subsite.lean Outdated Show resolved Hide resolved
src/category_theory/sites/dense_subsite.lean Outdated Show resolved Hide resolved
src/category_theory/sites/dense_subsite.lean Outdated Show resolved Hide resolved
src/category_theory/sites/dense_subsite.lean Outdated Show resolved Hide resolved
erdOne and others added 2 commits November 4, 2021 02:59
Co-authored-by: Bhavik Mehta <bhavikmehta8@gmail.com>
@alreadydone
Copy link
Collaborator

alreadydone commented Nov 4, 2021

Hi @erdOne , thanks for the work. I now understand how to use this PR to extend a B-sheaf hom (I think I just hadn't read the code carefully enough), and would like to use this in my Gamma-Spec adjunction PR instead of my basis_le approach. I only have two issues with this PR:

  • Can you just wrap sheaf_hom_restrict_eq and sheaf_hom_eq into an equiv with to_fun = sheaf_hom H and inv_fun = whisker_left G.op ? Then I wouldn't need an extensionality lemma and can directly apply the injectivity of the inverse, for example.

  • Can you remove the assumption that ℱ is a sheaf? In my work in the topological case I only needed ℱ' to be a sheaf, and I see in app_hom you only used ℱ'.property, so it shouldn't be too hard to remove?

In addition, I would like to develop API in the situation of topological spaces, giving the hom extension equiv for (pre)sheaves there, and show that a functor into opens X is cover_dense iff its image is a basis. These should probably be put under topology/sheaves and is maybe out of scope of this PR.

@alreadydone
Copy link
Collaborator

alreadydone commented Nov 8, 2021

lgtm! My Gamma-Spec adjunction work #9802 has been refactored to use this PR so I'm also eager to get this merged.

@erdOne erdOne added awaiting-review The author would like community review of the PR and removed awaiting-author A reviewer has asked the author a question or requested changes labels Nov 11, 2021
@erdOne erdOne added this to Pending review in Algebraic geometry Nov 11, 2021
erdOne and others added 3 commits November 11, 2021 17:35
Co-authored-by: Johan Commelin <johan@commelin.net>
Co-authored-by: Johan Commelin <johan@commelin.net>
src/category_theory/sites/dense_subsite.lean Outdated Show resolved Hide resolved
src/category_theory/sites/dense_subsite.lean Outdated Show resolved Hide resolved
Comment on lines 304 to 308
begin
have α' := sheaf_yoneda_hom H α,
exact { app := λ X, yoneda.preimage (α'.app X),
naturality' := λ X Y f, yoneda.map_injective (by simpa using α'.naturality f) }
end
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you can do

Suggested change
begin
have α' := sheaf_yoneda_hom H α,
exact { app := λ X, yoneda.preimage (α'.app X),
naturality' := λ X Y f, yoneda.map_injective (by simpa using α'.naturality f) }
end
have α' := sheaf_yoneda_hom H α,
{ app := λ X, yoneda.preimage (α'.app X),
naturality' := λ X Y f, yoneda.map_injective (by simpa using α'.naturality f) }

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not really, but let ... in works for me.

Comment on lines 282 to 286
@[simps] noncomputable
def sheaf_yoneda_hom (α : G.op ⋙ ℱ ⟶ G.op ⋙ ℱ'.val) :
ℱ ⋙ yoneda ⟶ ℱ'.val ⋙ yoneda :=
begin
let α := sheaf_coyoneda_hom H α,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does simps do with the let statement? Does the output of simps? look the way you want it to be?

Copy link
Member Author

@erdOne erdOne Nov 11, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It actually gives quite a decent looking lemma.
But now that I think about it, I probably want to make the implementation details more opaque, so I removed them.

@jcommelin
Copy link
Member

I suggested one more change. After that, I this can be merged. Thanks!

bors d+

@bors
Copy link

bors bot commented Nov 12, 2021

✌️ erdOne can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

@github-actions github-actions bot added delegated The PR author may merge after reviewing final suggestions. and removed awaiting-review The author would like community review of the PR labels Nov 12, 2021
Co-authored-by: Johan Commelin <johan@commelin.net>
@erdOne
Copy link
Member Author

erdOne commented Nov 12, 2021

bors r+

bors bot pushed a commit that referenced this pull request Nov 12, 2021
Defined `cover_dense` functors as functors into sites such that each object can be covered by images of the functor.
Proved that for a `cover_dense` functor `G`, any morphisms of presheaves `G ⋙ ℱ ⟶ G ⋙ ℱ'` can be glued into a 
morphism `ℱ ⟶ ℱ'`.



Co-authored-by: erdOne <36414270+erdOne@users.noreply.github.com>
Co-authored-by: Andrew Yang <36414270+erdOne@users.noreply.github.com>
@bors
Copy link

bors bot commented Nov 12, 2021

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(category_theory/sites/*): Dense subsite [Merged by Bors] - feat(category_theory/sites/*): Dense subsite Nov 12, 2021
@bors bors bot closed this Nov 12, 2021
Algebraic geometry automation moved this from Pending review to Done Nov 12, 2021
@bors bors bot deleted the dense_subsite branch November 12, 2021 07:59
Comment on lines +338 to +342
def sheaf_iso {ℱ ℱ' : Sheaf K A} (i : G.op ⋙ ℱ.val ≅ G.op ⋙ ℱ'.val) : ℱ ≅ ℱ' :=
{ hom := (presheaf_iso H i).hom,
inv := (presheaf_iso H i).inv,
hom_inv_id' := (presheaf_iso H i).hom_inv_id,
inv_hom_id' := (presheaf_iso H i).inv_hom_id }
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This and another sheaf_iso above don't follow the same format. And can't this simply be presheaf_iso H i with some arguments made explicit? Or is it for the purpose of simps that you wrote down the individual fields? (I only noticed this after seeing a review message sent to my mailbox.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
delegated The PR author may merge after reviewing final suggestions.
Projects
Development

Successfully merging this pull request may close these issues.

None yet

4 participants