Documentation

Mathlib.CategoryTheory.Sites.Hypercover.One

1-hypercovers #

Given a Grothendieck topology J on a category C, we define the type of 1-hypercovers of an object S : C. They consist of a covering family of morphisms X i ⟶ S indexed by a type I₀ and, for each tuple (i₁, i₂) of elements of I₀, a "covering Y j of the fibre product of X i₁ and X i₂ over S", a condition which is phrased here without assuming that the fibre product actually exists.

The definition OneHypercover.isLimitMultifork shows that if E is a 1-hypercover of S, and F is a sheaf, then F.obj (op S) identifies to the multiequalizer of suitable maps F.obj (op (E.X i)) ⟶ F.obj (op (E.Y j)).

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

The categorical data that is involved in a 1-hypercover of an object S. This consists of a family of morphisms f i : X i ⟶ S for i : I₀, and for each tuple (i₁, i₂) of elements in I₀, a family of objects Y j indexed by a type I₁ i₁ i₂, which are equipped with a map to the fibre product of X i₁ and X i₂, which is phrased here as the data of the two projections p₁ : Y j ⟶ X i₁, p₂ : Y j ⟶ X i₂ and the relation p₁ j ≫ f i₁ = p₂ j ≫ f i₂. (See GrothendieckTopology.OneHypercover for the topological conditions.)

  • X (i : self.I₀) : C
  • f (i : self.I₀) : self.X i S
  • I₁ (i₁ i₂ : self.I₀) : Type w

    the index type of the coverings of the fibre products

  • Y i₁ i₂ : self.I₀ (j : self.I₁ i₁ i₂) : C

    the objects in the coverings of the fibre products

  • p₁ i₁ i₂ : self.I₀ (j : self.I₁ i₁ i₂) : self.Y j self.X i₁

    the first projection Y j ⟶ X i₁

  • p₂ i₁ i₂ : self.I₀ (j : self.I₁ i₁ i₂) : self.Y j self.X i₂

    the second projection Y j ⟶ X i₂

  • w i₁ i₂ : self.I₀ (j : self.I₁ i₁ i₂) : CategoryStruct.comp (self.p₁ j) (self.f i₁) = CategoryStruct.comp (self.p₂ j) (self.f i₂)
