Skip to content
This repository has been archived by the owner on Jul 24, 2024. It is now read-only.

feat(topology/sheaves/*): sheaves have enough injectives under some condition #15742

Draft
wants to merge 95 commits into
base: master
Choose a base branch
from

Conversation

jjaassoonn
Copy link
Collaborator

@jjaassoonn jjaassoonn commented Jul 28, 2022

jjaassoonn and others added 30 commits June 13, 2022 11:35
@jjaassoonn jjaassoonn changed the title feat(topology/sheves/skyscraper): skyscraper sheaves are injective if the targets are injective feat(topology/sheves/skyscraper): sheaves have enough injectives under some condition Aug 21, 2022
@jjaassoonn jjaassoonn changed the title feat(topology/sheves/skyscraper): sheaves have enough injectives under some condition feat(topology/sheves/*): sheaves have enough injectives under some condition Aug 21, 2022
@alreadydone alreadydone changed the title feat(topology/sheves/*): sheaves have enough injectives under some condition feat(topology/sheaves/*): sheaves have enough injectives under some condition Aug 21, 2022
@jjaassoonn jjaassoonn removed WIP Work in progress awaiting-CI The author would like to see what CI has to say before doing more work. labels Aug 21, 2022
Copy link
Collaborator

@alreadydone alreadydone left a comment

Choose a reason for hiding this comment

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

Just some preliminary comments; will take a closer look when the diff become smaller after #15934.

@@ -6,6 +6,7 @@ Authors: Jujian Zhang, Kevin Buzzard

import algebra.homology.exact
import category_theory.types
import category_theory.functor.epi_mono
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why add this import without adding any content to this file?


universes u v

variables {X : Top.{u}} {C : Type u} [category.{u} C]
Copy link
Collaborator

Choose a reason for hiding this comment

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

Could this be relaxed to C : Type v?

Comment on lines +447 to +450
begin
have := functor.map_mono (sheaf.forget C X ⋙ stalk_functor C x) f,
exact this,
end
Copy link
Collaborator

Choose a reason for hiding this comment

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

by exact should work?


lemma mono_iff_stalk_mono {F G : sheaf C X} (f : F ⟶ G) :
mono f ↔ ∀ x, mono ((stalk_functor C x).map f.1) :=
⟨λ m, by { resetI, apply_instance }, λ m, by { resetI, apply_instance }⟩
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
⟨λ m, by { resetI, apply_instance }, λ m, by { resetI, apply_instance }
by split; { introI, apply_instance }

(untested)

variables (𝓕 : presheaf C X) (𝓖 : sheaf C X)

def godement_presheaf : presheaf C X :=
∏ (λ x, skyscraper_presheaf x (𝓕.stalk x) : X → presheaf C X)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is the type ascription necessary? (Same question for injective_sheaf.)

Isn't 𝓕 ⟶ skyscraper_presheaf x (𝓕.stalk x) just the unit of the skyscraper-stalk adjunction, from which you directly get def to_godement_presheaf : 𝓕 ⟶ godement_presheaf 𝓕? It seems you didn't use the adjunction to its full force here.

By the way, your construction of the adjunction feels overly long; in my experience it's usually fastest to directly construct the unit and counit, without the need to go through hom_equiv, but I need to take a closer look before I can say for sure.

variables [concrete_category.{u} C] [preserves_limits (forget C)]
variables [reflects_isomorphisms (forget C)] [preserves_filtered_colimits (forget C)]

@[simps] def sheaf_in_Type : sheaf C X ⥤ sheaf (Type u) X :=
Copy link
Collaborator

Choose a reason for hiding this comment

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

This should probably be done for any Grothendieck topology and moved to category_theory.sites.sheaf .

rwa to_godement_presheaf_aux_comp_π_eq at eq1'',
end

example : true := trivial
Copy link
Collaborator

Choose a reason for hiding this comment

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

??

variables {X : Top.{u}} (p₀ : X) {C : Type v} [category.{w} C] (S : C) [has_terminal C]

/--The topological space with on a point `{p₀}`. Hence the only open sets are ∅ and ⊤.-/
def single_point_space : Top := ⟨({p₀} : set X), infer_instance⟩
Copy link
Collaborator

Choose a reason for hiding this comment

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

What's the reason for not simply using punit as the space?

universes u v

variables {X : Top.{u}} (p₀ : X) {C : Type v} [category.{u} C]
variables [has_terminal C] -- {star : C} (ts : is_terminal star)
Copy link
Collaborator

Choose a reason for hiding this comment

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

I also wondered whether we should allow the terminal object be specified ...

@jjaassoonn jjaassoonn added the WIP Work in progress label Oct 9, 2022
@jjaassoonn jjaassoonn marked this pull request as draft May 4, 2023 11:11
@kim-em kim-em added the too-late This PR was ready too late for inclusion in mathlib3 label Jul 16, 2023
@alreadydone
Copy link
Collaborator

alreadydone commented Jun 5, 2024

Are there plans to merge master and port this PR to Lean 4? It's listed as the first item in @joelriou 's AIM workshop statement.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
t-algebraic-geometry Algebraic geometry too-late This PR was ready too late for inclusion in mathlib3 WIP Work in progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants