Documentation

Poly.ForMathlib.CategoryTheory.PartialProduct

Partial Products #

A partial product is a simultaneous generalization of a product and an exponential object.

A partial product of an object X over a morphism s : E ⟶ B is is an object P together with morphisms fst : P —> A and snd : pullback fst s —> X which is universal among such data.

structure CategoryTheory.PartialProduct.Fan {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} (s : E B) (X : C) :
Type (max u_1 u_2)

A partial product cone over an object X : C and a morphism s : E ⟶ B is an object pt : C together with morphisms Fan.fst : pt —> B and Fan.snd : pullback Fan.fst s —> X.

          X
          ^
  Fan.snd |
          |
          • --------------->   pt
          |                    |
          |        (pb)        | Fan.fst
          v                    v
          E ---------------->  B
                    s
Instances For
    theorem CategoryTheory.PartialProduct.Fan.fst_mk {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} (s : E B) (X : C) {pt : C} (f : pt B) (g : Limits.pullback f s X) :
    { pt := pt, fst := f, snd := g }.fst = f
    def CategoryTheory.PartialProduct.Fan.over {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X : C} (c : Fan s X) :
    Equations
    Instances For
      theorem CategoryTheory.PartialProduct.pullbackMap_comparison {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X P : C} {c : Fan s X} (f : P c.pt) :
      def CategoryTheory.PartialProduct.Fan.extend {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X : C} (c : Fan s X) {A : C} (f : A c.pt) :
      Fan s X

      A map to the apex of a partial product cone induces a partial product cone by precomposition.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem CategoryTheory.PartialProduct.Fan.extend_pt {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X : C} (c : Fan s X) {A : C} (f : A c.pt) :
        (c.extend f).pt = A
        @[simp]
        theorem CategoryTheory.PartialProduct.Fan.extend_snd {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X : C} (c : Fan s X) {A : C} (f : A c.pt) :
        @[simp]
        theorem CategoryTheory.PartialProduct.Fan.extend_fst {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X : C} (c : Fan s X) {A : C} (f : A c.pt) :
        structure CategoryTheory.PartialProduct.Fan.Hom {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X : C} (c c' : Fan s X) :
        Type u_2
        Instances For
          theorem CategoryTheory.PartialProduct.Fan.Hom.ext_iff {C : Type u_1} {inst✝ : Category.{u_2, u_1} C} {inst✝¹ : Limits.HasPullbacks C} {E B : C} {s : E B} {X : C} {c c' : Fan s X} {x y : c.Hom c'} :
          x = y x.hom = y.hom
          theorem CategoryTheory.PartialProduct.Fan.Hom.ext {C : Type u_1} {inst✝ : Category.{u_2, u_1} C} {inst✝¹ : Limits.HasPullbacks C} {E B : C} {s : E B} {X : C} {c c' : Fan s X} {x y : c.Hom c'} (hom : x.hom = y.hom) :
          x = y
          @[simp]
          theorem CategoryTheory.PartialProduct.Fan.Hom.w_left_assoc {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X : C} {c c' : Fan s X} (self : c.Hom c') {Z : C} (h : B Z) :
          @[simp]
          theorem CategoryTheory.PartialProduct.Fan.Hom.w_right_assoc {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X : C} {c c' : Fan s X} (self : c.Hom c') {Z : C} (h : X Z) :
          Equations
          • One or more equations did not get rendered due to their size.
          @[simp]
          @[simp]
          theorem CategoryTheory.PartialProduct.comp_hom {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X : C} {X✝ Y Z : Fan s X} (f : X✝.Hom Y) (g : Y.Hom Z) :
          def CategoryTheory.PartialProduct.Fan.ext {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X : C} {c c' : Fan s X} (e : c.pt c'.pt) (h₁ : CategoryStruct.comp e.hom c'.fst = c.fst) (h₂ : CategoryStruct.comp (pullbackMap e.hom ) c'.snd = c.snd) :
          c c'

          Constructs an isomorphism of PartialProduct.Fans out of an isomorphism of the apexes that commutes with the projections.

          Equations
          Instances For
            structure CategoryTheory.PartialProduct.IsLimit {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X : C} (cone : Fan s X) :
            Type (max u_1 u_2)
            Instances For
              structure CategoryTheory.PartialProduct.LimitFan {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} (s : E B) (X : C) :
              Type (max u_1 u_2)

              A partial product of an object X over a morphism s : E ⟶ B is the universal partial product cone over X and s.

              • cone : Fan s X

                The cone itself

              • isLimit : IsLimit self.cone

                The proof that is the limit cone

              Instances For
                def CategoryTheory.overPullbackToStar {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X : C} [Limits.HasBinaryProducts C] {W : C} (f : W B) (g : Limits.pullback f s X) :
                Equations
                Instances For
                  @[reducible, inline]
                  abbrev CategoryTheory.partialProd {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X : C} (c : PartialProduct.LimitFan s X) :
                  C
                  Equations
                  Instances For
                    @[reducible, inline]
                    Equations
                    Instances For
                      @[reducible, inline]
                      Equations
                      Instances For
                        @[reducible, inline]
                        abbrev CategoryTheory.partialProd.fst {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X : C} (c : PartialProduct.LimitFan s X) :
                        Equations
                        Instances For
                          @[reducible, inline]
                          abbrev CategoryTheory.partialProd.snd {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X : C} (c : PartialProduct.LimitFan s X) :
                          Equations
                          Instances For
                            @[reducible, inline]
                            abbrev CategoryTheory.partialProd.lift {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X W : C} (c : PartialProduct.LimitFan s X) (f : W B) (g : Limits.pullback f s X) :

                            If the partial product of s and X exists, then every pair of morphisms f : W ⟶ B and g : pullback f s ⟶ X induces a morphism W ⟶ partialProd s X.

                            Equations
                            Instances For
                              @[simp]
                              theorem CategoryTheory.partialProd.lift_fst {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X W : C} {c : PartialProduct.LimitFan s X} (f : W B) (g : Limits.pullback f s X) :
                              theorem CategoryTheory.partialProd.lift_fst_assoc {C : Type u_1} [Category.{u_2, u_1} C] [Limits.HasPullbacks C] {E B : C} {s : E B} {X W : C} {c : PartialProduct.LimitFan s X} (f : W B) (g : Limits.pullback f s X) {Z : C} (h : B Z) :