Instances For
    def CategoryTheory.PreOneHypercover.sieve₁ {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) {i₁ i₂ : E.I₀} {W : C} (p₁ : W E.X i₁) (p₂ : W E.X i₂) :

    Given an object W equipped with morphisms p₁ : W ⟶ E.X i₁, p₂ : W ⟶ E.X i₂, this is the sieve of W which consists of morphisms g : Z ⟶ W such that there exists j and h : Z ⟶ E.Y j such that g ≫ p₁ = h ≫ E.p₁ j and g ≫ p₂ = h ≫ E.p₂ j. See lemmas sieve₁_eq_pullback_sieve₁' and sieve₁'_eq_sieve₁ for equational lemmas regarding this sieve.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem CategoryTheory.PreOneHypercover.sieve₁_apply {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) {i₁ i₂ : E.I₀} {W : C} (p₁ : W E.X i₁) (p₂ : W E.X i₂) (Z : C) (g : Z W) :
      (E.sieve₁ p₁ p₂).arrows g = ∃ (j : E.I₁ i₁ i₂) (h : Z E.Y j), CategoryStruct.comp g p₁ = CategoryStruct.comp h (E.p₁ j) CategoryStruct.comp g p₂ = CategoryStruct.comp h (E.p₂ j)
      @[reducible, inline]
      noncomputable abbrev CategoryTheory.PreOneHypercover.toPullback {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) {i₁ i₂ : E.I₀} (j : E.I₁ i₁ i₂) [Limits.HasPullback (E.f i₁) (E.f i₂)] :
      E.Y j Limits.pullback (E.f i₁) (E.f i₂)

      The obvious morphism E.Y j ⟶ pullback (E.f i₁) (E.f i₂) given by E : PreOneHypercover S.

      Equations
      Instances For
        noncomputable def CategoryTheory.PreOneHypercover.sieve₁' {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) (i₁ i₂ : E.I₀) [Limits.HasPullback (E.f i₁) (E.f i₂)] :
        Sieve (Limits.pullback (E.f i₁) (E.f i₂))

        The sieve of pullback (E.f i₁) (E.f i₂) given by E : PreOneHypercover S.

        Equations
        Instances For
          theorem CategoryTheory.PreOneHypercover.sieve₁_eq_pullback_sieve₁' {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) {i₁ i₂ : E.I₀} [Limits.HasPullback (E.f i₁) (E.f i₂)] {W : C} (p₁ : W E.X i₁) (p₂ : W E.X i₂) (w : CategoryStruct.comp p₁ (E.f i₁) = CategoryStruct.comp p₂ (E.f i₂)) :
          E.sieve₁ p₁ p₂ = Sieve.pullback (Limits.pullback.lift p₁ p₂ w) (E.sieve₁' i₁ i₂)
          theorem CategoryTheory.PreOneHypercover.sieve₁'_eq_sieve₁ {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) (i₁ i₂ : E.I₀) [Limits.HasPullback (E.f i₁) (E.f i₂)] :
          E.sieve₁' i₁ i₂ = E.sieve₁ (Limits.pullback.fst (E.f i₁) (E.f i₂)) (Limits.pullback.snd (E.f i₁) (E.f i₂))
          @[reducible, inline]

          The sigma type of all E.I₁ i₁ i₂ for ⟨i₁, i₂⟩ : E.I₀ × E.I₀.

          Equations
          Instances For

            The 1-components as a function from the sigma type over E.I₁ i₁ i₂.

            Equations
            Instances For
              @[simp]
              theorem CategoryTheory.PreOneHypercover.Y'_apply {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) (i : E.I₁') :
              E.Y' i = E.Y i.snd

              The shape of the multiforks attached to E : PreOneHypercover S.

              Equations
              Instances For

                The diagram of the multifork attached to a presheaf F : Cᵒᵖ ⥤ A, S : C and E : PreOneHypercover S.

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

                  The multifork attached to a presheaf F : Cᵒᵖ ⥤ A, S : C and E : PreOneHypercover S.

                  Equations
                  Instances For
                    @[simp]
                    theorem CategoryTheory.PreOneHypercover.multifork_ι {C : Type u} [Category.{v, u} C] {A : Type u_1} [Category.{v_1, u_1} A] {S : C} (E : PreOneHypercover S) (F : Functor Cᵒᵖ A) (i : E.I₀) :
                    (E.multifork F).ι i = F.map (E.f i).op

                    The fork associated to a pre-0-hypercover induced by taking the coproduct of the components.

                    Equations
                    Instances For

                      The multifork associated to a pre-1-hypercover is limiting if and only if the fork induced by taking the coproduct of the components is limiting.

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

                        The single object pre-1-hypercover obtained from taking coproducts of the components.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[simp]
                          theorem CategoryTheory.PreOneHypercover.sigmaOfIsColimit_Y {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) {c : Limits.Cofan E.X} (hc : Limits.IsColimit c) {d : Limits.Cofan E.Y'} (hd : Limits.IsColimit d) (x✝ x✝¹ : (E.sigmaOfIsColimit hc).I₀) (x✝² : PUnit.{w + 1}) :
                          (E.sigmaOfIsColimit hc hd).Y x✝² = d.pt

                          If E is a pre-1-hypercover and F a presheaf, the induced equalizer of the single object covering obtained from E by taking coproducts is limiting if and only if the induced multiequalizer of E is limiting.

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

                            The trivial pre-1-hypercover of S with a single component S.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              @[simp]
                              @[simp]
                              noncomputable def CategoryTheory.PreOneHypercover.inter {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) (F : PreOneHypercover S) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] [∀ (i j : E.I₀) (k : E.I₁ i j) (a b : F.I₀) (l : F.I₁ a b), Limits.HasPullback (CategoryStruct.comp (E.p₁ k) (E.f i)) (CategoryStruct.comp (F.p₁ l) (F.f a))] :

                              Intersection of two pre-1-hypercovers.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                @[simp]
                                theorem CategoryTheory.PreOneHypercover.inter_I₁ {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) (F : PreOneHypercover S) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] [∀ (i j : E.I₀) (k : E.I₁ i j) (a b : F.I₀) (l : F.I₁ a b), Limits.HasPullback (CategoryStruct.comp (E.p₁ k) (E.f i)) (CategoryStruct.comp (F.p₁ l) (F.f a))] (i j : (E.inter F.toPreZeroHypercover).I₀) :
                                (E.inter F).I₁ i j = (E.I₁ i.1 j.1 × F.I₁ i.2 j.2)
                                @[simp]
                                theorem CategoryTheory.PreOneHypercover.inter_toPreZeroHypercover {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) (F : PreOneHypercover S) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] [∀ (i j : E.I₀) (k : E.I₁ i j) (a b : F.I₀) (l : F.I₁ a b), Limits.HasPullback (CategoryStruct.comp (E.p₁ k) (E.f i)) (CategoryStruct.comp (F.p₁ l) (F.f a))] :
                                @[simp]
                                theorem CategoryTheory.PreOneHypercover.inter_p₂ {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) (F : PreOneHypercover S) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] [∀ (i j : E.I₀) (k : E.I₁ i j) (a b : F.I₀) (l : F.I₁ a b), Limits.HasPullback (CategoryStruct.comp (E.p₁ k) (E.f i)) (CategoryStruct.comp (F.p₁ l) (F.f a))] (i j : (E.inter F.toPreZeroHypercover).I₀) (k : E.I₁ i.1 j.1 × F.I₁ i.2 j.2) :
                                @[simp]
                                theorem CategoryTheory.PreOneHypercover.inter_p₁ {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) (F : PreOneHypercover S) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] [∀ (i j : E.I₀) (k : E.I₁ i j) (a b : F.I₀) (l : F.I₁ a b), Limits.HasPullback (CategoryStruct.comp (E.p₁ k) (E.f i)) (CategoryStruct.comp (F.p₁ l) (F.f a))] (i j : (E.inter F.toPreZeroHypercover).I₀) (k : E.I₁ i.1 j.1 × F.I₁ i.2 j.2) :
                                @[simp]
                                theorem CategoryTheory.PreOneHypercover.inter_Y {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) (F : PreOneHypercover S) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] [∀ (i j : E.I₀) (k : E.I₁ i j) (a b : F.I₀) (l : F.I₁ a b), Limits.HasPullback (CategoryStruct.comp (E.p₁ k) (E.f i)) (CategoryStruct.comp (F.p₁ l) (F.f a))] (i j : (E.inter F.toPreZeroHypercover).I₀) (k : E.I₁ i.1 j.1 × F.I₁ i.2 j.2) :
                                (E.inter F).Y k = Limits.pullback (CategoryStruct.comp (E.p₁ k.1) (E.f i.1)) (CategoryStruct.comp (F.p₁ k.2) (F.f i.2))
                                theorem CategoryTheory.PreOneHypercover.sieve₁_inter {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} [Limits.HasPullbacks C] {i j : E.I₀ × F.I₀} {W : C} {p₁ : W Limits.pullback (E.f i.1) (F.f i.2)} {p₂ : W Limits.pullback (E.f j.1) (F.f j.2)} (w : CategoryStruct.comp p₁ (CategoryStruct.comp (Limits.pullback.fst (E.f i.1) (F.f i.2)) (E.f i.1)) = CategoryStruct.comp p₂ (CategoryStruct.comp (Limits.pullback.fst (E.f j.1) (F.f j.2)) (E.f j.1))) :
                                (E.inter F).sieve₁ p₁ p₂ = Sieve.bind (E.sieve₁ (CategoryStruct.comp p₁ (Limits.pullback.fst (E.f i.1) (F.f i.2))) (CategoryStruct.comp p₂ (Limits.pullback.fst (E.f j.1) (F.f j.2)))).arrows fun (x : C) (f : x W) (x_1 : (E.sieve₁ (CategoryStruct.comp p₁ (Limits.pullback.fst (E.f i.1) (F.f i.2))) (CategoryStruct.comp p₂ (Limits.pullback.fst (E.f j.1) (F.f j.2)))).arrows f) => Sieve.pullback f (F.sieve₁ (CategoryStruct.comp p₁ (Limits.pullback.snd (E.f i.1) (F.f i.2))) (CategoryStruct.comp p₂ (Limits.pullback.snd (E.f j.1) (F.f j.2))))
                                structure CategoryTheory.PreOneHypercover.Hom {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) (F : PreOneHypercover S) extends E.Hom F.toPreZeroHypercover :
                                Type (max (max u_2 u_3) v)

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

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

                                  The identity refinement of a pre-1-hypercover.

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

                                    Composition of refinement morphisms of pre-1-hypercovers.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      @[simp]
                                      theorem CategoryTheory.PreOneHypercover.Hom.comp_h₀ {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} {G : PreOneHypercover 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))
                                      @[simp]
                                      theorem CategoryTheory.PreOneHypercover.Hom.comp_s₀ {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} {G : PreOneHypercover 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.PreOneHypercover.Hom.comp_s₁ {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} {G : PreOneHypercover S} (f : E.Hom F) (g : F.Hom G) {i✝ j✝ : E.I₀} (a✝ : E.I₁ i✝ j✝) :
                                      (f.comp g).s₁ a✝ = g.s₁ (f.s₁ a✝)
                                      @[simp]
                                      theorem CategoryTheory.PreOneHypercover.Hom.comp_h₁ {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} {G : PreOneHypercover S} (f : E.Hom F) (g : F.Hom G) {i✝ j✝ : E.I₀} (i : E.I₁ i✝ j✝) :
                                      (f.comp g).h₁ i = CategoryStruct.comp (f.h₁ i) (g.h₁ (f.s₁ i))

                                      The induced index map E.I₁' → F.I₁' from a refinement morphism E ⟶ F.

                                      Equations
                                      Instances For
                                        @[implicit_reducible]
                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        @[simp]
                                        theorem CategoryTheory.PreOneHypercover.id_s₁ {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) {i✝ j✝ : E.I₀} (a : E.I₁ i✝ j✝) :
                                        @[simp]
                                        theorem CategoryTheory.PreOneHypercover.comp_s₀ {C : Type u} [Category.{v, u} C] {S : C} {X✝ Y✝ Z✝ : PreOneHypercover 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.PreOneHypercover.comp_s₁ {C : Type u} [Category.{v, u} C] {S : C} {X✝ Y✝ Z✝ : PreOneHypercover S} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) {i✝ j✝ : X✝.I₀} (a✝ : X✝.I₁ i✝ j✝) :
                                        (CategoryStruct.comp f g).s₁ a✝ = g.s₁ (f.s₁ a✝)
                                        @[simp]
                                        theorem CategoryTheory.PreOneHypercover.id_h₁ {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) {i✝ j✝ : E.I₀} (x✝ : E.I₁ i✝ j✝) :
                                        @[simp]
                                        theorem CategoryTheory.PreOneHypercover.comp_h₀ {C : Type u} [Category.{v, u} C] {S : C} {X✝ Y✝ Z✝ : PreOneHypercover S} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) (i : X✝.I₀) :
                                        @[simp]
                                        @[simp]
                                        theorem CategoryTheory.PreOneHypercover.comp_h₁ {C : Type u} [Category.{v, u} C] {S : C} {X✝ Y✝ Z✝ : PreOneHypercover S} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) {i✝ j✝ : X✝.I₀} (i : X✝.I₁ i✝ j✝) :

                                        The forgetful functor from pre-1-hypercovers to pre-0-hypercovers.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          @[simp]
                                          theorem CategoryTheory.PreOneHypercover.oneToZero_map {C : Type u} [Category.{v, u} C] {S : C} {X✝ Y✝ : PreOneHypercover S} (f : X✝ Y✝) :

                                          A refinement morphism E ⟶ F induces a morphism on associated multiequalizers.

                                          Equations
                                          Instances For
                                            def CategoryTheory.PreOneHypercover.congrIndexOneOfEq {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {i i' j j' : E.I₀} (hii' : i = i') (hjj' : j = j') :
                                            E.I₁ i j E.I₁ i' j'

                                            If i = i' and j = j' this is an equivalence between the 1-index type at i, j and the one at i', j'.

                                            Equations
                                            Instances For
                                              @[simp]
                                              theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEq_trans {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {i i' j j' : E.I₀} (hii' : i = i') (hjj' : j = j') {i'' j'' : E.I₀} (hii'' : i' = i'') (hjj'' : j' = j'') (k : E.I₁ i j) :
                                              (congrIndexOneOfEq hii'' hjj'') ((congrIndexOneOfEq hii' hjj') k) = (congrIndexOneOfEq ) k
                                              theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEq_naturality {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} {i i' j j' : E.I₀} (hii' : i = i') (hjj' : j = j') (u₀ : E.I₀F.I₀) (u₁ : i j : E.I₀⦄ → E.I₁ i jF.I₁ (u₀ i) (u₀ j)) (k : E.I₁ i j) :
                                              u₁ ((congrIndexOneOfEq hii' hjj') k) = (congrIndexOneOfEq ) (u₁ k)
                                              theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEq_congrFun {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} {u₀ v₀ : E.I₀F.I₀} {u₁ : i j : E.I₀⦄ → E.I₁ i jF.I₁ (u₀ i) (u₀ j)} {v₁ : i j : E.I₀⦄ → E.I₁ i jF.I₁ (v₀ i) (v₀ j)} (h₀ : u₀ = v₀) (h₁ : ∀ (i j : E.I₀) (k : E.I₁ i j), u₁ k = (congrIndexOneOfEq ) (v₁ k)) {i j : E.I₀} (k : E.I₁ i j) :
                                              (congrIndexOneOfEq ) (v₁ k) = u₁ k
                                              theorem CategoryTheory.PreOneHypercover.I₁'.ext {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {a b : E.I₁'} (left : a.fst.1 = b.fst.1) (right : a.fst.2 = b.fst.2) (h : (congrIndexOneOfEq left right) a.snd = b.snd) :
                                              a = b
                                              def CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {i i' j j' : E.I₀} (hii' : i = i') (hjj' : j = j') (k : E.I₁ i j) :
                                              E.Y ((congrIndexOneOfEq hii' hjj') k) E.Y k

                                              If i = i' and j = j' this is the isomorphism between the 1-component at congrIndexOneOfEq k : E.I₁ i' j' and the 1-component at k : E.I₁ i j.

                                              Note: This isomorphism could also be constructed inline from eqToIso. We only use eqToIso directly to construct isomorphisms E.Y k ≅ E.Y k' where k k' : E.I₁ i j and whenever k : E.I₁ i j and k' : E.I₁ i' j' have to be related we use congrIndexOneOfEqIso, possibly combined with an additional eqToIso instead. The reason for this is that the lemmas around eqToHom_naturality are hard to apply in the case where there is a mismatch in the type of the index.

                                              Equations
                                              Instances For
                                                @[simp]
                                                @[simp]
                                                theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso_hom_p₁ {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {i i' j j' : E.I₀} (hii' : i = i') (hjj' : j = j') (k : E.I₁ i j) :
                                                @[simp]
                                                theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso_hom_p₁_assoc {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {i i' j j' : E.I₀} (hii' : i = i') (hjj' : j = j') (k : E.I₁ i j) {Z : C} (h : E.X i Z) :
                                                @[simp]
                                                theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso_inv_p₁ {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {i i' j j' : E.I₀} (hii' : i = i') (hjj' : j = j') (k : E.I₁ i j) :
                                                @[simp]
                                                theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso_inv_p₁_assoc {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {i i' j j' : E.I₀} (hii' : i = i') (hjj' : j = j') (k : E.I₁ i j) {Z : C} (h : E.X i' Z) :
                                                @[simp]
                                                theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso_inv_p₂ {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {i i' j j' : E.I₀} (hii' : i = i') (hjj' : j = j') (k : E.I₁ i j) :
                                                @[simp]
                                                theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso_inv_p₂_assoc {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {i i' j j' : E.I₀} (hii' : i = i') (hjj' : j = j') (k : E.I₁ i j) {Z : C} (h : E.X j' Z) :
                                                theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso_hom_naturality {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} {i i' j j' : E.I₀} (u₀ : E.I₀F.I₀) (u₁ : (i j : E.I₀) → E.I₁ i jF.I₁ (u₀ i) (u₀ j)) (z : (i j : E.I₀) → (k : E.I₁ i j) → E.Y k F.Y (u₁ i j k)) (hii' : i = i') (hjj' : j = j') (k : E.I₁ i j) :
                                                CategoryStruct.comp (congrIndexOneOfEqIso hii' hjj' k).hom (z i j k) = CategoryStruct.comp (z i' j' ((congrIndexOneOfEq hii' hjj') k)) (CategoryStruct.comp (eqToHom ) (congrIndexOneOfEqIso (u₁ i j k)).hom)
                                                theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso_hom_naturality_assoc {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} {i i' j j' : E.I₀} (u₀ : E.I₀F.I₀) (u₁ : (i j : E.I₀) → E.I₁ i jF.I₁ (u₀ i) (u₀ j)) (z : (i j : E.I₀) → (k : E.I₁ i j) → E.Y k F.Y (u₁ i j k)) (hii' : i = i') (hjj' : j = j') (k : E.I₁ i j) {Z : C} (h : F.Y (u₁ i j k) Z) :
                                                theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso_inv_naturality {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} {i i' j j' : E.I₀} (u₀ : E.I₀F.I₀) (u₁ : (i j : E.I₀) → E.I₁ i jF.I₁ (u₀ i) (u₀ j)) (z : (i j : E.I₀) → (k : E.I₁ i j) → E.Y k F.Y (u₁ i j k)) (hii' : i = i') (hjj' : j = j') (k : E.I₁ i j) :
                                                CategoryStruct.comp (congrIndexOneOfEqIso hii' hjj' k).inv (CategoryStruct.comp (z i' j' ((congrIndexOneOfEq hii' hjj') k)) (eqToHom )) = CategoryStruct.comp (z i j k) (congrIndexOneOfEqIso (u₁ i j k)).inv
                                                theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso_inv_naturality_assoc {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} {i i' j j' : E.I₀} (u₀ : E.I₀F.I₀) (u₁ : (i j : E.I₀) → E.I₁ i jF.I₁ (u₀ i) (u₀ j)) (z : (i j : E.I₀) → (k : E.I₁ i j) → E.Y k F.Y (u₁ i j k)) (hii' : i = i') (hjj' : j = j') (k : E.I₁ i j) {Z : C} (h : F.Y ((congrIndexOneOfEq ) (u₁ i j k)) Z) :
                                                theorem CategoryTheory.PreOneHypercover.Hom.ext' {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} {f g : E.Hom F} (hs₀ : f.s₀ = g.s₀) (hh₀ : ∀ (i : E.I₀), f.h₀ i = CategoryStruct.comp (g.h₀ i) (eqToHom )) (hs₁ : ∀ (i j : E.I₀) (k : E.I₁ i j), f.s₁ k = (congrIndexOneOfEq ) (g.s₁ k)) (hh₁ : ∀ (i j : E.I₀) (k : E.I₁ i j), f.h₁ k = CategoryStruct.comp (g.h₁ k) (CategoryStruct.comp (congrIndexOneOfEqIso (g.s₁ k)).inv (eqToHom ))) :
                                                f = g
                                                theorem CategoryTheory.PreOneHypercover.Hom.ext'_iff {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} {f g : E.Hom F} :
                                                f = g ∃ (hs₀ : f.s₀ = g.s₀) (_ : ∀ (i : E.I₀), f.h₀ i = CategoryStruct.comp (g.h₀ i) (eqToHom )) (hs₁ : ∀ (i j : E.I₀) (k : E.I₁ i j), f.s₁ k = (congrIndexOneOfEq ) (g.s₁ k)), ∀ (i j : E.I₀) (k : E.I₁ i j), f.h₁ k = CategoryStruct.comp (g.h₁ k) (CategoryStruct.comp (congrIndexOneOfEqIso (g.s₁ k)).inv (eqToHom ))
                                                theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEq_equiv {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} (s₀ : E.I₀ F.I₀) (s₁ : i j : E.I₀⦄ → E.I₁ i j F.I₁ (s₀ i) (s₀ j)) {i j : E.I₀} (k : E.I₁ i j) :
                                                (congrIndexOneOfEq ) k = s₁.symm ((congrIndexOneOfEq ) (s₁ k))
                                                theorem CategoryTheory.PreOneHypercover.isoMk_aux {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} (s₀ : E.I₀ F.I₀) (s₁ : i j : E.I₀⦄ → E.I₁ i j F.I₁ (s₀ i) (s₀ j)) {i j : E.I₀} (h₁ : i j : E.I₀⦄ → (k : E.I₁ i j) → E.Y k F.Y (s₁ k)) (k : E.I₁ i j) :

                                                (Implementation): Auxiliary lemma for CategoryTheory.PreOneHypercover.isoMk.

                                                theorem CategoryTheory.PreOneHypercover.isoMk_aux_assoc {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} (s₀ : E.I₀ F.I₀) (s₁ : i j : E.I₀⦄ → E.I₁ i j F.I₁ (s₀ i) (s₀ j)) {i j : E.I₀} (h₁ : i j : E.I₀⦄ → (k : E.I₁ i j) → E.Y k F.Y (s₁ k)) (k : E.I₁ i j) {Z : C} (h : E.Y (s₁.symm ((congrIndexOneOfEq ) (s₁ k))) Z) :

                                                (Implementation): Auxiliary lemma for CategoryTheory.PreOneHypercover.isoMk.

                                                def CategoryTheory.PreOneHypercover.isoMk {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (s₀ : E.I₀ F.I₀) (h₀ : (i : E.I₀) → E.X i F.X (s₀ i)) (s₁ : i j : E.I₀⦄ → E.I₁ i j F.I₁ (s₀ i) (s₀ j)) (h₁ : i j : E.I₀⦄ → (k : E.I₁ i j) → E.Y k F.Y (s₁ k)) (w₀ : ∀ (i : E.I₀), CategoryStruct.comp (h₀ i).hom (F.f (s₀ i)) = E.f i := by cat_disch) (w₁₁ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₁ (s₁ k)) = CategoryStruct.comp (E.p₁ k) (h₀ i).hom := by cat_disch) (w₁₂ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₂ (s₁ k)) = CategoryStruct.comp (E.p₂ k) (h₀ j).hom := by cat_disch) :
                                                E F

                                                Construct an isomorphism of 1-hypercovers by giving the compatibility conditions only in the forward direction.

                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.isoMk_inv_s₁ {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (s₀ : E.I₀ F.I₀) (h₀ : (i : E.I₀) → E.X i F.X (s₀ i)) (s₁ : i j : E.I₀⦄ → E.I₁ i j F.I₁ (s₀ i) (s₀ j)) (h₁ : i j : E.I₀⦄ → (k : E.I₁ i j) → E.Y k F.Y (s₁ k)) (w₀ : ∀ (i : E.I₀), CategoryStruct.comp (h₀ i).hom (F.f (s₀ i)) = E.f i := by cat_disch) (w₁₁ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₁ (s₁ k)) = CategoryStruct.comp (E.p₁ k) (h₀ i).hom := by cat_disch) (w₁₂ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₂ (s₁ k)) = CategoryStruct.comp (E.p₂ k) (h₀ j).hom := by cat_disch) {i j : F.I₀} (k : F.I₁ i j) :
                                                  (isoMk s₀ h₀ s₁ h₁ w₀ w₁₁ w₁₂).inv.s₁ k = s₁.symm ((congrIndexOneOfEq ) k)
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.isoMk_inv_h₀ {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (s₀ : E.I₀ F.I₀) (h₀ : (i : E.I₀) → E.X i F.X (s₀ i)) (s₁ : i j : E.I₀⦄ → E.I₁ i j F.I₁ (s₀ i) (s₀ j)) (h₁ : i j : E.I₀⦄ → (k : E.I₁ i j) → E.Y k F.Y (s₁ k)) (w₀ : ∀ (i : E.I₀), CategoryStruct.comp (h₀ i).hom (F.f (s₀ i)) = E.f i := by cat_disch) (w₁₁ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₁ (s₁ k)) = CategoryStruct.comp (E.p₁ k) (h₀ i).hom := by cat_disch) (w₁₂ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₂ (s₁ k)) = CategoryStruct.comp (E.p₂ k) (h₀ j).hom := by cat_disch) (i : F.I₀) :
                                                  (isoMk s₀ h₀ s₁ h₁ w₀ w₁₁ w₁₂).inv.h₀ i = CategoryStruct.comp (eqToHom ) (h₀ (s₀.symm i)).inv
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.isoMk_hom_s₀ {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (s₀ : E.I₀ F.I₀) (h₀ : (i : E.I₀) → E.X i F.X (s₀ i)) (s₁ : i j : E.I₀⦄ → E.I₁ i j F.I₁ (s₀ i) (s₀ j)) (h₁ : i j : E.I₀⦄ → (k : E.I₁ i j) → E.Y k F.Y (s₁ k)) (w₀ : ∀ (i : E.I₀), CategoryStruct.comp (h₀ i).hom (F.f (s₀ i)) = E.f i := by cat_disch) (w₁₁ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₁ (s₁ k)) = CategoryStruct.comp (E.p₁ k) (h₀ i).hom := by cat_disch) (w₁₂ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₂ (s₁ k)) = CategoryStruct.comp (E.p₂ k) (h₀ j).hom := by cat_disch) (a : E.I₀) :
                                                  (isoMk s₀ h₀ s₁ h₁ w₀ w₁₁ w₁₂).hom.s₀ a = s₀ a
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.isoMk_inv_h₁ {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (s₀ : E.I₀ F.I₀) (h₀ : (i : E.I₀) → E.X i F.X (s₀ i)) (s₁ : i j : E.I₀⦄ → E.I₁ i j F.I₁ (s₀ i) (s₀ j)) (h₁ : i j : E.I₀⦄ → (k : E.I₁ i j) → E.Y k F.Y (s₁ k)) (w₀ : ∀ (i : E.I₀), CategoryStruct.comp (h₀ i).hom (F.f (s₀ i)) = E.f i := by cat_disch) (w₁₁ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₁ (s₁ k)) = CategoryStruct.comp (E.p₁ k) (h₀ i).hom := by cat_disch) (w₁₂ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₂ (s₁ k)) = CategoryStruct.comp (E.p₂ k) (h₀ j).hom := by cat_disch) {i j : F.I₀} (k : F.I₁ i j) :
                                                  (isoMk s₀ h₀ s₁ h₁ w₀ w₁₁ w₁₂).inv.h₁ k = CategoryStruct.comp (congrIndexOneOfEqIso k).inv (CategoryStruct.comp (eqToHom ) (h₁ (s₁.symm ((congrIndexOneOfEq ) k))).inv)
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.isoMk_hom_h₁ {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (s₀ : E.I₀ F.I₀) (h₀ : (i : E.I₀) → E.X i F.X (s₀ i)) (s₁ : i j : E.I₀⦄ → E.I₁ i j F.I₁ (s₀ i) (s₀ j)) (h₁ : i j : E.I₀⦄ → (k : E.I₁ i j) → E.Y k F.Y (s₁ k)) (w₀ : ∀ (i : E.I₀), CategoryStruct.comp (h₀ i).hom (F.f (s₀ i)) = E.f i := by cat_disch) (w₁₁ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₁ (s₁ k)) = CategoryStruct.comp (E.p₁ k) (h₀ i).hom := by cat_disch) (w₁₂ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₂ (s₁ k)) = CategoryStruct.comp (E.p₂ k) (h₀ j).hom := by cat_disch) {i✝ j✝ : E.I₀} (k : E.I₁ i✝ j✝) :
                                                  (isoMk s₀ h₀ s₁ h₁ w₀ w₁₁ w₁₂).hom.h₁ k = (h₁ k).hom
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.isoMk_inv_s₀ {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (s₀ : E.I₀ F.I₀) (h₀ : (i : E.I₀) → E.X i F.X (s₀ i)) (s₁ : i j : E.I₀⦄ → E.I₁ i j F.I₁ (s₀ i) (s₀ j)) (h₁ : i j : E.I₀⦄ → (k : E.I₁ i j) → E.Y k F.Y (s₁ k)) (w₀ : ∀ (i : E.I₀), CategoryStruct.comp (h₀ i).hom (F.f (s₀ i)) = E.f i := by cat_disch) (w₁₁ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₁ (s₁ k)) = CategoryStruct.comp (E.p₁ k) (h₀ i).hom := by cat_disch) (w₁₂ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₂ (s₁ k)) = CategoryStruct.comp (E.p₂ k) (h₀ j).hom := by cat_disch) (a : F.I₀) :
                                                  (isoMk s₀ h₀ s₁ h₁ w₀ w₁₁ w₁₂).inv.s₀ a = s₀.symm a
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.isoMk_hom_s₁ {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (s₀ : E.I₀ F.I₀) (h₀ : (i : E.I₀) → E.X i F.X (s₀ i)) (s₁ : i j : E.I₀⦄ → E.I₁ i j F.I₁ (s₀ i) (s₀ j)) (h₁ : i j : E.I₀⦄ → (k : E.I₁ i j) → E.Y k F.Y (s₁ k)) (w₀ : ∀ (i : E.I₀), CategoryStruct.comp (h₀ i).hom (F.f (s₀ i)) = E.f i := by cat_disch) (w₁₁ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₁ (s₁ k)) = CategoryStruct.comp (E.p₁ k) (h₀ i).hom := by cat_disch) (w₁₂ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₂ (s₁ k)) = CategoryStruct.comp (E.p₂ k) (h₀ j).hom := by cat_disch) {i✝ j✝ : E.I₀} (k : E.I₁ i✝ j✝) :
                                                  (isoMk s₀ h₀ s₁ h₁ w₀ w₁₁ w₁₂).hom.s₁ k = s₁ k
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.isoMk_hom_h₀ {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (s₀ : E.I₀ F.I₀) (h₀ : (i : E.I₀) → E.X i F.X (s₀ i)) (s₁ : i j : E.I₀⦄ → E.I₁ i j F.I₁ (s₀ i) (s₀ j)) (h₁ : i j : E.I₀⦄ → (k : E.I₁ i j) → E.Y k F.Y (s₁ k)) (w₀ : ∀ (i : E.I₀), CategoryStruct.comp (h₀ i).hom (F.f (s₀ i)) = E.f i := by cat_disch) (w₁₁ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₁ (s₁ k)) = CategoryStruct.comp (E.p₁ k) (h₀ i).hom := by cat_disch) (w₁₂ : ∀ ⦃i j : E.I₀⦄ (k : E.I₁ i j), CategoryStruct.comp (h₁ k).hom (F.p₂ (s₁ k)) = CategoryStruct.comp (E.p₂ k) (h₀ j).hom := by cat_disch) (i : E.I₀) :
                                                  (isoMk s₀ h₀ s₁ h₁ w₀ w₁₁ w₁₂).hom.h₀ i = (h₀ i).hom
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.hom_inv_s₀_apply {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (e : E F) (i : E.I₀) :
                                                  e.inv.s₀ (e.hom.s₀ i) = i
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.inv_hom_s₀_apply {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (e : E F) (i : F.I₀) :
                                                  e.hom.s₀ (e.inv.s₀ i) = i
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.hom_inv_s₁_apply {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (e : E F) {i j : E.I₀} (k : E.I₁ i j) :
                                                  e.inv.s₁ (e.hom.s₁ k) = (congrIndexOneOfEq ) k
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.inv_hom_s₁_apply {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (e : E F) {i j : F.I₀} (k : F.I₁ i j) :
                                                  e.hom.s₁ (e.inv.s₁ k) = (congrIndexOneOfEq ) k
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.hom_inv_h₀ {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (e : E F) (i : E.I₀) :
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.hom_inv_h₀_assoc {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (e : E F) (i : E.I₀) {Z : C} (h : E.X (e.inv.s₀ (e.hom.s₀ i)) Z) :
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.inv_hom_h₀ {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (e : E F) (i : F.I₀) :
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.inv_hom_h₀_assoc {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (e : E F) (i : F.I₀) {Z : C} (h : F.X (e.hom.s₀ (e.inv.s₀ i)) Z) :
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.hom_inv_h₁ {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (e : E F) {i j : E.I₀} (k : E.I₁ i j) :
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.hom_inv_h₁_assoc {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (e : E F) {i j : E.I₀} (k : E.I₁ i j) {Z : C} (h : E.Y (e.inv.s₁ (e.hom.s₁ k)) Z) :
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.inv_hom_h₁ {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (e : E F) {i j : F.I₀} (k : F.I₁ i j) :
                                                  @[simp]
                                                  theorem CategoryTheory.PreOneHypercover.inv_hom_h₁_assoc {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (e : E F) {i j : F.I₀} (k : F.I₁ i j) {Z : C} (h : F.Y (e.hom.s₁ (e.inv.s₁ k)) Z) :
                                                  instance CategoryTheory.PreOneHypercover.instIsIsoH₀Hom {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (e : E F) (i : E.I₀) :
                                                  IsIso (e.hom.h₀ i)
                                                  instance CategoryTheory.PreOneHypercover.instIsIsoH₀Inv {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (e : E F) (i : F.I₀) :
                                                  IsIso (e.inv.h₀ i)
                                                  instance CategoryTheory.PreOneHypercover.instIsIsoH₁Hom {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (e : E F) {i j : E.I₀} (k : E.I₁ i j) :
                                                  IsIso (e.hom.h₁ k)
                                                  instance CategoryTheory.PreOneHypercover.instIsIsoH₁Inv {C : Type u} [Category.{v, u} C] {S : C} {E F : PreOneHypercover S} (e : E F) {i j : F.I₀} (k : F.I₁ i j) :
                                                  IsIso (e.inv.h₁ k)

                                                  A refinement morphism E ⟶ F induces a functor between the multifork indexing categories.

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

                                                    Isomorphic pre-1-hypercovers have equivalent mutifork index categories.

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

                                                      If E and F are isomorphic pre-1-hypercovers and G is a presheaf, the multifork for E is exact if and only if the multifork for E is exact.

                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        noncomputable def CategoryTheory.PreOneHypercover.interFst {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) (F : PreOneHypercover S) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] [∀ (i j : E.I₀) (k : E.I₁ i j) (a b : F.I₀) (l : F.I₁ a b), Limits.HasPullback (CategoryStruct.comp (E.p₁ k) (E.f i)) (CategoryStruct.comp (F.p₁ l) (F.f a))] :
                                                        (E.inter F).Hom E

                                                        First projection from the intersection of two pre-1-hypercovers.

                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        Instances For
                                                          @[simp]
                                                          theorem CategoryTheory.PreOneHypercover.interFst_toHom {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) (F : PreOneHypercover S) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] [∀ (i j : E.I₀) (k : E.I₁ i j) (a b : F.I₀) (l : F.I₁ a b), Limits.HasPullback (CategoryStruct.comp (E.p₁ k) (E.f i)) (CategoryStruct.comp (F.p₁ l) (F.f a))] :
                                                          @[simp]
                                                          theorem CategoryTheory.PreOneHypercover.interFst_s₁ {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) (F : PreOneHypercover S) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] [∀ (i j : E.I₀) (k : E.I₁ i j) (a b : F.I₀) (l : F.I₁ a b), Limits.HasPullback (CategoryStruct.comp (E.p₁ k) (E.f i)) (CategoryStruct.comp (F.p₁ l) (F.f a))] {i j : (E.inter F).I₀} (k : (E.inter F).I₁ i j) :
                                                          (E.interFst F).s₁ k = k.1
                                                          noncomputable def CategoryTheory.PreOneHypercover.interSnd {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) (F : PreOneHypercover S) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] [∀ (i j : E.I₀) (k : E.I₁ i j) (a b : F.I₀) (l : F.I₁ a b), Limits.HasPullback (CategoryStruct.comp (E.p₁ k) (E.f i)) (CategoryStruct.comp (F.p₁ l) (F.f a))] :
                                                          (E.inter F).Hom F

                                                          Second projection from the intersection of two pre-1-hypercovers.

                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            @[simp]
                                                            theorem CategoryTheory.PreOneHypercover.interSnd_toHom {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) (F : PreOneHypercover S) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] [∀ (i j : E.I₀) (k : E.I₁ i j) (a b : F.I₀) (l : F.I₁ a b), Limits.HasPullback (CategoryStruct.comp (E.p₁ k) (E.f i)) (CategoryStruct.comp (F.p₁ l) (F.f a))] :
                                                            @[simp]
                                                            theorem CategoryTheory.PreOneHypercover.interSnd_s₁ {C : Type u} [Category.{v, u} C] {S : C} (E : PreOneHypercover S) (F : PreOneHypercover S) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] [∀ (i j : E.I₀) (k : E.I₁ i j) (a b : F.I₀) (l : F.I₁ a b), Limits.HasPullback (CategoryStruct.comp (E.p₁ k) (E.f i)) (CategoryStruct.comp (F.p₁ l) (F.f a))] {i j : (E.inter F).I₀} (k : (E.inter F).I₁ i j) :
                                                            (E.interSnd F).s₁ k = k.2
                                                            noncomputable def CategoryTheory.PreOneHypercover.interLift {C : Type u} [Category.{v, u} C] {S : C} {E : PreOneHypercover S} {F : PreOneHypercover S} [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] [∀ (i j : E.I₀) (k : E.I₁ i j) (a b : F.I₀) (l : F.I₁ a b), Limits.HasPullback (CategoryStruct.comp (E.p₁ k) (E.f i)) (CategoryStruct.comp (F.p₁ l) (F.f a))] {G : PreOneHypercover S} (f : G.Hom E) (g : G.Hom F) :
                                                            G.Hom (E.inter F)

                                                            Universal property of the intersection of two pre-1-hypercovers.

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

                                                              The type of 1-hypercovers of an object S : C in a category equipped with a Grothendieck topology J. This can be constructed from a covering of S and a covering of the fibre products of the objects in this covering (see OneHypercover.mk').

                                                              Instances For
                                                                theorem CategoryTheory.GrothendieckTopology.OneHypercover.mem_sieve₁' {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {S : C} (E : J.OneHypercover S) (i₁ i₂ : E.I₀) [Limits.HasPullback (E.f i₁) (E.f i₂)] :
                                                                E.sieve₁' i₁ i₂ J (Limits.pullback (E.f i₁) (E.f i₂))
                                                                def CategoryTheory.GrothendieckTopology.OneHypercover.mk' {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {S : C} (E : PreOneHypercover S) [E.HasPullbacks] (mem₀ : E.sieve₀ J S) (mem₁' : ∀ (i₁ i₂ : E.I₀), E.sieve₁' i₁ i₂ J (Limits.pullback (E.f i₁) (E.f i₂))) :

                                                                In order to check that a certain data is a 1-hypercover of S, it suffices to check that the data provides a covering of S and of the fibre products.

                                                                Equations
                                                                Instances For
                                                                  @[simp]
                                                                  theorem CategoryTheory.GrothendieckTopology.OneHypercover.mk'_toPreOneHypercover {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {S : C} (E : PreOneHypercover S) [E.HasPullbacks] (mem₀ : E.sieve₀ J S) (mem₁' : ∀ (i₁ i₂ : E.I₀), E.sieve₁' i₁ i₂ J (Limits.pullback (E.f i₁) (E.f i₂))) :
                                                                  (mk' E mem₀ mem₁').toPreOneHypercover = E

                                                                  If E : J.OneHypercover S and F : Sheaf J A, then F.obj (op S) is a multiequalizer of suitable maps F.obj (op (E.X i)) ⟶ F.obj (op (E.Y j)) induced by E.p₁ j and E.p₂ j.

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

                                                                    Forget the 1-components of a OneHypercover.

                                                                    Equations
                                                                    Instances For

                                                                      The trivial 1-hypercover of S where a single component S.

                                                                      Equations
                                                                      Instances For
                                                                        noncomputable def CategoryTheory.GrothendieckTopology.OneHypercover.inter {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {S : C} [Limits.HasPullbacks C] (E : J.OneHypercover S) (F : J.OneHypercover S) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] [∀ (i j : E.I₀) (k : E.I₁ i j) (a b : F.I₀) (l : F.I₁ a b), Limits.HasPullback (CategoryStruct.comp (E.p₁ k) (E.f i)) (CategoryStruct.comp (F.p₁ l) (F.f a))] :

                                                                        Intersection of two 1-hypercovers.

                                                                        Equations
                                                                        Instances For
                                                                          @[simp]
                                                                          theorem CategoryTheory.GrothendieckTopology.OneHypercover.inter_toPreOneHypercover {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {S : C} [Limits.HasPullbacks C] (E : J.OneHypercover S) (F : J.OneHypercover S) [∀ (i : E.I₀) (j : F.I₀), Limits.HasPullback (E.f i) (F.f j)] [∀ (i j : E.I₀) (k : E.I₁ i j) (a b : F.I₀) (l : F.I₁ a b), Limits.HasPullback (CategoryStruct.comp (E.p₁ k) (E.f i)) (CategoryStruct.comp (F.p₁ l) (F.f a))] :
                                                                          @[reducible, inline]

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

                                                                          Equations
                                                                          Instances For
                                                                            @[implicit_reducible]
                                                                            Equations
                                                                            • One or more equations did not get rendered due to their size.
                                                                            @[simp]
                                                                            theorem CategoryTheory.GrothendieckTopology.OneHypercover.comp_h₀ {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {S : C} {X✝ Y✝ Z✝ : J.OneHypercover S} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) (i : X✝.I₀) :
                                                                            @[simp]
                                                                            theorem CategoryTheory.GrothendieckTopology.OneHypercover.comp_h₁ {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {S : C} {X✝ Y✝ Z✝ : J.OneHypercover S} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) {i✝ j✝ : X✝.I₀} (i : X✝.I₁ i✝ j✝) :
                                                                            @[simp]
                                                                            theorem CategoryTheory.GrothendieckTopology.OneHypercover.id_s₁ {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {S : C} (E : J.OneHypercover S) {i✝ j✝ : E.I₀} (a : E.I₁ i✝ j✝) :
                                                                            @[simp]
                                                                            theorem CategoryTheory.GrothendieckTopology.OneHypercover.id_h₁ {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {S : C} (E : J.OneHypercover S) {i✝ j✝ : E.I₀} (x✝ : E.I₁ i✝ j✝) :
                                                                            @[simp]
                                                                            theorem CategoryTheory.GrothendieckTopology.OneHypercover.comp_s₀ {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {S : C} {X✝ Y✝ Z✝ : J.OneHypercover 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.GrothendieckTopology.OneHypercover.comp_s₁ {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {S : C} {X✝ Y✝ Z✝ : J.OneHypercover S} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) {i✝ j✝ : X✝.I₀} (a✝ : X✝.I₁ i✝ j✝) :
                                                                            (CategoryStruct.comp f g).s₁ a✝ = g.s₁ (f.s₁ a✝)

                                                                            An isomorphism of 1-hypercovers is an isomorphism of pre-1-hypercovers.

                                                                            Equations
                                                                            Instances For

                                                                              The tautological 1-pre-hypercover induced by S : J.Cover X. Its index type I₀ is given by S.Arrow (i.e. all the morphisms in the sieve S), while I₁ is given by all possible pullback cones.

                                                                              Equations
                                                                              • One or more equations did not get rendered due to their size.
                                                                              Instances For
                                                                                @[simp]
                                                                                theorem CategoryTheory.GrothendieckTopology.Cover.preOneHypercover_I₁ {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {X : C} (S : J.Cover X) (f₁ f₂ : S.Arrow) :
                                                                                S.preOneHypercover.I₁ f₁ f₂ = f₁.Relation f₂
                                                                                @[simp]
                                                                                theorem CategoryTheory.GrothendieckTopology.Cover.preOneHypercover_Y {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {X : C} (S : J.Cover X) (x✝ x✝¹ : S.Arrow) (r : x✝.Relation x✝¹) :
                                                                                @[simp]
                                                                                theorem CategoryTheory.GrothendieckTopology.Cover.preOneHypercover_p₁ {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {X : C} (S : J.Cover X) (x✝ x✝¹ : S.Arrow) (r : x✝.Relation x✝¹) :
                                                                                @[simp]
                                                                                theorem CategoryTheory.GrothendieckTopology.Cover.preOneHypercover_p₂ {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {X : C} (S : J.Cover X) (x✝ x✝¹ : S.Arrow) (r : x✝.Relation x✝¹) :
                                                                                theorem CategoryTheory.GrothendieckTopology.Cover.preOneHypercover_sieve₁ {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {X : C} (S : J.Cover X) (f₁ f₂ : S.Arrow) {W : C} (p₁ : W f₁.Y) (p₂ : W f₂.Y) (w : CategoryStruct.comp p₁ f₁.f = CategoryStruct.comp p₂ f₂.f) :

                                                                                The tautological 1-hypercover induced by S : J.Cover X. Its index type I₀ is given by S.Arrow (i.e. all the morphisms in the sieve S), while I₁ is given by all possible pullback cones.

                                                                                Equations
                                                                                Instances For
                                                                                  theorem CategoryTheory.PreZeroHypercover.ext_of_isSeparatedFor {C : Type u} [Category.{v, u} C] {P : Functor Cᵒᵖ (Type u_2)} {S : C} (E : PreZeroHypercover S) (h : Presieve.IsSeparatedFor P E.presieve₀) {x y : P.obj (Opposite.op S)} (hi : ∀ (i : E.I₀), P.map (E.f i).op x = P.map (E.f i).op y) :
                                                                                  x = y

                                                                                  If the pairwise pullbacks exist, this is the pre-1-hypercover where the covers by the pullbacks are given by the pullbacks themselves.

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

                                                                                    If the pairwise pullbacks exist, this is the pre-1-hypercover where the covers by the pullbacks are given by the pullbacks themselves.

                                                                                    Equations
                                                                                    Instances For

                                                                                      Refine a pre-0-hypercover by 0-hypercovers of the pairwise pullbacks.

                                                                                      Equations
                                                                                      • One or more equations did not get rendered due to their size.
                                                                                      Instances For
                                                                                        @[simp]
                                                                                        theorem CategoryTheory.PreZeroHypercover.refineOneHypercover_p₁ {C : Type u} [Category.{v, u} C] {X : C} (E : PreZeroHypercover X) [E.HasPullbacks] (F : (i j : E.I₀) → PreZeroHypercover (Limits.pullback (E.f i) (E.f j))) (i j : E.I₀) (k : (F i j).I₀) :
                                                                                        @[simp]
                                                                                        theorem CategoryTheory.PreZeroHypercover.refineOneHypercover_Y {C : Type u} [Category.{v, u} C] {X : C} (E : PreZeroHypercover X) [E.HasPullbacks] (F : (i j : E.I₀) → PreZeroHypercover (Limits.pullback (E.f i) (E.f j))) (i j : E.I₀) (k : (F i j).I₀) :
                                                                                        (E.refineOneHypercover F).Y k = (F i j).X k
                                                                                        @[simp]
                                                                                        theorem CategoryTheory.PreZeroHypercover.refineOneHypercover_p₂ {C : Type u} [Category.{v, u} C] {X : C} (E : PreZeroHypercover X) [E.HasPullbacks] (F : (i j : E.I₀) → PreZeroHypercover (Limits.pullback (E.f i) (E.f j))) (i j : E.I₀) (k : (F i j).I₀) :
                                                                                        @[simp]
                                                                                        theorem CategoryTheory.PreZeroHypercover.refineOneHypercover_I₁ {C : Type u} [Category.{v, u} C] {X : C} (E : PreZeroHypercover X) [E.HasPullbacks] (F : (i j : E.I₀) → PreZeroHypercover (Limits.pullback (E.f i) (E.f j))) (i j : E.I₀) :
                                                                                        (E.refineOneHypercover F).I₁ i j = (F i j).I₀