Documentation

Mathlib.CategoryTheory.Limits.Opposites

Limits in C give colimits in Cᵒᵖ. #

We also give special cases for (co)products, (co)equalizers, and pullbacks / pushouts.

Turn a colimit for F : J ⥤ Cᵒᵖ into a limit for F.leftOp : Jᵒᵖ ⥤ C.

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

Turn a limit of F : J ⥤ Cᵒᵖ into a colimit of F.leftOp : Jᵒᵖ ⥤ C.

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

Turn a colimit for F : Jᵒᵖ ⥤ C into a limit for F.rightOp : J ⥤ Cᵒᵖ.

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

Turn a limit for F : Jᵒᵖ ⥤ C into a colimit for F.rightOp : J ⥤ Cᵒᵖ.

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

Turn a colimit for F : Jᵒᵖ ⥤ Cᵒᵖ into a limit for F.unop : J ⥤ C.

Equations

Turn a limit of F : Jᵒᵖ ⥤ Cᵒᵖ into a colimit of F.unop : J ⥤ C.

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

Turn a colimit for F.leftOp : Jᵒᵖ ⥤ C into a limit for F : J ⥤ Cᵒᵖ.

Equations

Turn a limit of F.leftOp : Jᵒᵖ ⥤ C into a colimit of F : J ⥤ Cᵒᵖ.

Equations

Turn a colimit for F.rightOp : J ⥤ Cᵒᵖ into a limit for F : Jᵒᵖ ⥤ C.

Equations

Turn a limit for F.rightOp : J ⥤ Cᵒᵖ into a colimit for F : Jᵒᵖ ⥤ C.

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

Turn a colimit for F.unop : J ⥤ C into a limit for F : Jᵒᵖ ⥤ Cᵒᵖ.

Equations

Turn a limit for F.unop : J ⥤ C into a colimit for F : Jᵒᵖ ⥤ Cᵒᵖ.

Equations

Turn a limit for F.leftOp : Jᵒᵖ ⥤ C into a colimit for F : J ⥤ Cᵒᵖ.

Equations

Turn a colimit for F.leftOp : Jᵒᵖ ⥤ C into a limit for F : J ⥤ Cᵒᵖ.

Equations

Turn a colimit for F.rightOp : J ⥤ Cᵒᵖ into a limit for F : Jᵒᵖ ⥤ C.

Equations

Turn a colimit for F : J ⥤ Cᵒᵖ into a limit for F.leftOp : Jᵒᵖ ⥤ C.

Equations

Turn a colimit for F : Jᵒᵖ ⥤ C into a limit for F.rightOp : J ⥤ Cᵒᵖ.

Equations
@[deprecated CategoryTheory.Limits.isColimitCoconeOfConeUnop (since := "2024-11-01")]

Alias of CategoryTheory.Limits.isColimitCoconeOfConeUnop.


Turn a limit for F.unop : J ⥤ C into a colimit for F : Jᵒᵖ ⥤ Cᵒᵖ.

Equations

If F.leftOp : Jᵒᵖ ⥤ C has a colimit, we can construct a limit for F : J ⥤ Cᵒᵖ.

The limit of F.op is the opposite of colimit F.

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

The limit of F.leftOp is the unopposite of colimit F.

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

The limit of F.rightOp is the opposite of colimit F.

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

The limit of F.unop is the unopposite of colimit F.

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

If C has colimits of shape Jᵒᵖ, we can construct limits in Cᵒᵖ of shape J.

If F.leftOp : Jᵒᵖ ⥤ C has a limit, we can construct a colimit for F : J ⥤ Cᵒᵖ.

The colimit of F.op is the opposite of limit F.

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

The colimit of F.leftOp is the unopposite of limit F.

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

The colimit of F.rightOp is the opposite of limit F.

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

The colimit of F.unop is the unopposite of limit F.

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

If C has colimits of shape Jᵒᵖ, we can construct limits in Cᵒᵖ of shape J.

