# Documentation

Mathlib.Topology.Sheaves.Forget

# Checking the sheaf condition on the underlying presheaf of types. #

If G : C ⥤ D is a functor which reflects isomorphisms and preserves limits (we assume all limits exist in both C and D), then checking the sheaf condition for a presheaf F : presheaf C X is equivalent to checking the sheaf condition for F ⋙ G.

The important special case is when C is a concrete category with a forgetful functor that preserves limits and reflects isomorphisms. Then to check the sheaf condition it suffices to check it on the underlying sheaf of types.

## References #

• https://stacks.math.columbia.edu/tag/0073
def TopCat.Presheaf.SheafCondition.diagramCompPreservesLimits {C : Type u₁} [] {D : Type u₂} [] (G : ) {X : TopCat} (F : ) {ι : Type v} (U : ) :

When G preserves limits, the sheaf condition diagram for F composed with G is naturally isomorphic to the sheaf condition diagram for F ⋙ G.

Instances For
def TopCat.Presheaf.SheafCondition.mapConeFork {C : Type u₁} [] {D : Type u₂} [] (G : ) {X : TopCat} (F : ) {ι : Type v} (U : ) :

When G preserves limits, the image under G of the sheaf condition fork for F is the sheaf condition fork for F ⋙ G, postcomposed with the inverse of the natural isomorphism diagramCompPreservesLimits.

Instances For
theorem TopCat.Presheaf.isSheaf_iff_isSheaf_comp {C : Type u₁} [] {D : Type u₂} [] (G : ) {X : TopCat} (F : ) :

If G : C ⥤ D is a functor which reflects isomorphisms and preserves limits (we assume all limits exist in both C and D), then checking the sheaf condition for a presheaf F : presheaf C X is equivalent to checking the sheaf condition for F ⋙ G.

The important special case is when C is a concrete category with a forgetful functor that preserves limits and reflects isomorphisms. Then to check the sheaf condition it suffices to check it on the underlying sheaf of types.

Another useful example is the forgetful functor TopCommRing ⥤ Top.

See https://stacks.math.columbia.edu/tag/0073. In fact we prove a stronger version with arbitrary complete target category.

As an example, we now have everything we need to check the sheaf condition for a presheaf of commutative rings, merely by checking the sheaf condition for the underlying sheaf of types.

example (X : TopCat) (F : Presheaf CommRingCat X)
(h : Presheaf.IsSheaf (F ⋙ (forget CommRingCat))) :
F.IsSheaf :=
(isSheaf_iff_isSheaf_comp (forget CommRingCat) F).mpr h