Documentation

Mathlib.CategoryTheory.Sites.Types

Grothendieck Topology and Sheaves on the Category of Types #

In this file we define a Grothendieck topology on the category of types, and construct the canonical functor that sends a type to a sheaf over the category of types, and make this an equivalence of categories.

Then we prove that the topology defined is the canonical topology.

A Grothendieck topology associated to the category of all types. A sieve is a covering iff it is jointly surjective.

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

    The discrete sieve on a type, which only includes arrows whose image is a subsingleton.

    Equations
    Instances For
      @[simp]
      theorem CategoryTheory.discreteSieve_apply (α x✝ : Type u) (f : x✝ α) :
      (discreteSieve α).arrows f = ∃ (x : α), ∀ (y : x✝), (ConcreteCategory.hom f) y = x

      The discrete presieve on a type, which only includes arrows whose domain is a singleton.

      Equations
      Instances For

        The yoneda functor that sends a type to a sheaf over the category of types.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem CategoryTheory.yoneda'_map_hom {X✝ Y✝ : Type u} (f : X✝ Y✝) :

          Given a presheaf P on the category of types, construct a map P(α) → (α → P(*)) for all type α.

          Equations
          Instances For

            Given a sheaf S on the category of types, construct a map (α → S(*)) → S(α) that is inverse to eval.

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

              Given a sheaf S, construct an equivalence S(α) ≃ (α → S(*)).

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem CategoryTheory.eval_map (S : Functor Type uᵒᵖ (Type u)) (α β : Type u) (f : β α) (s : (fun (X : Type u) => X) (S.obj (Opposite.op α))) (x : (fun (X : Type u) => X) β) :

                Given a sheaf S, construct an isomorphism S ≅ [-, S(*)].

                Equations
                Instances For

                  Given a sheaf S, construct an isomorphism S ≅ [-, S(*)].

                  Equations
                  Instances For
                    theorem CategoryTheory.eval_app (S₁ S₂ : Sheaf typesGrothendieckTopology (Type u)) (f : S₁ S₂) (α : Type u) (s : S₁.obj.obj (Opposite.op α)) (x : α) :

                    yoneda' induces an equivalence of categories between Type u and Sheaf typesGrothendieckTopology (Type u).

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[simp]
                      theorem CategoryTheory.typeEquiv_functor_map_hom_app_hom_apply_hom_apply {X✝ Y✝ : Type u} (f : X✝ Y✝) (x✝ : Type uᵒᵖ) (g : { obj := fun (Y : Type uᵒᵖ) => Opposite.unop Y X✝, map := fun {X Y : Type uᵒᵖ} (f : X Y) => TypeCat.ofHom fun (g : Opposite.unop X X✝) => CategoryStruct.comp f.unop g, map_id := , map_comp := }.obj x✝) (a✝ : Opposite.unop x✝) :
                      @[simp]
                      theorem CategoryTheory.typeEquiv_functor_obj_obj_map_hom_apply_hom_apply (α : Type u) {X✝ Y✝ : Type uᵒᵖ} (f : X✝ Y✝) (g : Opposite.unop X✝ α) (a✝ : Opposite.unop Y✝) :