If C has products indexed by X, then Cᵒᵖ has coproducts indexed by X.

If C has coproducts indexed by X, then Cᵒᵖ has products indexed by X.

instance CategoryTheory.Limits.instHasProductOppositeOp {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} [HasCoproduct Z] :
HasProduct fun (x : α) => Opposite.op (Z x)
def CategoryTheory.Limits.Cofan.op {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} (c : Cofan Z) :
Fan fun (x : α) => Opposite.op (Z x)

A Cofan gives a Fan in the opposite category.

Equations
noncomputable def CategoryTheory.Limits.Cofan.IsColimit.op {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {c : Cofan Z} (hc : IsColimit c) :

If a Cofan is colimit, then its opposite is limit.

Equations
  • One or more equations did not get rendered due to their size.
def CategoryTheory.Limits.opCoproductIsoProduct' {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {c : Cofan Z} {f : Fan fun (x : α) => Opposite.op (Z x)} (hc : IsColimit c) (hf : IsLimit f) :

The canonical isomorphism from the opposite of an abstract coproduct to the corresponding product in the opposite category.

Equations
def CategoryTheory.Limits.opCoproductIsoProduct {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} (Z : αC) [HasCoproduct Z] :
Opposite.op ( Z) ∏ᶜ fun (x : α) => Opposite.op (Z x)

The canonical isomorphism from the opposite of the coproduct to the product in the opposite category.

Equations
  • One or more equations did not get rendered due to their size.
theorem CategoryTheory.Limits.opCoproductIsoProduct'_inv_comp_inj {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {c : Cofan Z} {f : Fan fun (x : α) => Opposite.op (Z x)} (hc : IsColimit c) (hf : IsLimit f) (b : α) :
theorem CategoryTheory.Limits.opCoproductIsoProduct'_comp_self {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {c c' : Cofan Z} {f : Fan fun (x : α) => Opposite.op (Z x)} (hc : IsColimit c) (hc' : IsColimit c') (hf : IsLimit f) :
theorem CategoryTheory.Limits.desc_op_comp_opCoproductIsoProduct'_hom {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {c : Cofan Z} {f : Fan fun (x : α) => Opposite.op (Z x)} (hc : IsColimit c) (hf : IsLimit f) (c' : Cofan Z) :
theorem CategoryTheory.Limits.desc_op_comp_opCoproductIsoProduct_hom {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} [HasCoproduct Z] {X : C} (π : (a : α) → Z a X) :
instance CategoryTheory.Limits.instHasCoproductOppositeOp {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} [HasProduct Z] :
HasCoproduct fun (x : α) => Opposite.op (Z x)
def CategoryTheory.Limits.Fan.op {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} (f : Fan Z) :
Cofan fun (x : α) => Opposite.op (Z x)

A Fan gives a Cofan in the opposite category.

Equations
noncomputable def CategoryTheory.Limits.Fan.IsLimit.op {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {f : Fan Z} (hf : IsLimit f) :

If a Fan is limit, then its opposite is colimit.

Equations
  • One or more equations did not get rendered due to their size.
def CategoryTheory.Limits.opProductIsoCoproduct' {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {f : Fan Z} {c : Cofan fun (x : α) => Opposite.op (Z x)} (hf : IsLimit f) (hc : IsColimit c) :

The canonical isomorphism from the opposite of an abstract product to the corresponding coproduct in the opposite category.

Equations
def CategoryTheory.Limits.opProductIsoCoproduct {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} (Z : αC) [HasProduct Z] :
Opposite.op (∏ᶜ Z) fun (x : α) => Opposite.op (Z x)

The canonical isomorphism from the opposite of the product to the coproduct in the opposite category.

Equations
  • One or more equations did not get rendered due to their size.
theorem CategoryTheory.Limits.proj_comp_opProductIsoCoproduct'_hom {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {f : Fan Z} {c : Cofan fun (x : α) => Opposite.op (Z x)} (hf : IsLimit f) (hc : IsColimit c) (b : α) :
theorem CategoryTheory.Limits.opProductIsoCoproduct'_comp_self {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {f f' : Fan Z} {c : Cofan fun (x : α) => Opposite.op (Z x)} (hf : IsLimit f) (hf' : IsLimit f') (hc : IsColimit c) :
theorem CategoryTheory.Limits.opProductIsoCoproduct'_inv_comp_lift {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} {f : Fan Z} {c : Cofan fun (x : α) => Opposite.op (Z x)} (hf : IsLimit f) (hc : IsColimit c) (f' : Fan Z) :
theorem CategoryTheory.Limits.opProductIsoCoproduct_inv_comp_lift {C : Type u₁} [Category.{v₁, u₁} C] {α : Type u_1} {Z : αC} [HasProduct Z] {X : C} (π : (a : α) → X Z a) :

