Documentation

Mathlib.CategoryTheory.Sites.ZeroHypercover

0-hypercovers #

Given a coverage J on a category C, we define the type of 0-hypercovers of an object S : C. They consists of a covering family of morphisms X i ⟶ S indexed by a type I₀ such that the induced presieve is in J.

We define this with respect to a coverage and not to a Grothendieck topology, because this yields more control over the components of the cover.

structure CategoryTheory.PreZeroHypercover {C : Type u} [Category.{v, u} C] (S : C) :
Type (max (max u v) (w + 1))

The categorical data that is involved in a 0-hypercover of an object S. This consists of a family of morphisms f i : X i ⟶ S for i : I₀.

  • I₀ : Type w

    the index type of the covering of S

  • X (i : self.I₀) : C

    the objects in the covering of S

  • f (i : self.I₀) : self.X i S

    the morphisms in the covering of S

Instances For
    theorem CategoryTheory.PreZeroHypercover.ext {C : Type u} {inst✝ : Category.{v, u} C} {S : C} {x y : PreZeroHypercover S} (I₀ : x.I₀ = y.I₀) (X : x.X y.X) (f : x.f y.f) :
    x = y
    theorem CategoryTheory.PreZeroHypercover.ext_iff {C : Type u} {inst✝ : Category.{v, u} C} {S : C} {x y : PreZeroHypercover S} :
    x = y x.I₀ = y.I₀ x.X y.X x.f y.f
    @[reducible, inline]

    The assumption that the pullback of X i₁ and X i₂ over S exists for any i₁ and i₂.

    Equations
    Instances For
      @[reducible, inline]

      The presieve of S that is generated by the morphisms f i : X i ⟶ S.

      Equations
      Instances For
        @[reducible, inline]

        The sieve of S that is generated by the morphisms f i : X i ⟶ S.

        Equations
        Instances For

          The pre-0-hypercover defined by a single morphism.

          Equations
          Instances For
            @[simp]
            theorem CategoryTheory.PreZeroHypercover.singleton_f {C : Type u} [Category.{v, u} C] {S T : C} (f : S T) (x✝ : PUnit.{w + 1}) :
            (singleton f).f x✝ = f
            @[simp]
            theorem CategoryTheory.PreZeroHypercover.singleton_X {C : Type u} [Category.{v, u} C] {S T : C} (f : S T) (x✝ : PUnit.{w + 1}) :
            (singleton f).X x✝ = S
            noncomputable def CategoryTheory.PreZeroHypercover.pullback₁ {C : Type u} [Category.{v, u} C] {S T : C} (f : S T) (E : PreZeroHypercover T) [∀ (i : E.I₀), Limits.HasPullback f (E.f i)] :

            Pullback of a pre-0-hypercover along a morphism. The components are pullback f (E.f i).

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem CategoryTheory.PreZeroHypercover.pullback₁_I₀ {C : Type u} [Category.{v, u} C] {S T : C} (f : S T) (E : PreZeroHypercover T) [∀ (i : E.I₀), Limits.HasPullback f (E.f i)] :
              @[simp]
              theorem CategoryTheory.PreZeroHypercover.pullback₁_X {C : Type u} [Category.{v, u} C] {S T : C} (f : S T) (E : PreZeroHypercover T) [∀ (i : E.I₀), Limits.HasPullback f (E.f i)] (i : E.I₀) :
              (pullback₁ f E).X i = Limits.pullback f (E.f i)
              @[simp]
              theorem CategoryTheory.PreZeroHypercover.pullback₁_f {C : Type u} [Category.{v, u} C] {S T : C} (f : S T) (E : PreZeroHypercover T) [∀ (i : E.I₀), Limits.HasPullback f (E.f i)] (x✝ : E.I₀) :
              (pullback₁ f E).f x✝ = Limits.pullback.fst f (E.f x✝)
              noncomputable def CategoryTheory.PreZeroHypercover.pullback₂ {C : Type u} [Category.{v, u} C] {S T : C} (f : S T) (E : PreZeroHypercover T) [∀ (i : E.I₀), Limits.HasPullback (E.f i) f] :

              Pullback of a pre-0-hypercover along a morphism. The components are pullback (E.f i) f.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem CategoryTheory.PreZeroHypercover.pullback₂_I₀ {C : Type u} [Category.{v, u} C] {S T : C} (f : S T) (E : PreZeroHypercover T) [∀ (i : E.I₀), Limits.HasPullback (E.f i) f] :
                @[simp]
                theorem CategoryTheory.PreZeroHypercover.pullback₂_f {C : Type u} [Category.{v, u} C] {S T : C} (f : S T) (E : PreZeroHypercover T) [∀ (i : E.I₀), Limits.HasPullback (E.f i) f] (x✝ : E.I₀) :
                (pullback₂ f E).f x✝ = Limits.pullback.snd (E.f x✝) f
                @[simp]
                theorem CategoryTheory.PreZeroHypercover.pullback₂_X {C : Type u} [Category.{v, u} C] {S T : C} (f : S T) (E : PreZeroHypercover T) [∀ (i : E.I₀), Limits.HasPullback (E.f i) f] (i : E.I₀) :
                (pullback₂ f E).X i = Limits.pullback (E.f i) f

                Refining each component of a pre-0-hypercover yields a refined pre-0-hypercover of the base.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem CategoryTheory.PreZeroHypercover.bind_I₀ {C : Type u} [Category.{v, u} C] {T : C} (E : PreZeroHypercover T) (F : (i : E.I₀) → PreZeroHypercover (E.X i)) :
                  (E.bind F).I₀ = ((i : E.I₀) × (F i).I₀)
                  @[simp]
                  theorem CategoryTheory.PreZeroHypercover.bind_X {C : Type u} [Category.{v, u} C] {T : C} (E : PreZeroHypercover T) (F : (i : E.I₀) → PreZeroHypercover (E.X i)) (x✝ : (i : E.I₀) × (F i).I₀) :
                  (E.bind F).X x✝ = match x✝ with | i, j => (F i).X j
                  @[simp]
                  theorem CategoryTheory.PreZeroHypercover.bind_f {C : Type u} [Category.{v, u} C] {T : C} (E : PreZeroHypercover T) (F : (i : E.I₀) → PreZeroHypercover (E.X i)) (x✝ : (i : E.I₀) × (F i).I₀) :
                  (E.bind F).f x✝ = match x✝ with | i, j => CategoryStruct.comp ((F i).f j) (E.f i)

                  Replace the indexing type of a pre-0-hypercover.

                  Equations
                  • E.reindex e = { I₀ := ι, X := E.X e, f := fun (i : ι) => E.f (e i) }
                  Instances For
                    @[simp]
                    theorem CategoryTheory.PreZeroHypercover.reindex_f {C : Type u} [Category.{v, u} C] {T : C} (E : PreZeroHypercover T) {ι : Type w'} (e : ι E.I₀) (i : ι) :
                    (E.reindex e).f i = E.f (e i)
                    @[simp]
                    theorem CategoryTheory.PreZeroHypercover.reindex_X {C : Type u} [Category.{v, u} C] {T : C} (E : PreZeroHypercover T) {ι : Type w'} (e : ι E.I₀) (a✝ : ι) :
                    (E.reindex e).X a✝ = (E.X e) a✝
                    @[simp]
                    theorem CategoryTheory.PreZeroHypercover.reindex_I₀ {C : Type u} [Category.{v, u} C] {T : C} (E : PreZeroHypercover T) {ι : Type w'} (e : ι E.I₀) :
                    (E.reindex e).I₀ = ι
                    noncomputable def CategoryTheory.PreZeroHypercover.inter {C : Type u} [Category.{v, u} C] {T : C} (E : PreZeroHypercover T) (F : PreZeroHypercover T) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] :

                    Pairwise intersection of two pre-0-hypercovers.

                    Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.PreZeroHypercover.inter_X {C : Type u} [Category.{v, u} C] {T : C} (E : PreZeroHypercover T) (F : PreZeroHypercover T) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] (a✝ : E.I₀ × F.1) :
                      (E.inter F).X a✝ = Limits.pullback (E.f a✝.1) (F.f a✝.2)
                      @[simp]
                      theorem CategoryTheory.PreZeroHypercover.inter_f {C : Type u} [Category.{v, u} C] {T : C} (E : PreZeroHypercover T) (F : PreZeroHypercover T) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] (i : E.I₀ × F.1) :
                      (E.inter F).f i = CategoryStruct.comp (Limits.pullback.fst (E.f i.1) (F.f i.2)) (E.f i.1)
                      @[simp]
                      theorem CategoryTheory.PreZeroHypercover.inter_I₀ {C : Type u} [Category.{v, u} C] {T : C} (E : PreZeroHypercover T) (F : PreZeroHypercover T) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] :
                      (E.inter F).I₀ = (E.I₀ × F.1)
                      theorem CategoryTheory.PreZeroHypercover.inter_def {C : Type u} [Category.{v, u} C] {S : C} (E : PreZeroHypercover S) (F : PreZeroHypercover S) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] :
                      E.inter F = (E.bind fun (i : E.I₀) => pullback₁ (E.f i) F).reindex (Equiv.sigmaEquivProd E.I₀ F.1).symm

                      Disjoint union of two pre-0-hypercovers.

                      Equations
                      Instances For
                        theorem CategoryTheory.PreZeroHypercover.sum_X {C : Type u} [Category.{v, u} C] {X : C} (E : PreZeroHypercover X) (F : PreZeroHypercover X) (a✝ : E.I₀ F.I₀) :
                        (E.sum F).X a✝ = Sum.elim E.X F.X a✝
                        theorem CategoryTheory.PreZeroHypercover.sum_f {C : Type u} [Category.{v, u} C] {X : C} (E : PreZeroHypercover X) (F : PreZeroHypercover X) (x✝ : E.I₀ F.I₀) :
                        (E.sum F).f x✝ = match x✝ with | Sum.inl i => E.f i | Sum.inr i => F.f i
                        @[simp]
                        theorem CategoryTheory.PreZeroHypercover.sum_X_inl {C : Type u} [Category.{v, u} C] {S : C} (E : PreZeroHypercover S) (F : PreZeroHypercover S) (i : E.I₀) :
                        (E.sum F).X (Sum.inl i) = E.X i
                        @[simp]
                        theorem CategoryTheory.PreZeroHypercover.sum_X_inr {C : Type u} [Category.{v, u} C] {S : C} (E : PreZeroHypercover S) (F : PreZeroHypercover S) (i : F.I₀) :
                        (E.sum F).X (Sum.inr i) = F.X i
                        @[simp]
                        theorem CategoryTheory.PreZeroHypercover.sum_f_inl {C : Type u} [Category.{v, u} C] {S : C} (E : PreZeroHypercover S) (F : PreZeroHypercover S) (i : E.I₀) :
                        (E.sum F).f (Sum.inl i) = E.f i
                        @[simp]
                        theorem CategoryTheory.PreZeroHypercover.sum_f_inr {C : Type u} [Category.{v, u} C] {S : C} (E : PreZeroHypercover S) (F : PreZeroHypercover S) (i : F.I₀) :
                        (E.sum F).f (Sum.inr i) = F.f i

                        Add a morphism to a pre-0-hypercover.

                        Equations
                        Instances For
                          @[simp]
                          theorem CategoryTheory.PreZeroHypercover.add_I₀ {C : Type u} [Category.{v, u} C] {S : C} (E : PreZeroHypercover S) {T : C} (f : T S) :
                          (E.add f).I₀ = Option E.I₀
                          @[simp]
                          theorem CategoryTheory.PreZeroHypercover.add_X_some {C : Type u} [Category.{v, u} C] {S : C} (E : PreZeroHypercover S) {T : C} (f : T S) (i : E.I₀) :
                          (E.add f).X (some i) = E.X i
                          @[simp]
                          theorem CategoryTheory.PreZeroHypercover.add_X_none {C : Type u} [Category.{v, u} C] {S : C} (E : PreZeroHypercover S) {T : C} (f : T S) :
                          (E.add f).X none = T
                          @[simp]
                          theorem CategoryTheory.PreZeroHypercover.add_f_some {C : Type u} [Category.{v, u} C] {S : C} (E : PreZeroHypercover S) {T : C} (f : T S) (i : E.I₀) :
                          (E.add f).f (some i) = E.f i
                          @[simp]
                          theorem CategoryTheory.PreZeroHypercover.add_f_nome {C : Type u} [Category.{v, u} C] {S : C} (E : PreZeroHypercover S) {T : C} (f : T S) :
                          (E.add f).f none = f
                          structure CategoryTheory.PreZeroHypercover.Hom {C : Type u} [Category.{v, u} C] {S : C} (E : PreZeroHypercover S) (F : PreZeroHypercover S) :
                          Type (max (max v w) w')

                          A morphism of pre-0-hypercovers of S is a family of refinement morphisms commuting with the structure morphisms of E and F.

                          Instances For
                            theorem CategoryTheory.PreZeroHypercover.Hom.ext {C : Type u} {inst✝ : Category.{v, u} C} {S : C} {E : PreZeroHypercover S} {F : PreZeroHypercover S} {x y : E.Hom F} (s₀ : x.s₀ = y.s₀) (h₀ : x.h₀ y.h₀) :
                            x = y
                            theorem CategoryTheory.PreZeroHypercover.Hom.ext_iff {C : Type u} {inst✝ : Category.{v, u} C} {S : C} {E : PreZeroHypercover S} {F : PreZeroHypercover S} {x y : E.Hom F} :
                            x = y x.s₀ = y.s₀ x.h₀ y.h₀
                            @[simp]
                            theorem CategoryTheory.PreZeroHypercover.Hom.w₀_assoc {C : Type u} [Category.{v, u} C] {S : C} {E : PreZeroHypercover S} {F : PreZeroHypercover S} (self : E.Hom F) (i : E.I₀) {Z : C} (h : S Z) :

                            The identity refinement of a pre-0-hypercover.

                            Equations
                            Instances For
                              @[simp]
                              theorem CategoryTheory.PreZeroHypercover.Hom.id_h₀ {C : Type u} [Category.{v, u} C] {S : C} (E : PreZeroHypercover S) (x✝ : E.I₀) :
                              (id E).h₀ x✝ = CategoryStruct.id (E.X x✝)
                              def CategoryTheory.PreZeroHypercover.Hom.comp {C : Type u} [Category.{v, u} C] {S : C} {E : PreZeroHypercover S} {F : PreZeroHypercover S} {G : PreZeroHypercover S} (f : E.Hom F) (g : F.Hom G) :
                              E.Hom G

                              Composition of refinement morphisms of pre-0-hypercovers.

                              Equations
                              Instances For
                                @[simp]
                                theorem CategoryTheory.PreZeroHypercover.Hom.comp_s₀ {C : Type u} [Category.{v, u} C] {S : C} {E : PreZeroHypercover S} {F : PreZeroHypercover S} {G : PreZeroHypercover S} (f : E.Hom F) (g : F.Hom G) (a✝ : E.I₀) :
                                (f.comp g).s₀ a✝ = (g.s₀ f.s₀) a✝
                                @[simp]
                                theorem CategoryTheory.PreZeroHypercover.Hom.comp_h₀ {C : Type u} [Category.{v, u} C] {S : C} {E : PreZeroHypercover S} {F : PreZeroHypercover S} {G : PreZeroHypercover S} (f : E.Hom F) (g : F.Hom G) (i : E.I₀) :
                                (f.comp g).h₀ i = CategoryStruct.comp (f.h₀ i) (g.h₀ (f.s₀ i))
                                Equations
                                • One or more equations did not get rendered due to their size.
                                @[simp]
                                theorem CategoryTheory.PreZeroHypercover.comp_s₀ {C : Type u} [Category.{v, u} C] {S : C} {X✝ Y✝ Z✝ : PreZeroHypercover S} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) (a✝ : X✝.I₀) :
                                (CategoryStruct.comp f g).s₀ a✝ = g.s₀ (f.s₀ a✝)
                                @[simp]
                                theorem CategoryTheory.PreZeroHypercover.comp_h₀ {C : Type u} [Category.{v, u} C] {S : C} {X✝ Y✝ Z✝ : PreZeroHypercover S} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) (i : X✝.I₀) :

                                The left inclusion into the disjoint union.

                                Equations
                                Instances For

                                  The right inclusion into the disjoint union.

                                  Equations
                                  Instances For
                                    def CategoryTheory.PreZeroHypercover.sumLift {C : Type u} [Category.{v, u} C] {S : C} (E : PreZeroHypercover S) {F : PreZeroHypercover S} {G : PreZeroHypercover S} (f : E.Hom G) (g : F.Hom G) :
                                    (E.sum F).Hom G

                                    To give a refinement of the disjoint union, it suffices to give refinements of both components.

                                    Equations
                                    Instances For
                                      @[simp]
                                      theorem CategoryTheory.PreZeroHypercover.sumLift_s₀ {C : Type u} [Category.{v, u} C] {S : C} (E : PreZeroHypercover S) {F : PreZeroHypercover S} {G : PreZeroHypercover S} (f : E.Hom G) (g : F.Hom G) (a✝ : E.I₀ F.I₀) :
                                      (E.sumLift f g).s₀ a✝ = Sum.elim f.s₀ g.s₀ a✝
                                      @[simp]
                                      theorem CategoryTheory.PreZeroHypercover.sumLift_h₀ {C : Type u} [Category.{v, u} C] {S : C} (E : PreZeroHypercover S) {F : PreZeroHypercover S} {G : PreZeroHypercover S} (f : E.Hom G) (g : F.Hom G) (x✝ : (E.sum F).I₀) :
                                      (E.sumLift f g).h₀ x✝ = match x✝ with | Sum.inl i => f.h₀ i | Sum.inr i => g.h₀ i
                                      structure CategoryTheory.Precoverage.ZeroHypercover {C : Type u} [Category.{v, u} C] (J : Precoverage C) (S : C) extends CategoryTheory.PreZeroHypercover S :
                                      Type (max (max u v) (w + 1))

                                      The type of 0-hypercovers of an object S : C in a category equipped with a coverage J. This can be constructed from a covering of S.

                                      Instances For

                                        The 0-hypercover defined by a single covering morphism.

                                        Equations
                                        Instances For
                                          noncomputable def CategoryTheory.Precoverage.ZeroHypercover.pullback₁ {C : Type u} [Category.{v, u} C] {J : Precoverage C} {S T : C} [J.IsStableUnderBaseChange] (f : S T) (E : J.ZeroHypercover T) [∀ (i : E.I₀), Limits.HasPullback f (E.f i)] :

                                          Pullback of a 0-hypercover along a morphism. The components are pullback f (E.f i).

                                          Equations
                                          Instances For
                                            noncomputable def CategoryTheory.Precoverage.ZeroHypercover.pullback₂ {C : Type u} [Category.{v, u} C] {J : Precoverage C} {S T : C} [J.IsStableUnderBaseChange] (f : S T) (E : J.ZeroHypercover T) [∀ (i : E.I₀), Limits.HasPullback (E.f i) f] :

                                            Pullback of a 0-hypercover along a morphism. The components are pullback (E.f i) f.

                                            Equations
                                            Instances For

                                              Refining each component of a 0-hypercover yields a refined 0-hypercover of the base.

                                              Equations
                                              Instances For

                                                Pairwise intersection of two 0-hypercovers.

                                                Equations
                                                Instances For

                                                  Replace the indexing type of a 0-hypercover.

                                                  Equations
                                                  Instances For

                                                    Disjoint union of two 0-hypercovers.

                                                    Equations
                                                    Instances For

                                                      Add a single morphism to a 0-hypercover.

                                                      Equations
                                                      • E.add f hf = { toPreZeroHypercover := E.add f, mem₀ := }
                                                      Instances For
                                                        @[reducible, inline]
                                                        abbrev CategoryTheory.Precoverage.ZeroHypercover.Hom {C : Type u} [Category.{v, u} C] (J : Precoverage C) {S : C} (E : J.ZeroHypercover S) (F : J.ZeroHypercover S) :
                                                        Type (max (max v w) w')

                                                        A morphism of 0-hypercovers is a morphism of the underlying pre-0-hypercovers.

                                                        Equations
                                                        Instances For
                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          @[simp]
                                                          theorem CategoryTheory.Precoverage.ZeroHypercover.id_s₀ {C : Type u} [Category.{v, u} C] {J : Precoverage C} {S : C} (x✝ : J.ZeroHypercover S) (a : x✝.I₀) :
                                                          @[simp]
                                                          theorem CategoryTheory.Precoverage.ZeroHypercover.comp_s₀ {C : Type u} [Category.{v, u} C] {J : Precoverage C} {S : C} {X✝ Y✝ Z✝ : J.ZeroHypercover S} (f : X✝.Hom Y✝.toPreZeroHypercover) (g : Y✝.Hom Z✝.toPreZeroHypercover) (a✝ : X✝.I₀) :
                                                          (CategoryStruct.comp f g).s₀ a✝ = g.s₀ (f.s₀ a✝)
                                                          @[simp]
                                                          theorem CategoryTheory.Precoverage.ZeroHypercover.id_h₀ {C : Type u} [Category.{v, u} C] {J : Precoverage C} {S : C} (x✝ : J.ZeroHypercover S) (x✝¹ : x✝.I₀) :
                                                          (CategoryStruct.id x✝).h₀ x✝¹ = CategoryStruct.id (x✝.X x✝¹)
                                                          @[simp]
                                                          theorem CategoryTheory.Precoverage.ZeroHypercover.comp_h₀ {C : Type u} [Category.{v, u} C] {J : Precoverage C} {S : C} {X✝ Y✝ Z✝ : J.ZeroHypercover S} (f : X✝.Hom Y✝.toPreZeroHypercover) (g : Y✝.Hom Z✝.toPreZeroHypercover) (i : X✝.I₀) :