Documentation

Mathlib.CategoryTheory.Sites.RegularExtensive

The Regular and Extensive Coverages #

This file defines two coverages on a category C.

The first one is called the regular coverage and for that to exist, the category C must satisfy a condition called Preregular C. This means that effective epimorphisms can be "pulled back". The covering sieves of this coverage are generated by presieves consisting of a single effective epimorphism.

The second one is called the extensive coverage and for that to exist, the category C must satisfy a condition called FinitaryPreExtensive C. This means C has finite coproducts and that those are preserved by pullbacks. The covering sieves of this coverage are generated by presieves consisting finitely many arrows that together induce an isomorphism from the coproduct to the target. This condition is weaker than FinitaryExtensive, where in addition finite coproducts are disjoint.

Main results #

The condition Preregular C is property that effective epis can be "pulled back" along any morphism. This is satisfied e.g. by categories that have pullbacks that preserve effective epimorphisms (like Profinite and CompHaus), and categories where every object is projective (like Stonean).

Instances

    The regular coverage on a regular category C.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      The extensive coverage on an extensive category C

      TODO: use general colimit API instead of IsIso (Sigma.desc π)

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        A presieve is regular if it consists of a single effective epimorphism.

        Instances
          def CategoryTheory.regularCoverage.MapToEqualizer {C : Type u} [CategoryTheory.Category.{v, u} C] (P : CategoryTheory.Functor Cᵒᵖ (Type (max u v))) {W : C} {X : C} {B : C} (f : X B) (g₁ : W X) (g₂ : W X) (w : CategoryTheory.CategoryStruct.comp g₁ f = CategoryTheory.CategoryStruct.comp g₂ f) :
          P.obj (Opposite.op B){x : P.obj (Opposite.op X) | P.map g₁.op x = P.map g₂.op x}

          The map to the explicit equalizer used in the sheaf condition.

          Equations
          Instances For

            The sheaf condition with respect to regular presieves, given the existence of the relavant pullback.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For

              A presieve is extensive if it is finite and its arrows induce an isomorphism from the coproduct to the target.

              Instances
                Equations
                • CategoryTheory.instPreservesLimitTypeTypesDiscreteDiscreteCategoryFunctor = CategoryTheory.Limits.PreservesLimitsOfShape.preservesLimit