The canonical isomorphism from the opposite of the binary product to the coproduct in the opposite category.

Equations
  • One or more equations did not get rendered due to their size.
def CategoryTheory.Limits.spanOp {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) :

The canonical isomorphism relating Span f.op g.op and (Cospan f g).op

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.Limits.spanOp_hom_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) (X✝ : WalkingSpan) :
@[simp]
theorem CategoryTheory.Limits.spanOp_inv_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) (X✝ : WalkingSpan) :
def CategoryTheory.Limits.opCospan {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) :

The canonical isomorphism relating (Cospan f g).op and Span f.op g.op

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.Limits.opCospan_inv_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) (X✝ : WalkingCospanᵒᵖ) :
@[simp]
theorem CategoryTheory.Limits.opCospan_hom_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) (X✝ : WalkingCospanᵒᵖ) :
def CategoryTheory.Limits.cospanOp {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Y) (g : X Z) :

The canonical isomorphism relating Cospan f.op g.op and (Span f g).op

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.Limits.cospanOp_inv_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Y) (g : X Z) (X✝ : WalkingCospan) :
@[simp]
theorem CategoryTheory.Limits.cospanOp_hom_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Y) (g : X Z) (X✝ : WalkingCospan) :
def CategoryTheory.Limits.opSpan {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Y) (g : X Z) :

The canonical isomorphism relating (Span f g).op and Cospan f.op g.op

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.Limits.opSpan_hom_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Y) (g : X Z) (X✝ : WalkingSpanᵒᵖ) :
@[simp]
theorem CategoryTheory.Limits.opSpan_inv_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Y) (g : X Z) (X✝ : WalkingSpanᵒᵖ) :
def CategoryTheory.Limits.PushoutCocone.unop {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Y} {g : X Z} (c : PushoutCocone f g) :

