Documentation

Mathlib.CategoryTheory.FiberedCategory.Fiber

Fibers of a functors #

In this file we define, for a functor p : š’³ ā„¤ š’“, the fiber categories Fiber p S for every S : š’® as follows

For any category C equipped with a functor F : C ā„¤ š’³ such that F ā‹™ p is constant at S, we define a functor inducedFunctor : C ā„¤ Fiber p S that F factors through.

def CategoryTheory.Functor.Fiber {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] (p : CategoryTheory.Functor š’³ š’®) (S : š’®) :
Type (max 0 uā‚‚)

Fiber p S is the type of elements of š’³ mapping to S via p.

Equations
  • p.Fiber S = { a : š’³ // p.obj a = S }
Instances For

    Fiber p S has the structure of a category with morphisms being those lying over šŸ™ S.

    Equations
    def CategoryTheory.Functor.Fiber.fiberInclusion {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} :
    CategoryTheory.Functor (p.Fiber S) š’³

    The functor including Fiber p S into š’³.

    Equations
    • CategoryTheory.Functor.Fiber.fiberInclusion = { obj := fun (a : p.Fiber S) => ā†‘a, map := fun {X Y : p.Fiber S} (Ļ† : X āŸ¶ Y) => ā†‘Ļ†, map_id := ā‹Æ, map_comp := ā‹Æ }
    Instances For
      instance CategoryTheory.Functor.Fiber.instIsHomLiftIdMapFiberInclusion {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} {a : p.Fiber S} {b : p.Fiber S} (Ļ† : a āŸ¶ b) :
      p.IsHomLift (CategoryTheory.CategoryStruct.id S) (CategoryTheory.Functor.Fiber.fiberInclusion.map Ļ†)
      Equations
      • ā‹Æ = ā‹Æ
      theorem CategoryTheory.Functor.Fiber.hom_ext {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} {a : p.Fiber S} {b : p.Fiber S} {Ļ† : a āŸ¶ b} {Ļˆ : a āŸ¶ b} (h : CategoryTheory.Functor.Fiber.fiberInclusion.map Ļ† = CategoryTheory.Functor.Fiber.fiberInclusion.map Ļˆ) :
      Ļ† = Ļˆ
      instance CategoryTheory.Functor.Fiber.instFaithfulFiberInclusion {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} :
      CategoryTheory.Functor.Fiber.fiberInclusion.Faithful
      Equations
      • ā‹Æ = ā‹Æ
      def CategoryTheory.Functor.Fiber.fiberInclusionCompIsoConst {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} :
      CategoryTheory.Functor.Fiber.fiberInclusion.comp p ā‰… (CategoryTheory.Functor.const (p.Fiber S)).obj S

      For fixed S : š’® this is the natural isomorphism between fiberInclusion ā‹™ p and the constant function valued at S.

      Equations
      Instances For
        @[simp]
        theorem CategoryTheory.Functor.Fiber.fiberInclusionCompIsoConst_hom_app {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} (X : p.Fiber S) :
        CategoryTheory.Functor.Fiber.fiberInclusionCompIsoConst.hom.app X = CategoryTheory.eqToHom ā‹Æ
        @[simp]
        theorem CategoryTheory.Functor.Fiber.fiberInclusionCompIsoConst_inv_app {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} (X : p.Fiber S) :
        CategoryTheory.Functor.Fiber.fiberInclusionCompIsoConst.inv.app X = CategoryTheory.eqToHom ā‹Æ
        theorem CategoryTheory.Functor.Fiber.fiberInclusion_comp_eq_const {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} :
        CategoryTheory.Functor.Fiber.fiberInclusion.comp p = (CategoryTheory.Functor.const (p.Fiber S)).obj S
        def CategoryTheory.Functor.Fiber.mk {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} {a : š’³} (ha : p.obj a = S) :
        p.Fiber S

        The object of the fiber over S corresponding to a a : š’³ such that p(a) = S.

        Equations
        Instances For
          @[simp]
          theorem CategoryTheory.Functor.Fiber.fiberInclusion_mk {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} {a : š’³} (ha : p.obj a = S) :
          CategoryTheory.Functor.Fiber.fiberInclusion.obj (CategoryTheory.Functor.Fiber.mk ha) = a
          def CategoryTheory.Functor.Fiber.homMk {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] (p : CategoryTheory.Functor š’³ š’®) (S : š’®) {a : š’³} {b : š’³} (Ļ† : a āŸ¶ b) [p.IsHomLift (CategoryTheory.CategoryStruct.id S) Ļ†] :

          The morphism in the fiber over S corresponding to a morphism in š’³ lifting šŸ™ S.

          Equations
          Instances For
            @[simp]
            theorem CategoryTheory.Functor.Fiber.fiberInclusion_homMk {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] (p : CategoryTheory.Functor š’³ š’®) (S : š’®) {a : š’³} {b : š’³} (Ļ† : a āŸ¶ b) [p.IsHomLift (CategoryTheory.CategoryStruct.id S) Ļ†] :
            CategoryTheory.Functor.Fiber.fiberInclusion.map (CategoryTheory.Functor.Fiber.homMk p S Ļ†) = Ļ†
            @[simp]
            theorem CategoryTheory.Functor.Fiber.homMk_comp {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} {a : š’³} {b : š’³} {c : š’³} (Ļ† : a āŸ¶ b) (Ļˆ : b āŸ¶ c) [p.IsHomLift (CategoryTheory.CategoryStruct.id S) Ļ†] [p.IsHomLift (CategoryTheory.CategoryStruct.id S) Ļˆ] :
            def CategoryTheory.Functor.Fiber.inducedFunctor {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} {C : Type uā‚ƒ} [CategoryTheory.Category.{vā‚ƒ, uā‚ƒ} C] {F : CategoryTheory.Functor C š’³} (hF : F.comp p = (CategoryTheory.Functor.const C).obj S) :

            Given a functor F : C ā„¤ š’³ such that F ā‹™ p is constant at some S : š’®, then we get an induced functor C ā„¤ Fiber p S that F factors through.

            Equations
            Instances For
              @[simp]
              theorem CategoryTheory.Functor.Fiber.inducedFunctor_map_coe {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} {C : Type uā‚ƒ} [CategoryTheory.Category.{vā‚ƒ, uā‚ƒ} C] {F : CategoryTheory.Functor C š’³} (hF : F.comp p = (CategoryTheory.Functor.const C).obj S) :
              āˆ€ {X Y : C} (Ļ† : X āŸ¶ Y), ā†‘((CategoryTheory.Functor.Fiber.inducedFunctor hF).map Ļ†) = F.map Ļ†
              @[simp]
              theorem CategoryTheory.Functor.Fiber.inducedFunctor_obj_coe {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} {C : Type uā‚ƒ} [CategoryTheory.Category.{vā‚ƒ, uā‚ƒ} C] {F : CategoryTheory.Functor C š’³} (hF : F.comp p = (CategoryTheory.Functor.const C).obj S) (x : C) :
              @[simp]
              theorem CategoryTheory.Functor.Fiber.inducedFunctor_map {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} {C : Type uā‚ƒ} [CategoryTheory.Category.{vā‚ƒ, uā‚ƒ} C] {F : CategoryTheory.Functor C š’³} (hF : F.comp p = (CategoryTheory.Functor.const C).obj S) {X : C} {Y : C} (f : X āŸ¶ Y) :
              CategoryTheory.Functor.Fiber.fiberInclusion.map ((CategoryTheory.Functor.Fiber.inducedFunctor hF).map f) = F.map f
              def CategoryTheory.Functor.Fiber.inducedFunctorCompIsoSelf {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} {C : Type uā‚ƒ} [CategoryTheory.Category.{vā‚ƒ, uā‚ƒ} C] {F : CategoryTheory.Functor C š’³} (hF : F.comp p = (CategoryTheory.Functor.const C).obj S) :
              (CategoryTheory.Functor.Fiber.inducedFunctor hF).comp CategoryTheory.Functor.Fiber.fiberInclusion ā‰… F

              Given a functor F : C ā„¤ š’³ such that F ā‹™ p is constant at some S : š’®, then we get a natural isomorphism between inducedFunctor _ ā‹™ fiberInclusion and F.

              Equations
              Instances For
                @[simp]
                theorem CategoryTheory.Functor.Fiber.inducedFunctorCompIsoSelf_hom_app {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} {C : Type uā‚ƒ} [CategoryTheory.Category.{vā‚ƒ, uā‚ƒ} C] {F : CategoryTheory.Functor C š’³} (hF : F.comp p = (CategoryTheory.Functor.const C).obj S) (X : C) :
                @[simp]
                theorem CategoryTheory.Functor.Fiber.inducedFunctorCompIsoSelf_inv_app {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} {C : Type uā‚ƒ} [CategoryTheory.Category.{vā‚ƒ, uā‚ƒ} C] {F : CategoryTheory.Functor C š’³} (hF : F.comp p = (CategoryTheory.Functor.const C).obj S) (X : C) :
                theorem CategoryTheory.Functor.Fiber.inducedFunctor_comp {š’® : Type uā‚} {š’³ : Type uā‚‚} [CategoryTheory.Category.{vā‚, uā‚} š’®] [CategoryTheory.Category.{vā‚‚, uā‚‚} š’³] {p : CategoryTheory.Functor š’³ š’®} {S : š’®} {C : Type uā‚ƒ} [CategoryTheory.Category.{vā‚ƒ, uā‚ƒ} C] {F : CategoryTheory.Functor C š’³} (hF : F.comp p = (CategoryTheory.Functor.const C).obj S) :
                (CategoryTheory.Functor.Fiber.inducedFunctor hF).comp CategoryTheory.Functor.Fiber.fiberInclusion = F