The obvious map PushoutCocone f g → PullbackCone f.unop g.unop

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.Limits.PushoutCocone.unop_π_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Y} {g : X Z} (c : PushoutCocone f g) (X✝ : WalkingCospan) :
c.unop.π.app X✝ = CategoryStruct.comp (c.ι.app X✝).unop (Option.rec (Iso.refl X) (fun (val : WalkingPair) => WalkingPair.rec (Iso.refl Y) (Iso.refl Z) val) X✝).inv.unop
@[simp]
theorem CategoryTheory.Limits.PushoutCocone.unop_pt {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
theorem CategoryTheory.Limits.PushoutCocone.unop_fst {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
theorem CategoryTheory.Limits.PushoutCocone.unop_snd {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
def CategoryTheory.Limits.PushoutCocone.op {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Y} {g : X Z} (c : PushoutCocone f g) :

The obvious map PushoutCocone f.op g.op → PullbackCone f g

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.Limits.PushoutCocone.op_pt {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
@[simp]
theorem CategoryTheory.Limits.PushoutCocone.op_π_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Y} {g : X Z} (c : PushoutCocone f g) (X✝ : WalkingCospan) :
theorem CategoryTheory.Limits.PushoutCocone.op_fst {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
c.op.fst = c.inl.op
theorem CategoryTheory.Limits.PushoutCocone.op_snd {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
c.op.snd = c.inr.op
def CategoryTheory.Limits.PullbackCone.unop {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Z} {g : Y Z} (c : PullbackCone f g) :

The obvious map PullbackCone f g → PushoutCocone f.unop g.unop

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.Limits.PullbackCone.unop_ι_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Z} {g : Y Z} (c : PullbackCone f g) (X✝ : WalkingSpan) :
c.unop.ι.app X✝ = CategoryStruct.comp (Option.rec (Iso.refl Z) (fun (val : WalkingPair) => WalkingPair.rec (Iso.refl X) (Iso.refl Y) val) X✝).hom.unop (c.π.app X✝).unop
@[simp]
theorem CategoryTheory.Limits.PullbackCone.unop_pt {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
theorem CategoryTheory.Limits.PullbackCone.unop_inl {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
theorem CategoryTheory.Limits.PullbackCone.unop_inr {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
def CategoryTheory.Limits.PullbackCone.op {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Z} {g : Y Z} (c : PullbackCone f g) :

The obvious map PullbackCone f g → PushoutCocone f.op g.op

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.Limits.PullbackCone.op_pt {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
@[simp]
theorem CategoryTheory.Limits.PullbackCone.op_ι_app {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Z} {g : Y Z} (c : PullbackCone f g) (X✝ : WalkingSpan) :
theorem CategoryTheory.Limits.PullbackCone.op_inl {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
c.op.inl = c.fst.op
theorem CategoryTheory.Limits.PullbackCone.op_inr {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
c.op.inr = c.snd.op
def CategoryTheory.Limits.PullbackCone.opUnop {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
c.op.unop c

If c is a pullback cone, then c.op.unop is isomorphic to c.

Equations
def CategoryTheory.Limits.PullbackCone.unopOp {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Z} {g : Y Z} (c : PullbackCone f g) :
c.unop.op c

If c is a pullback cone in Cᵒᵖ, then c.unop.op is isomorphic to c.

Equations
def CategoryTheory.Limits.PushoutCocone.opUnop {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
c.op.unop c

If c is a pushout cocone, then c.op.unop is isomorphic to c.

Equations
def CategoryTheory.Limits.PushoutCocone.unopOp {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} {f : X Y} {g : X Z} (c : PushoutCocone f g) :
c.unop.op c

If c is a pushout cocone in Cᵒᵖ, then c.unop.op is isomorphic to c.

Equations
noncomputable def CategoryTheory.Limits.PushoutCocone.isColimitEquivIsLimitOp {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Y} {g : X Z} (c : PushoutCocone f g) :

A pushout cone is a colimit cocone if and only if the corresponding pullback cone in the opposite category is a limit cone.

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

A pushout cone is a colimit cocone in Cᵒᵖ if and only if the corresponding pullback cone in C is a limit cone.

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

A pullback cone is a limit cone if and only if the corresponding pushout cocone in the opposite category is a colimit cocone.

Equations

A pullback cone is a limit cone in Cᵒᵖ if and only if the corresponding pushout cocone in C is a colimit cocone.

Equations
noncomputable def CategoryTheory.Limits.pullbackIsoUnopPushout {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : Y Z) [h : HasPullback f g] [HasPushout f.op g.op] :

The pullback of f and g in C is isomorphic to the pushout of f.op and g.op in Cᵒᵖ.

Equations
  • One or more equations did not get rendered due to their size.
noncomputable def CategoryTheory.Limits.pushoutIsoUnopPullback {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} (f : X Z) (g : X Y) [h : HasPushout f g] [HasPullback f.op g.op] :

The pushout of f and g in C is isomorphic to the pullback of f.op and g.op in Cᵒᵖ.

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

A colimit cokernel cofork gives a limit kernel fork in the opposite category

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

A colimit cokernel cofork in the opposite category gives a limit kernel fork in the original category

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

A limit kernel fork gives a colimit cokernel cofork in the opposite category

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

A limit kernel fork in the opposite category gives a colimit cokernel cofork in the original category

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