Loogle!
Result
Found 556 declarations mentioning CategoryTheory.Limits.HasPullback. Of these, only the first 200 are shown.
- CategoryTheory.Limits.HasPullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) : Prop - CategoryTheory.Limits.pullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : C - CategoryTheory.Limits.hasPullback_symmetry_of_hasPullbacksAlong 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
(C : Type u) [CategoryTheory.Category.{v, u} C] {S X Y : C} {f : X ⟶ S} [CategoryTheory.Limits.HasPullbacksAlong f] {g : Y ⟶ S} : CategoryTheory.Limits.HasPullback f g - CategoryTheory.Limits.hasPullback_symmetry 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.HasPullback g f - CategoryTheory.Limits.pullback.cone 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.PullbackCone f g - CategoryTheory.Limits.pullback.fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.pullback f g ⟶ X - CategoryTheory.Limits.pullback.snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.pullback f g ⟶ Y - CategoryTheory.Limits.pullback.isLimit 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.pullback.cone f g) - CategoryTheory.Limits.pullbackSymmetry 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.pullback f g ≅ CategoryTheory.Limits.pullback g f - CategoryTheory.Limits.pullbackProdFstIsoProd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] : CategoryTheory.Limits.pullback f CategoryTheory.Limits.prod.fst ≅ X ⨯ Z - CategoryTheory.Limits.pullbackProdSndIsoProd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] : CategoryTheory.Limits.pullback CategoryTheory.Limits.prod.snd f ≅ Z ⨯ X - CategoryTheory.Limits.pullbackIsPullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.PullbackCone.mk (CategoryTheory.Limits.pullback.fst f g) (CategoryTheory.Limits.pullback.snd f g) ⋯) - CategoryTheory.Limits.pullback.lift 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} [CategoryTheory.Limits.HasPullback f g] (h : W ⟶ X) (k : W ⟶ Y) (w : CategoryTheory.CategoryStruct.comp h f = CategoryTheory.CategoryStruct.comp k g := by cat_disch) : W ⟶ CategoryTheory.Limits.pullback f g - CategoryTheory.Limits.pullback.condition 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f g) f = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f g) g - CategoryTheory.Limits.pullback.congrHom 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {f₁ f₂ : X ⟶ Z} {g₁ g₂ : Y ⟶ Z} (h₁ : f₁ = f₂) (h₂ : g₁ = g₂) [CategoryTheory.Limits.HasPullback f₁ g₁] [CategoryTheory.Limits.HasPullback f₂ g₂] : CategoryTheory.Limits.pullback f₁ g₁ ≅ CategoryTheory.Limits.pullback f₂ g₂ - CategoryTheory.Limits.pullback.mapDesc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y S T : C} (f : X ⟶ S) (g : Y ⟶ S) (i : S ⟶ T) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp f i) (CategoryTheory.CategoryStruct.comp g i)] : CategoryTheory.Limits.pullback f g ⟶ CategoryTheory.Limits.pullback (CategoryTheory.CategoryStruct.comp f i) (CategoryTheory.CategoryStruct.comp g i) - CategoryTheory.Limits.pullback.lift_fst_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.pullback.lift (CategoryTheory.Limits.pullback.fst f g) (CategoryTheory.Limits.pullback.snd f g) ⋯ = CategoryTheory.CategoryStruct.id (CategoryTheory.Limits.pullback f g) - CategoryTheory.Limits.pullback.map_id 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.pullback.map f g f g (CategoryTheory.CategoryStruct.id X) (CategoryTheory.CategoryStruct.id Y) (CategoryTheory.CategoryStruct.id Z) ⋯ ⋯ = CategoryTheory.CategoryStruct.id (CategoryTheory.Limits.pullback f g) - CategoryTheory.Limits.pullback.condition_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} [CategoryTheory.Limits.HasPullback f g] {Z✝ : C} (h : Z ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f g) (CategoryTheory.CategoryStruct.comp f h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f g) (CategoryTheory.CategoryStruct.comp g h) - CategoryTheory.Limits.pullback.lift_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} [CategoryTheory.Limits.HasPullback f g] (h : W ⟶ X) (k : W ⟶ Y) (w : CategoryTheory.CategoryStruct.comp h f = CategoryTheory.CategoryStruct.comp k g) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.lift h k w) (CategoryTheory.Limits.pullback.fst f g) = h - CategoryTheory.Limits.pullback.lift_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} [CategoryTheory.Limits.HasPullback f g] (h : W ⟶ X) (k : W ⟶ Y) (w : CategoryTheory.CategoryStruct.comp h f = CategoryTheory.CategoryStruct.comp k g) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.lift h k w) (CategoryTheory.Limits.pullback.snd f g) = k - CategoryTheory.Limits.pullbackSymmetry_hom_comp_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackSymmetry f g).hom (CategoryTheory.Limits.pullback.fst g f) = CategoryTheory.Limits.pullback.snd f g - CategoryTheory.Limits.pullbackSymmetry_hom_comp_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackSymmetry f g).hom (CategoryTheory.Limits.pullback.snd g f) = CategoryTheory.Limits.pullback.fst f g - CategoryTheory.Limits.pullbackComparison 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] : G.obj (CategoryTheory.Limits.pullback f g) ⟶ CategoryTheory.Limits.pullback (G.map f) (G.map g) - CategoryTheory.Limits.pullbackProdFstIsoProd_inv_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).inv (CategoryTheory.Limits.pullback.fst f CategoryTheory.Limits.prod.fst) = CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.pullbackProdSndIsoProd_inv_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).inv (CategoryTheory.Limits.pullback.snd CategoryTheory.Limits.prod.snd f) = CategoryTheory.Limits.prod.snd - CategoryTheory.Limits.pullbackSymmetry_inv_comp_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackSymmetry f g).inv (CategoryTheory.Limits.pullback.fst f g) = CategoryTheory.Limits.pullback.snd g f - CategoryTheory.Limits.pullbackSymmetry_inv_comp_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackSymmetry f g).inv (CategoryTheory.Limits.pullback.snd f g) = CategoryTheory.Limits.pullback.fst g f - CategoryTheory.Limits.pullbackProdFstIsoProd_hom_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).hom CategoryTheory.Limits.prod.fst = CategoryTheory.Limits.pullback.fst f CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.pullbackProdSndIsoProd_hom_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).hom CategoryTheory.Limits.prod.snd = CategoryTheory.Limits.pullback.snd CategoryTheory.Limits.prod.snd f - CategoryTheory.Limits.pullback.lift_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} [CategoryTheory.Limits.HasPullback f g] (h : W ⟶ X) (k : W ⟶ Y) (w : CategoryTheory.CategoryStruct.comp h f = CategoryTheory.CategoryStruct.comp k g) {Z✝ : C} (h✝ : X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.lift h k w) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f g) h✝) = CategoryTheory.CategoryStruct.comp h h✝ - CategoryTheory.Limits.pullback.lift_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} [CategoryTheory.Limits.HasPullback f g] (h : W ⟶ X) (k : W ⟶ Y) (w : CategoryTheory.CategoryStruct.comp h f = CategoryTheory.CategoryStruct.comp k g) {Z✝ : C} (h✝ : Y ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.lift h k w) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f g) h✝) = CategoryTheory.CategoryStruct.comp k h✝ - CategoryTheory.Limits.pullback.map 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z S T : C} (f₁ : W ⟶ S) (f₂ : X ⟶ S) [CategoryTheory.Limits.HasPullback f₁ f₂] (g₁ : Y ⟶ T) (g₂ : Z ⟶ T) [CategoryTheory.Limits.HasPullback g₁ g₂] (i₁ : W ⟶ Y) (i₂ : X ⟶ Z) (i₃ : S ⟶ T) (eq₁ : CategoryTheory.CategoryStruct.comp f₁ i₃ = CategoryTheory.CategoryStruct.comp i₁ g₁) (eq₂ : CategoryTheory.CategoryStruct.comp f₂ i₃ = CategoryTheory.CategoryStruct.comp i₂ g₂) : CategoryTheory.Limits.pullback f₁ f₂ ⟶ CategoryTheory.Limits.pullback g₁ g₂ - CategoryTheory.Limits.pullbackProdFstIsoProd_inv_snd_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f CategoryTheory.Limits.prod.fst) CategoryTheory.Limits.prod.snd) = CategoryTheory.Limits.prod.snd - CategoryTheory.Limits.pullbackProdSndIsoProd_inv_fst_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst CategoryTheory.Limits.prod.snd f) CategoryTheory.Limits.prod.fst) = CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.pullback.lift' 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} [CategoryTheory.Limits.HasPullback f g] (h : W ⟶ X) (k : W ⟶ Y) (w : CategoryTheory.CategoryStruct.comp h f = CategoryTheory.CategoryStruct.comp k g) : { l // CategoryTheory.CategoryStruct.comp l (CategoryTheory.Limits.pullback.fst f g) = h ∧ CategoryTheory.CategoryStruct.comp l (CategoryTheory.Limits.pullback.snd f g) = k } - CategoryTheory.Limits.pullback.congrHom_hom 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {f₁ f₂ : X ⟶ Z} {g₁ g₂ : Y ⟶ Z} (h₁ : f₁ = f₂) (h₂ : g₁ = g₂) [CategoryTheory.Limits.HasPullback f₁ g₁] [CategoryTheory.Limits.HasPullback f₂ g₂] : (CategoryTheory.Limits.pullback.congrHom h₁ h₂).hom = CategoryTheory.Limits.pullback.map f₁ g₁ f₂ g₂ (CategoryTheory.CategoryStruct.id X) (CategoryTheory.CategoryStruct.id Y) (CategoryTheory.CategoryStruct.id Z) ⋯ ⋯ - CategoryTheory.Limits.pullback.congrHom_inv 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {f₁ f₂ : X ⟶ Z} {g₁ g₂ : Y ⟶ Z} (h₁ : f₁ = f₂) (h₂ : g₁ = g₂) [CategoryTheory.Limits.HasPullback f₁ g₁] [CategoryTheory.Limits.HasPullback f₂ g₂] : (CategoryTheory.Limits.pullback.congrHom h₁ h₂).inv = CategoryTheory.Limits.pullback.map f₂ g₂ f₁ g₁ (CategoryTheory.CategoryStruct.id X) (CategoryTheory.CategoryStruct.id Y) (CategoryTheory.CategoryStruct.id Z) ⋯ ⋯ - CategoryTheory.Limits.pullback.exists_lift 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] (h : W ⟶ X) (k : W ⟶ Y) (w : CategoryTheory.CategoryStruct.comp h f = CategoryTheory.CategoryStruct.comp k g := by cat_disch) : ∃ l, CategoryTheory.CategoryStruct.comp l (CategoryTheory.Limits.pullback.fst f g) = h ∧ CategoryTheory.CategoryStruct.comp l (CategoryTheory.Limits.pullback.snd f g) = k - CategoryTheory.Limits.pullbackSymmetry_hom_comp_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] {Z✝ : C} (h : Y ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackSymmetry f g).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst g f) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f g) h - CategoryTheory.Limits.pullbackSymmetry_hom_comp_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] {Z✝ : C} (h : X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackSymmetry f g).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd g f) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f g) h - CategoryTheory.Limits.pullbackProdFstIsoProd_hom_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).hom CategoryTheory.Limits.prod.snd = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f CategoryTheory.Limits.prod.fst) CategoryTheory.Limits.prod.snd - CategoryTheory.Limits.pullbackProdSndIsoProd_hom_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).hom CategoryTheory.Limits.prod.fst = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst CategoryTheory.Limits.prod.snd f) CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.pullbackProdFstIsoProd_inv_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] {Z✝ : C} (h : X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f CategoryTheory.Limits.prod.fst) h) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h - CategoryTheory.Limits.pullbackProdFstIsoProd_inv_snd_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f CategoryTheory.Limits.prod.fst) CategoryTheory.Limits.prod.fst) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst f - CategoryTheory.Limits.pullbackProdSndIsoProd_inv_fst_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst CategoryTheory.Limits.prod.snd f) CategoryTheory.Limits.prod.snd) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd f - CategoryTheory.Limits.pullbackProdSndIsoProd_inv_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] {Z✝ : C} (h : X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd CategoryTheory.Limits.prod.snd f) h) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h - CategoryTheory.Limits.pullbackSymmetry_inv_comp_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] {Z✝ : C} (h : X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackSymmetry f g).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f g) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd g f) h - CategoryTheory.Limits.pullbackSymmetry_inv_comp_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] {Z✝ : C} (h : Y ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackSymmetry f g).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f g) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst g f) h - CategoryTheory.Limits.pullback.map_isIso 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z S T : C} (f₁ : W ⟶ S) (f₂ : X ⟶ S) [CategoryTheory.Limits.HasPullback f₁ f₂] (g₁ : Y ⟶ T) (g₂ : Z ⟶ T) [CategoryTheory.Limits.HasPullback g₁ g₂] (i₁ : W ⟶ Y) (i₂ : X ⟶ Z) (i₃ : S ⟶ T) (eq₁ : CategoryTheory.CategoryStruct.comp f₁ i₃ = CategoryTheory.CategoryStruct.comp i₁ g₁) (eq₂ : CategoryTheory.CategoryStruct.comp f₂ i₃ = CategoryTheory.CategoryStruct.comp i₂ g₂) [CategoryTheory.IsIso i₁] [CategoryTheory.IsIso i₂] [CategoryTheory.IsIso i₃] : CategoryTheory.IsIso (CategoryTheory.Limits.pullback.map f₁ f₂ g₁ g₂ i₁ i₂ i₃ eq₁ eq₂) - CategoryTheory.Limits.pullback.hom_ext 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} [CategoryTheory.Limits.HasPullback f g] {W : C} {k l : W ⟶ CategoryTheory.Limits.pullback f g} (h₀ : CategoryTheory.CategoryStruct.comp k (CategoryTheory.Limits.pullback.fst f g) = CategoryTheory.CategoryStruct.comp l (CategoryTheory.Limits.pullback.fst f g)) (h₁ : CategoryTheory.CategoryStruct.comp k (CategoryTheory.Limits.pullback.snd f g) = CategoryTheory.CategoryStruct.comp l (CategoryTheory.Limits.pullback.snd f g)) : k = l - CategoryTheory.Limits.pullback.hom_ext_iff 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} [CategoryTheory.Limits.HasPullback f g] {W : C} {k l : W ⟶ CategoryTheory.Limits.pullback f g} : k = l ↔ CategoryTheory.CategoryStruct.comp k (CategoryTheory.Limits.pullback.fst f g) = CategoryTheory.CategoryStruct.comp l (CategoryTheory.Limits.pullback.fst f g) ∧ CategoryTheory.CategoryStruct.comp k (CategoryTheory.Limits.pullback.snd f g) = CategoryTheory.CategoryStruct.comp l (CategoryTheory.Limits.pullback.snd f g) - CategoryTheory.Limits.pullbackProdFstIsoProd_hom_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] {Z✝ : C} (h : X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).hom (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f CategoryTheory.Limits.prod.fst) h - CategoryTheory.Limits.pullbackProdSndIsoProd_hom_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] {Z✝ : C} (h : X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).hom (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd CategoryTheory.Limits.prod.snd f) h - CategoryTheory.Limits.pullbackProdFstIsoProd_inv_snd_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] {Z✝ : C} (h : Z ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f CategoryTheory.Limits.prod.fst) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h)) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h - CategoryTheory.Limits.pullbackProdSndIsoProd_inv_fst_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] {Z✝ : C} (h : Z ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst CategoryTheory.Limits.prod.snd f) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h)) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h - CategoryTheory.Limits.pullbackProdFstIsoProd_inv_snd_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] {Z✝ : C} (h : Y ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f CategoryTheory.Limits.prod.fst) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h)) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst (CategoryTheory.CategoryStruct.comp f h) - CategoryTheory.Limits.pullbackProdSndIsoProd_inv_fst_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] {Z✝ : C} (h : Y ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst CategoryTheory.Limits.prod.snd f) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h)) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd (CategoryTheory.CategoryStruct.comp f h) - CategoryTheory.Limits.pullbackProdFstIsoProd_hom_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] {Z✝ : C} (h : Z ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).hom (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f CategoryTheory.Limits.prod.fst) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h) - CategoryTheory.Limits.pullbackProdSndIsoProd_hom_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] {Z✝ : C} (h : Z ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).hom (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst CategoryTheory.Limits.prod.snd f) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h) - CategoryTheory.Limits.pullbackComparison_comp_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackComparison G f g) (CategoryTheory.Limits.pullback.fst (G.map f) (G.map g)) = G.map (CategoryTheory.Limits.pullback.fst f g) - CategoryTheory.Limits.pullbackComparison_comp_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackComparison G f g) (CategoryTheory.Limits.pullback.snd (G.map f) (G.map g)) = G.map (CategoryTheory.Limits.pullback.snd f g) - CategoryTheory.Limits.pullbackComparison_comp_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] {Z✝ : D} (h : G.obj X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackComparison G f g) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (G.map f) (G.map g)) h) = CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.pullback.fst f g)) h - CategoryTheory.Limits.pullbackComparison_comp_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] {Z✝ : D} (h : G.obj Y ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackComparison G f g) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd (G.map f) (G.map g)) h) = CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.pullback.snd f g)) h - CategoryTheory.Limits.map_lift_pullbackComparison 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] {W : C} {h : W ⟶ X} {k : W ⟶ Y} (w : CategoryTheory.CategoryStruct.comp h f = CategoryTheory.CategoryStruct.comp k g) : CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.pullback.lift h k w)) (CategoryTheory.Limits.pullbackComparison G f g) = CategoryTheory.Limits.pullback.lift (G.map h) (G.map k) ⋯ - CategoryTheory.Limits.pullback.map_comp 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z X' Y' Z' X'' Y'' Z'' : C} {f : X ⟶ Z} {g : Y ⟶ Z} {f' : X' ⟶ Z'} {g' : Y' ⟶ Z'} {f'' : X'' ⟶ Z''} {g'' : Y'' ⟶ Z''} (i₁ : X ⟶ X') (j₁ : X' ⟶ X'') (i₂ : Y ⟶ Y') (j₂ : Y' ⟶ Y'') (i₃ : Z ⟶ Z') (j₃ : Z' ⟶ Z'') [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' g'] [CategoryTheory.Limits.HasPullback f'' g''] (e₁ : CategoryTheory.CategoryStruct.comp f i₃ = CategoryTheory.CategoryStruct.comp i₁ f') (e₂ : CategoryTheory.CategoryStruct.comp g i₃ = CategoryTheory.CategoryStruct.comp i₂ g') (e₃ : CategoryTheory.CategoryStruct.comp f' j₃ = CategoryTheory.CategoryStruct.comp j₁ f'') (e₄ : CategoryTheory.CategoryStruct.comp g' j₃ = CategoryTheory.CategoryStruct.comp j₂ g'') : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.map f g f' g' i₁ i₂ i₃ e₁ e₂) (CategoryTheory.Limits.pullback.map f' g' f'' g'' j₁ j₂ j₃ e₃ e₄) = CategoryTheory.Limits.pullback.map f g f'' g'' (CategoryTheory.CategoryStruct.comp i₁ j₁) (CategoryTheory.CategoryStruct.comp i₂ j₂) (CategoryTheory.CategoryStruct.comp i₃ j₃) ⋯ ⋯ - CategoryTheory.Limits.map_lift_pullbackComparison_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] {W : C} {h : W ⟶ X} {k : W ⟶ Y} (w : CategoryTheory.CategoryStruct.comp h f = CategoryTheory.CategoryStruct.comp k g) {Z✝ : D} (h✝ : CategoryTheory.Limits.pullback (G.map f) (G.map g) ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.pullback.lift h k w)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackComparison G f g) h✝) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.lift (G.map h) (G.map k) ⋯) h✝ - CategoryTheory.Limits.pullback.map_comp_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z X' Y' Z' X'' Y'' Z'' : C} {f : X ⟶ Z} {g : Y ⟶ Z} {f' : X' ⟶ Z'} {g' : Y' ⟶ Z'} {f'' : X'' ⟶ Z''} {g'' : Y'' ⟶ Z''} (i₁ : X ⟶ X') (j₁ : X' ⟶ X'') (i₂ : Y ⟶ Y') (j₂ : Y' ⟶ Y'') (i₃ : Z ⟶ Z') (j₃ : Z' ⟶ Z'') [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' g'] [CategoryTheory.Limits.HasPullback f'' g''] (e₁ : CategoryTheory.CategoryStruct.comp f i₃ = CategoryTheory.CategoryStruct.comp i₁ f') (e₂ : CategoryTheory.CategoryStruct.comp g i₃ = CategoryTheory.CategoryStruct.comp i₂ g') (e₃ : CategoryTheory.CategoryStruct.comp f' j₃ = CategoryTheory.CategoryStruct.comp j₁ f'') (e₄ : CategoryTheory.CategoryStruct.comp g' j₃ = CategoryTheory.CategoryStruct.comp j₂ g'') {Z✝ : C} (h : CategoryTheory.Limits.pullback f'' g'' ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.map f g f' g' i₁ i₂ i₃ e₁ e₂) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.map f' g' f'' g'' j₁ j₂ j₃ e₃ e₄) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.map f g f'' g'' (CategoryTheory.CategoryStruct.comp i₁ j₁) (CategoryTheory.CategoryStruct.comp i₂ j₂) (CategoryTheory.CategoryStruct.comp i₃ j₃) ⋯ ⋯) h - CategoryTheory.Limits.pullback.mapDesc_comp 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y S T S' : C} (f : X ⟶ T) (g : Y ⟶ T) (i : T ⟶ S) (i' : S ⟶ S') [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp f i) (CategoryTheory.CategoryStruct.comp g i)] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp f (CategoryTheory.CategoryStruct.comp i i')) (CategoryTheory.CategoryStruct.comp g (CategoryTheory.CategoryStruct.comp i i'))] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.CategoryStruct.comp f i) i') (CategoryTheory.CategoryStruct.comp (CategoryTheory.CategoryStruct.comp g i) i')] : CategoryTheory.Limits.pullback.mapDesc f g (CategoryTheory.CategoryStruct.comp i i') = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.mapDesc f g i) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.mapDesc (CategoryTheory.CategoryStruct.comp f i) (CategoryTheory.CategoryStruct.comp g i) i') (CategoryTheory.Limits.pullback.congrHom ⋯ ⋯).hom) - CategoryTheory.Limits.pullbackComparison_comp 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u_1} [CategoryTheory.Category.{v_1, u_1} E] (F : CategoryTheory.Functor C D) (G : CategoryTheory.Functor D E) {X Y S : C} (f : X ⟶ S) (g : Y ⟶ S) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (F.map f) (F.map g)] [CategoryTheory.Limits.HasPullback (G.map (F.map f)) (G.map (F.map g))] [CategoryTheory.Limits.HasPullback ((F.comp G).map f) ((F.comp G).map g)] : CategoryTheory.Limits.pullbackComparison (F.comp G) f g = CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.pullbackComparison F f g)) (CategoryTheory.Limits.pullbackComparison G (F.map f) (F.map g)) - CategoryTheory.Limits.pullbackComparison_comp_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u_1} [CategoryTheory.Category.{v_1, u_1} E] (F : CategoryTheory.Functor C D) (G : CategoryTheory.Functor D E) {X Y S : C} (f : X ⟶ S) (g : Y ⟶ S) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (F.map f) (F.map g)] [CategoryTheory.Limits.HasPullback (G.map (F.map f)) (G.map (F.map g))] [CategoryTheory.Limits.HasPullback ((F.comp G).map f) ((F.comp G).map g)] {Z : E} (h : CategoryTheory.Limits.pullback (G.map (F.map f)) (G.map (F.map g)) ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackComparison (F.comp G) f g) h = CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.pullbackComparison F f g)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackComparison G (F.map f) (F.map g)) h) - CategoryTheory.Limits.hasEqualizer_precomp_of_hasEqualizer 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {Z : C} (h : Z ⟶ X) [CategoryTheory.Limits.HasEqualizer f g] [CategoryTheory.Limits.HasPullback (CategoryTheory.Limits.equalizer.ι f g) h] : CategoryTheory.Limits.HasEqualizer (CategoryTheory.CategoryStruct.comp h f) (CategoryTheory.CategoryStruct.comp h g) - CategoryTheory.Limits.hasPullback_of_left_iso 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Iso
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.IsIso f] : CategoryTheory.Limits.HasPullback f g - CategoryTheory.Limits.hasPullback_of_right_iso 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Iso
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.IsIso g] : CategoryTheory.Limits.HasPullback f g - CategoryTheory.Limits.has_kernel_pair_of_mono 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Mono
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Mono f] : CategoryTheory.Limits.HasPullback f f - CategoryTheory.Limits.hasPullback_of_left_factors_mono 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Mono
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Z : C} (f : X ⟶ Z) (i : Z ⟶ W) [CategoryTheory.Mono i] : CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp f i) i - CategoryTheory.Limits.hasPullback_of_right_factors_mono 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Mono
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Z : C} (f : X ⟶ Z) (i : Z ⟶ W) [CategoryTheory.Mono i] : CategoryTheory.Limits.HasPullback i (CategoryTheory.CategoryStruct.comp f i) - CategoryTheory.Limits.pullback.fst_of_mono 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Mono
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Mono g] : CategoryTheory.Mono (CategoryTheory.Limits.pullback.fst f g) - CategoryTheory.Limits.pullback.snd_of_mono 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Mono
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Mono f] : CategoryTheory.Mono (CategoryTheory.Limits.pullback.snd f g) - CategoryTheory.Limits.hasPullback_of_comp_mono 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Mono
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ W) (g : Y ⟶ W) (i : W ⟶ Z) [CategoryTheory.Mono i] [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp f i) (CategoryTheory.CategoryStruct.comp g i) - CategoryTheory.Limits.mono_pullback_to_prod 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Mono
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasBinaryProduct X Y] : CategoryTheory.Mono (CategoryTheory.Limits.prod.lift (CategoryTheory.Limits.pullback.fst f g) (CategoryTheory.Limits.pullback.snd f g)) - CategoryTheory.Limits.pullbackIsPullbackOfCompMono 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Mono
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ W) (g : Y ⟶ W) (i : W ⟶ Z) [CategoryTheory.Mono i] [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.PullbackCone.mk (CategoryTheory.Limits.pullback.fst f g) (CategoryTheory.Limits.pullback.snd f g) ⋯) - CategoryTheory.Limits.instHasPullbackOppositeOpOfHasPushout 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (f : X ⟶ Y) (g : X ⟶ Z) [CategoryTheory.Limits.HasPushout f g] : CategoryTheory.Limits.HasPullback f.op g.op - CategoryTheory.Limits.instHasPushoutOppositeOpOfHasPullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.HasPushout f.op g.op - CategoryTheory.Limits.hasPullback_op_iff_hasPushout 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (f : X ⟶ Y) (g : X ⟶ Z) : CategoryTheory.Limits.HasPullback f.op g.op ↔ CategoryTheory.Limits.HasPushout f g - CategoryTheory.Limits.hasPushout_op_iff_hasPullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) : CategoryTheory.Limits.HasPushout f.op g.op ↔ CategoryTheory.Limits.HasPullback f g - CategoryTheory.Limits.instHasPullbackUnopOfHasPushoutOpposite 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} (f : X ⟶ Y) (g : X ⟶ Z) [CategoryTheory.Limits.HasPushout f g] : CategoryTheory.Limits.HasPullback f.unop g.unop - CategoryTheory.Limits.instHasPushoutUnopOfHasPullbackOpposite 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.HasPushout f.unop g.unop - CategoryTheory.Limits.hasPullback_unop_iff_hasPushout 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} (f : X ⟶ Y) (g : X ⟶ Z) : CategoryTheory.Limits.HasPullback f.unop g.unop ↔ CategoryTheory.Limits.HasPushout f g - CategoryTheory.Limits.hasPushout_unop_iff_hasPullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} (f : X ⟶ Z) (g : Y ⟶ Z) : CategoryTheory.Limits.HasPushout f.unop g.unop ↔ CategoryTheory.Limits.HasPullback f g - CategoryTheory.Limits.pullbackIsoUnopPushout 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [h : CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.pullback f g ≅ Opposite.unop (CategoryTheory.Limits.pushout f.op g.op) - CategoryTheory.Limits.pullbackIsoOpPushout 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} (f : X ⟶ Z) (g : Y ⟶ Z) [h : CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.pullback f g ≅ Opposite.op (CategoryTheory.Limits.pushout f.unop g.unop) - CategoryTheory.Limits.pullbackIsoUnopPushout_inv_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackIsoUnopPushout f g).inv (CategoryTheory.Limits.pullback.fst f g) = (CategoryTheory.Limits.pushout.inl f.op g.op).unop - CategoryTheory.Limits.pullbackIsoUnopPushout_inv_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackIsoUnopPushout f g).inv (CategoryTheory.Limits.pullback.snd f g) = (CategoryTheory.Limits.pushout.inr f.op g.op).unop - CategoryTheory.Limits.pullbackIsoUnopPushout_hom_inl 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inl f.op g.op) (CategoryTheory.Limits.pullbackIsoUnopPushout f g).hom.op = (CategoryTheory.Limits.pullback.fst f g).op - CategoryTheory.Limits.pullbackIsoUnopPushout_hom_inr 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inr f.op g.op) (CategoryTheory.Limits.pullbackIsoUnopPushout f g).hom.op = (CategoryTheory.Limits.pullback.snd f g).op - CategoryTheory.Limits.pullbackIsoOpPushout_hom_inl 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inl f.unop g.unop) (CategoryTheory.Limits.pullbackIsoOpPushout f g).hom.unop = (CategoryTheory.Limits.pullback.fst f g).unop - CategoryTheory.Limits.pullbackIsoOpPushout_hom_inr 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inr f.unop g.unop) (CategoryTheory.Limits.pullbackIsoOpPushout f g).hom.unop = (CategoryTheory.Limits.pullback.snd f g).unop - CategoryTheory.Limits.pullbackIsoOpPushout_inv_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackIsoOpPushout f g).inv (CategoryTheory.Limits.pullback.fst f g) = (CategoryTheory.Limits.pushout.inl f.unop g.unop).op - CategoryTheory.Limits.pullbackIsoOpPushout_inv_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackIsoOpPushout f g).inv (CategoryTheory.Limits.pullback.snd f g) = (CategoryTheory.Limits.pushout.inr f.unop g.unop).op - CategoryTheory.Limits.pullbackIsoUnopPushout_inv_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] {Z✝ : C} (h : X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackIsoUnopPushout f g).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f g) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inl f.op g.op).unop h - CategoryTheory.Limits.pullbackIsoUnopPushout_inv_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] {Z✝ : C} (h : Y ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackIsoUnopPushout f g).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f g) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inr f.op g.op).unop h - CategoryTheory.Limits.pullbackIsoOpPushout_hom_inl_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] {Z✝ : C} (h : Opposite.unop (CategoryTheory.Limits.pullback f g) ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inl f.unop g.unop) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackIsoOpPushout f g).hom.unop h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f g).unop h - CategoryTheory.Limits.pullbackIsoOpPushout_hom_inr_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] {Z✝ : C} (h : Opposite.unop (CategoryTheory.Limits.pullback f g) ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inr f.unop g.unop) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackIsoOpPushout f g).hom.unop h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f g).unop h - CategoryTheory.Limits.pullbackIsoUnopPushout_hom_inl_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] {Z✝ : Cᵒᵖ} (h : Opposite.op (CategoryTheory.Limits.pullback f g) ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inl f.op g.op) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackIsoUnopPushout f g).hom.op h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f g).op h - CategoryTheory.Limits.pullbackIsoUnopPushout_hom_inr_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] {Z✝ : Cᵒᵖ} (h : Opposite.op (CategoryTheory.Limits.pullback f g) ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inr f.op g.op) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackIsoUnopPushout f g).hom.op h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f g).op h - CategoryTheory.Limits.pullbackIsoOpPushout_inv_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] {Z✝ : Cᵒᵖ} (h : X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackIsoOpPushout f g).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f g) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inl f.unop g.unop).op h - CategoryTheory.Limits.pullbackIsoOpPushout_inv_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] {Z✝ : Cᵒᵖ} (h : Y ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackIsoOpPushout f g).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f g) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inr f.unop g.unop).op h - CategoryTheory.Limits.op_pullbackMap 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {W X Y Z S T : C} (f₁ : W ⟶ S) (f₂ : X ⟶ S) [CategoryTheory.Limits.HasPullback f₁ f₂] (g₁ : Y ⟶ T) (g₂ : Z ⟶ T) [CategoryTheory.Limits.HasPullback g₁ g₂] (i₁ : W ⟶ Y) (i₂ : X ⟶ Z) (i₃ : S ⟶ T) (eq₁ : CategoryTheory.CategoryStruct.comp f₁ i₃ = CategoryTheory.CategoryStruct.comp i₁ g₁) (eq₂ : CategoryTheory.CategoryStruct.comp f₂ i₃ = CategoryTheory.CategoryStruct.comp i₂ g₂) : (CategoryTheory.Limits.pullback.map f₁ f₂ g₁ g₂ i₁ i₂ i₃ eq₁ eq₂).op = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushoutIsoOpPullback g₁.op g₂.op).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.map g₁.op g₂.op f₁.op f₂.op i₁.op i₂.op i₃.op ⋯ ⋯) (CategoryTheory.Limits.pushoutIsoOpPullback f₁.op f₂.op).hom) - CategoryTheory.Limits.hasPullback_of_preservesPullback 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan f g) G] [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.HasPullback (G.map f) (G.map g) - CategoryTheory.Limits.PreservesPullback.iso 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan f g) G] [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] : G.obj (CategoryTheory.Limits.pullback f g) ≅ CategoryTheory.Limits.pullback (G.map f) (G.map g) - CategoryTheory.Limits.instIsIsoPullbackComparison 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) {X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan f g) G] : CategoryTheory.IsIso (CategoryTheory.Limits.pullbackComparison G f g) - CategoryTheory.Limits.PreservesPullback.of_iso_comparison 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) {X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] [i : CategoryTheory.IsIso (CategoryTheory.Limits.pullbackComparison G f g)] : CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan f g) G - CategoryTheory.Limits.PreservesPullback.iso_hom 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan f g) G] [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] : (CategoryTheory.Limits.PreservesPullback.iso G f g).hom = CategoryTheory.Limits.pullbackComparison G f g - CategoryTheory.Limits.PreservesPullback.iso_hom_fst 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan f g) G] [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesPullback.iso G f g).hom (CategoryTheory.Limits.pullback.fst (G.map f) (G.map g)) = G.map (CategoryTheory.Limits.pullback.fst f g) - CategoryTheory.Limits.PreservesPullback.iso_hom_snd 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan f g) G] [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesPullback.iso G f g).hom (CategoryTheory.Limits.pullback.snd (G.map f) (G.map g)) = G.map (CategoryTheory.Limits.pullback.snd f g) - CategoryTheory.Limits.PreservesPullback.iso_inv_fst 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan f g) G] [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesPullback.iso G f g).inv (G.map (CategoryTheory.Limits.pullback.fst f g)) = CategoryTheory.Limits.pullback.fst (G.map f) (G.map g) - CategoryTheory.Limits.PreservesPullback.iso_inv_snd 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan f g) G] [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesPullback.iso G f g).inv (G.map (CategoryTheory.Limits.pullback.snd f g)) = CategoryTheory.Limits.pullback.snd (G.map f) (G.map g) - CategoryTheory.Limits.isLimitOfHasPullbackOfPreservesLimit 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan f g) G] [CategoryTheory.Limits.HasPullback f g] : have this := ⋯; CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.PullbackCone.mk (G.map (CategoryTheory.Limits.pullback.fst f g)) (G.map (CategoryTheory.Limits.pullback.snd f g)) this) - CategoryTheory.Limits.PreservesPullback.iso_hom_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan f g) G] [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] {Z✝ : D} (h : G.obj X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesPullback.iso G f g).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (G.map f) (G.map g)) h) = CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.pullback.fst f g)) h - CategoryTheory.Limits.PreservesPullback.iso_hom_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan f g) G] [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] {Z✝ : D} (h : G.obj Y ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesPullback.iso G f g).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd (G.map f) (G.map g)) h) = CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.pullback.snd f g)) h - CategoryTheory.Limits.PreservesPullback.iso_inv_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan f g) G] [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] {Z✝ : D} (h : G.obj X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesPullback.iso G f g).inv (CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.pullback.fst f g)) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (G.map f) (G.map g)) h - CategoryTheory.Limits.PreservesPullback.iso_inv_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Pullbacks
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan f g) G] [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (G.map f) (G.map g)] {Z✝ : D} (h : G.obj Y ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesPullback.iso G f g).inv (CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.pullback.snd f g)) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd (G.map f) (G.map g)) h - CategoryTheory.IsPullback.hasPullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Defs
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {P X Y Z : C} {fst : P ⟶ X} {snd : P ⟶ Y} {f : X ⟶ Z} {g : Y ⟶ Z} (h : CategoryTheory.IsPullback fst snd f g) : CategoryTheory.Limits.HasPullback f g - CategoryTheory.IsPullback.of_hasPullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Defs
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.IsPullback (CategoryTheory.Limits.pullback.fst f g) (CategoryTheory.Limits.pullback.snd f g) f g - CategoryTheory.IsPullback.isoPullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Defs
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {P X Y Z : C} {fst : P ⟶ X} {snd : P ⟶ Y} {f : X ⟶ Z} {g : Y ⟶ Z} (h : CategoryTheory.IsPullback fst snd f g) [CategoryTheory.Limits.HasPullback f g] : P ≅ CategoryTheory.Limits.pullback f g - CategoryTheory.IsPullback.isoPullback_hom_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Defs
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {P X Y Z : C} {fst : P ⟶ X} {snd : P ⟶ Y} {f : X ⟶ Z} {g : Y ⟶ Z} (h : CategoryTheory.IsPullback fst snd f g) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp h.isoPullback.hom (CategoryTheory.Limits.pullback.fst f g) = fst - CategoryTheory.IsPullback.isoPullback_hom_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Defs
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {P X Y Z : C} {fst : P ⟶ X} {snd : P ⟶ Y} {f : X ⟶ Z} {g : Y ⟶ Z} (h : CategoryTheory.IsPullback fst snd f g) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp h.isoPullback.hom (CategoryTheory.Limits.pullback.snd f g) = snd - CategoryTheory.IsPullback.isoPullback_inv_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Defs
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {P X Y Z : C} {fst : P ⟶ X} {snd : P ⟶ Y} {f : X ⟶ Z} {g : Y ⟶ Z} (h : CategoryTheory.IsPullback fst snd f g) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp h.isoPullback.inv fst = CategoryTheory.Limits.pullback.fst f g - CategoryTheory.IsPullback.isoPullback_inv_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Defs
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {P X Y Z : C} {fst : P ⟶ X} {snd : P ⟶ Y} {f : X ⟶ Z} {g : Y ⟶ Z} (h : CategoryTheory.IsPullback fst snd f g) [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.CategoryStruct.comp h.isoPullback.inv snd = CategoryTheory.Limits.pullback.snd f g - CategoryTheory.IsPullback.isoPullback_hom_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Defs
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {P X Y Z : C} {fst : P ⟶ X} {snd : P ⟶ Y} {f : X ⟶ Z} {g : Y ⟶ Z} (h : CategoryTheory.IsPullback fst snd f g) [CategoryTheory.Limits.HasPullback f g] {Z✝ : C} (h✝ : X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp h.isoPullback.hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f g) h✝) = CategoryTheory.CategoryStruct.comp fst h✝ - CategoryTheory.IsPullback.isoPullback_hom_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Defs
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {P X Y Z : C} {fst : P ⟶ X} {snd : P ⟶ Y} {f : X ⟶ Z} {g : Y ⟶ Z} (h : CategoryTheory.IsPullback fst snd f g) [CategoryTheory.Limits.HasPullback f g] {Z✝ : C} (h✝ : Y ⟶ Z✝) : CategoryTheory.CategoryStruct.comp h.isoPullback.hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f g) h✝) = CategoryTheory.CategoryStruct.comp snd h✝ - CategoryTheory.IsPullback.isoPullback_inv_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Defs
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {P X Y Z : C} {fst : P ⟶ X} {snd : P ⟶ Y} {f : X ⟶ Z} {g : Y ⟶ Z} (h : CategoryTheory.IsPullback fst snd f g) [CategoryTheory.Limits.HasPullback f g] {Z✝ : C} (h✝ : X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp h.isoPullback.inv (CategoryTheory.CategoryStruct.comp fst h✝) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f g) h✝ - CategoryTheory.IsPullback.isoPullback_inv_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Defs
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {P X Y Z : C} {fst : P ⟶ X} {snd : P ⟶ Y} {f : X ⟶ Z} {g : Y ⟶ Z} (h : CategoryTheory.IsPullback fst snd f g) [CategoryTheory.Limits.HasPullback f g] {Z✝ : C} (h✝ : Y ⟶ Z✝) : CategoryTheory.CategoryStruct.comp h.isoPullback.inv (CategoryTheory.CategoryStruct.comp snd h✝) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f g) h✝ - CategoryTheory.Limits.hasPullbackHorizPaste 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] : CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp f' f) g - CategoryTheory.Limits.hasPullbackVertPaste 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (g' : W ⟶ Y) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (CategoryTheory.Limits.pullback.snd f g) g'] : CategoryTheory.Limits.HasPullback f (CategoryTheory.CategoryStruct.comp g' g) - CategoryTheory.Limits.pullbackLeftPullbackSndIso 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (g' : W ⟶ Y) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (CategoryTheory.Limits.pullback.snd f g) g'] : CategoryTheory.Limits.pullback (CategoryTheory.Limits.pullback.snd f g) g' ≅ CategoryTheory.Limits.pullback f (CategoryTheory.CategoryStruct.comp g' g) - CategoryTheory.Limits.pullbackRightPullbackFstIso 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] : CategoryTheory.Limits.pullback f' (CategoryTheory.Limits.pullback.fst f g) ≅ CategoryTheory.Limits.pullback (CategoryTheory.CategoryStruct.comp f' f) g - CategoryTheory.Limits.pullbackLeftPullbackSndIso_hom_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (g' : W ⟶ Y) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (CategoryTheory.Limits.pullback.snd f g) g'] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackLeftPullbackSndIso f g g').hom (CategoryTheory.Limits.pullback.snd f (CategoryTheory.CategoryStruct.comp g' g)) = CategoryTheory.Limits.pullback.snd (CategoryTheory.Limits.pullback.snd f g) g' - CategoryTheory.Limits.pullbackRightPullbackFstIso_hom_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackRightPullbackFstIso f g f').hom (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp f' f) g) = CategoryTheory.Limits.pullback.fst f' (CategoryTheory.Limits.pullback.fst f g) - CategoryTheory.Limits.pullbackLeftPullbackSndIso_inv_snd_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (g' : W ⟶ Y) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (CategoryTheory.Limits.pullback.snd f g) g'] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackLeftPullbackSndIso f g g').inv (CategoryTheory.Limits.pullback.snd (CategoryTheory.Limits.pullback.snd f g) g') = CategoryTheory.Limits.pullback.snd f (CategoryTheory.CategoryStruct.comp g' g) - CategoryTheory.Limits.pullbackRightPullbackFstIso_inv_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackRightPullbackFstIso f g f').inv (CategoryTheory.Limits.pullback.fst f' (CategoryTheory.Limits.pullback.fst f g)) = CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp f' f) g - CategoryTheory.Limits.pullbackLeftPullbackSndIso_hom_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (g' : W ⟶ Y) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (CategoryTheory.Limits.pullback.snd f g) g'] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackLeftPullbackSndIso f g g').hom (CategoryTheory.Limits.pullback.fst f (CategoryTheory.CategoryStruct.comp g' g)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.Limits.pullback.snd f g) g') (CategoryTheory.Limits.pullback.fst f g) - CategoryTheory.Limits.pullbackRightPullbackFstIso_hom_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackRightPullbackFstIso f g f').hom (CategoryTheory.Limits.pullback.snd (CategoryTheory.CategoryStruct.comp f' f) g) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f' (CategoryTheory.Limits.pullback.fst f g)) (CategoryTheory.Limits.pullback.snd f g) - CategoryTheory.Limits.pullbackLeftPullbackSndIso_inv_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (g' : W ⟶ Y) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (CategoryTheory.Limits.pullback.snd f g) g'] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackLeftPullbackSndIso f g g').inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.Limits.pullback.snd f g) g') (CategoryTheory.Limits.pullback.fst f g)) = CategoryTheory.Limits.pullback.fst f (CategoryTheory.CategoryStruct.comp g' g) - CategoryTheory.Limits.pullbackRightPullbackFstIso_inv_snd_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackRightPullbackFstIso f g f').inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f' (CategoryTheory.Limits.pullback.fst f g)) (CategoryTheory.Limits.pullback.snd f g)) = CategoryTheory.Limits.pullback.snd (CategoryTheory.CategoryStruct.comp f' f) g - CategoryTheory.Limits.pullbackLeftPullbackSndIso_hom_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (g' : W ⟶ Y) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (CategoryTheory.Limits.pullback.snd f g) g'] {Z✝ : C} (h : W ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackLeftPullbackSndIso f g g').hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f (CategoryTheory.CategoryStruct.comp g' g)) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd (CategoryTheory.Limits.pullback.snd f g) g') h - CategoryTheory.Limits.pullbackRightPullbackFstIso_hom_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] {Z✝ : C} (h : W ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackRightPullbackFstIso f g f').hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp f' f) g) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f' (CategoryTheory.Limits.pullback.fst f g)) h - CategoryTheory.Limits.pullbackLeftPullbackSndIso_inv_snd_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (g' : W ⟶ Y) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (CategoryTheory.Limits.pullback.snd f g) g'] {Z✝ : C} (h : W ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackLeftPullbackSndIso f g g').inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd (CategoryTheory.Limits.pullback.snd f g) g') h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f (CategoryTheory.CategoryStruct.comp g' g)) h - CategoryTheory.Limits.pullbackRightPullbackFstIso_inv_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] {Z✝ : C} (h : W ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackRightPullbackFstIso f g f').inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f' (CategoryTheory.Limits.pullback.fst f g)) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp f' f) g) h - CategoryTheory.Limits.pullbackLeftPullbackSndIso_inv_fst_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (g' : W ⟶ Y) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (CategoryTheory.Limits.pullback.snd f g) g'] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackLeftPullbackSndIso f g g').inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.Limits.pullback.snd f g) g') (CategoryTheory.Limits.pullback.snd f g)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f (CategoryTheory.CategoryStruct.comp g' g)) g' - CategoryTheory.Limits.pullbackRightPullbackFstIso_inv_snd_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackRightPullbackFstIso f g f').inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f' (CategoryTheory.Limits.pullback.fst f g)) (CategoryTheory.Limits.pullback.fst f g)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp f' f) g) f' - CategoryTheory.Limits.pullbackLeftPullbackSndIso_hom_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (g' : W ⟶ Y) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (CategoryTheory.Limits.pullback.snd f g) g'] {Z✝ : C} (h : X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackLeftPullbackSndIso f g g').hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f (CategoryTheory.CategoryStruct.comp g' g)) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.Limits.pullback.snd f g) g') (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f g) h) - CategoryTheory.Limits.pullbackRightPullbackFstIso_hom_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] {Z✝ : C} (h : Y ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackRightPullbackFstIso f g f').hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd (CategoryTheory.CategoryStruct.comp f' f) g) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f' (CategoryTheory.Limits.pullback.fst f g)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f g) h) - CategoryTheory.Limits.pullbackLeftPullbackSndIso_inv_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (g' : W ⟶ Y) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (CategoryTheory.Limits.pullback.snd f g) g'] {Z✝ : C} (h : X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackLeftPullbackSndIso f g g').inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.Limits.pullback.snd f g) g') (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f g) h)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f (CategoryTheory.CategoryStruct.comp g' g)) h - CategoryTheory.Limits.pullbackRightPullbackFstIso_inv_snd_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] {Z✝ : C} (h : Y ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackRightPullbackFstIso f g f').inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f' (CategoryTheory.Limits.pullback.fst f g)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f g) h)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd (CategoryTheory.CategoryStruct.comp f' f) g) h - CategoryTheory.Limits.pullbackLeftPullbackSndIso_inv_fst_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (g' : W ⟶ Y) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (CategoryTheory.Limits.pullback.snd f g) g'] {Z✝ : C} (h : Y ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackLeftPullbackSndIso f g g').inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.Limits.pullback.snd f g) g') (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f g) h)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f (CategoryTheory.CategoryStruct.comp g' g)) (CategoryTheory.CategoryStruct.comp g' h) - CategoryTheory.Limits.pullbackRightPullbackFstIso_inv_snd_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] {Z✝ : C} (h : X ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackRightPullbackFstIso f g f').inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f' (CategoryTheory.Limits.pullback.fst f g)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f g) h)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp f' f) g) (CategoryTheory.CategoryStruct.comp f' h) - CategoryTheory.Limits.instHasPullbackCompOfIsIso 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) {X' : C} (i : X' ⟶ X) [CategoryTheory.IsIso i] [CategoryTheory.Limits.HasPullback f g] : CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp i f) g - CategoryTheory.Limits.HasPullback.comp_left_left_iff_of_isIso 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} {X' : C} (i : X' ⟶ X) [CategoryTheory.IsIso i] : CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp i f) g ↔ CategoryTheory.Limits.HasPullback f g - CategoryTheory.IsPullback.instHasPullbackFst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {P X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z} [CategoryTheory.Limits.HasPullbacksAlong f] (h : P ⟶ Y) : CategoryTheory.Limits.HasPullback h (CategoryTheory.Limits.pullback.fst g f) - CategoryTheory.Limits.instHasPullbackCompInv 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z Z' : C} {f : X ⟶ Z} {g : Y ⟶ Z'} (i : Z ⟶ Z') [CategoryTheory.IsIso i] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp f i) g] : CategoryTheory.Limits.HasPullback f (CategoryTheory.CategoryStruct.comp g (CategoryTheory.inv i)) - CategoryTheory.Limits.HasPullback.comp_left_right_iff_of_isIso 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z Z' : C} {f : X ⟶ Z} {g : Y ⟶ Z'} (i : Z ⟶ Z') [CategoryTheory.IsIso i] : CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp f i) g ↔ CategoryTheory.Limits.HasPullback f (CategoryTheory.CategoryStruct.comp g (CategoryTheory.inv i)) - CategoryTheory.Limits.preservesLimitsOfShape_walkingCospan_of_forall_isPullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F : CategoryTheory.Functor C D} (H : ∀ ⦃X Y Z : C⦄ (f : X ⟶ Z) (g : Y ⟶ Z) [CategoryTheory.Limits.HasPullback f g], ∃ P fst snd, CategoryTheory.IsPullback fst snd f g ∧ CategoryTheory.IsPullback (F.map fst) (F.map snd) (F.map f) (F.map g)) : CategoryTheory.Limits.PreservesLimitsOfShape CategoryTheory.Limits.WalkingCospan F - CategoryTheory.IsPullback.of_iso_pullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {P X Y Z : C} {fst : P ⟶ X} {snd : P ⟶ Y} {f : X ⟶ Z} {g : Y ⟶ Z} (h : CategoryTheory.CommSq fst snd f g) [CategoryTheory.Limits.HasPullback f g] (i : P ≅ CategoryTheory.Limits.pullback f g) (w₁ : CategoryTheory.CategoryStruct.comp i.hom (CategoryTheory.Limits.pullback.fst f g) = fst) (w₂ : CategoryTheory.CategoryStruct.comp i.hom (CategoryTheory.Limits.pullback.snd f g) = snd) : CategoryTheory.IsPullback fst snd f g - CategoryTheory.IsPullback.map_fst_comp_fst_snd_comp_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z U S : C} (f : X ⟶ S) (g : Y ⟶ S) (i : Z ⟶ S) [CategoryTheory.Limits.HasPullback i g] (h : U ⟶ CategoryTheory.Limits.pullback i g) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback (CategoryTheory.Limits.pullback.snd f g) (CategoryTheory.CategoryStruct.comp h (CategoryTheory.Limits.pullback.snd i g))] [CategoryTheory.Limits.HasPullback f i] : CategoryTheory.IsPullback (CategoryTheory.Limits.pullback.map (CategoryTheory.Limits.pullback.snd f g) (CategoryTheory.CategoryStruct.comp h (CategoryTheory.Limits.pullback.snd i g)) f i (CategoryTheory.Limits.pullback.fst f g) (CategoryTheory.CategoryStruct.comp h (CategoryTheory.Limits.pullback.fst i g)) g ⋯ ⋯) (CategoryTheory.Limits.pullback.snd (CategoryTheory.Limits.pullback.snd f g) (CategoryTheory.CategoryStruct.comp h (CategoryTheory.Limits.pullback.snd i g))) (CategoryTheory.Limits.pullback.snd f i) (CategoryTheory.CategoryStruct.comp h (CategoryTheory.Limits.pullback.fst i g)) - CategoryTheory.Limits.Cofork.isColimitCoforkPushoutEquivIsColimitForkOpPullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Equalizers
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : C} {f : X ⟶ Y} [CategoryTheory.Limits.HasPullback f f] : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.Cofork.ofπ f ⋯) ≃ CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.Fork.ofι f.op ⋯) - CategoryTheory.Limits.Cofork.isColimitCoforkPushoutEquivIsColimitForkUnopPullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Opposites.Equalizers
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : Cᵒᵖ} {f : X ⟶ Y} [CategoryTheory.Limits.HasPullback f f] : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.Cofork.ofπ f ⋯) ≃ CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.Fork.ofι f.unop ⋯) - CategoryTheory.isRegularEpi_of_EffectiveEpi 📋 Mathlib.CategoryTheory.Limits.Shapes.RegularMono
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {B X : C} (f : X ⟶ B) [CategoryTheory.Limits.HasPullback f f] [CategoryTheory.EffectiveEpi f] : CategoryTheory.IsRegularEpi f - CategoryTheory.regularEpiOfEffectiveEpi 📋 Mathlib.CategoryTheory.Limits.Shapes.RegularMono
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {B X : C} (f : X ⟶ B) [CategoryTheory.Limits.HasPullback f f] [CategoryTheory.EffectiveEpi f] : CategoryTheory.RegularEpi f - CategoryTheory.isRegularEpi_iff_effectiveEpi 📋 Mathlib.CategoryTheory.Limits.Shapes.RegularMono
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {B X : C} (f : X ⟶ B) [CategoryTheory.Limits.HasPullback f f] : CategoryTheory.IsRegularEpi f ↔ CategoryTheory.EffectiveEpi f - CategoryTheory.effectiveEpi_of_kernelPair 📋 Mathlib.CategoryTheory.Limits.Shapes.RegularMono
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {B X : C} (f : X ⟶ B) [CategoryTheory.Limits.HasPullback f f] (hc : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.Cofork.ofπ f ⋯)) : CategoryTheory.EffectiveEpi f - CategoryTheory.regularEpiOfKernelPair 📋 Mathlib.CategoryTheory.Limits.Shapes.RegularMono
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {B X : C} (f : X ⟶ B) [CategoryTheory.Limits.HasPullback f f] (hc : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.Cofork.ofπ f ⋯)) : CategoryTheory.RegularEpi f - CategoryTheory.IsRegularEpi.of_epi_of_exists 📋 Mathlib.CategoryTheory.Limits.Shapes.RegularMono
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X B : C} {f : X ⟶ B} [CategoryTheory.Limits.HasPullback f f] [CategoryTheory.Epi f] (h : ∀ ⦃Z : C⦄ ⦃g : X ⟶ Z⦄, CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f f) g = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f f) g → ∃ u, CategoryTheory.CategoryStruct.comp f u = g) : CategoryTheory.IsRegularEpi f - CategoryTheory.IsKernelPair.of_hasPullback 📋 Mathlib.CategoryTheory.Limits.Shapes.KernelPair
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasPullback f f] : CategoryTheory.IsKernelPair f (CategoryTheory.Limits.pullback.fst f f) (CategoryTheory.Limits.pullback.snd f f) - CategoryTheory.IsKernelPair.pullback 📋 Mathlib.CategoryTheory.Limits.Shapes.KernelPair
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z A : C} {g : Y ⟶ Z} {a₁ a₂ : A ⟶ Y} (h : CategoryTheory.IsKernelPair g a₁ a₂) (f : X ⟶ Z) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f (CategoryTheory.CategoryStruct.comp a₁ g)] : CategoryTheory.IsKernelPair (CategoryTheory.Limits.pullback.fst f g) (CategoryTheory.Limits.pullback.map f (CategoryTheory.CategoryStruct.comp a₁ g) f g (CategoryTheory.CategoryStruct.id X) a₁ (CategoryTheory.CategoryStruct.id Z) ⋯ ⋯) (CategoryTheory.Limits.pullback.map f (CategoryTheory.CategoryStruct.comp a₁ g) f g (CategoryTheory.CategoryStruct.id X) a₂ (CategoryTheory.CategoryStruct.id Z) ⋯ ⋯) - CategoryTheory.Limits.hasPullback_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄] : CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂) - CategoryTheory.Limits.hasPullback_assoc_symm 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)] : CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄ - CategoryTheory.Limits.pullbackAssoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄] [CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)] : CategoryTheory.Limits.pullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄ ≅ CategoryTheory.Limits.pullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂) - CategoryTheory.Limits.pullbackAssoc_hom_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄] [CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackAssoc f₁ f₂ f₃ f₄).hom (CategoryTheory.Limits.pullback.fst f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) (CategoryTheory.Limits.pullback.fst f₁ f₂) - CategoryTheory.Limits.pullbackAssoc_hom_snd_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄] [CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackAssoc f₁ f₂ f₃ f₄).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) (CategoryTheory.Limits.pullback.snd f₃ f₄)) = CategoryTheory.Limits.pullback.snd (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄ - CategoryTheory.Limits.pullbackAssoc_inv_fst_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄] [CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackAssoc f₁ f₂ f₃ f₄).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) (CategoryTheory.Limits.pullback.fst f₁ f₂)) = CategoryTheory.Limits.pullback.fst f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂) - CategoryTheory.Limits.pullbackAssoc_inv_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄] [CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackAssoc f₁ f₂ f₃ f₄).inv (CategoryTheory.Limits.pullback.snd (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) (CategoryTheory.Limits.pullback.snd f₃ f₄) - CategoryTheory.Limits.pullbackAssoc_hom_snd_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄] [CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackAssoc f₁ f₂ f₃ f₄).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) (CategoryTheory.Limits.pullback.fst f₃ f₄)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) (CategoryTheory.Limits.pullback.snd f₁ f₂) - CategoryTheory.Limits.pullbackAssoc_inv_fst_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄] [CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackAssoc f₁ f₂ f₃ f₄).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) (CategoryTheory.Limits.pullback.snd f₁ f₂)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) (CategoryTheory.Limits.pullback.fst f₃ f₄) - CategoryTheory.Limits.pullbackAssoc_hom_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄] [CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)] {Z : C} (h : X₁ ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackAssoc f₁ f₂ f₃ f₄).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₁ f₂) h) - CategoryTheory.Limits.pullbackAssoc_hom_snd_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄] [CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)] {Z : C} (h : X₃ ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackAssoc f₁ f₂ f₃ f₄).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₃ f₄) h)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) h - CategoryTheory.Limits.pullbackAssoc_inv_fst_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄] [CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)] {Z : C} (h : X₁ ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackAssoc f₁ f₂ f₃ f₄).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₁ f₂) h)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) h - CategoryTheory.Limits.pullbackAssoc_inv_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄] [CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)] {Z : C} (h : X₃ ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackAssoc f₁ f₂ f₃ f₄).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₃ f₄) h) - CategoryTheory.Limits.pullbackAssoc_hom_snd_fst_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄] [CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)] {Z : C} (h : X₂ ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackAssoc f₁ f₂ f₃ f₄).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) h)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) h) - CategoryTheory.Limits.pullbackAssoc_inv_fst_snd_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄] [CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)] {Z : C} (h : X₂ ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackAssoc f₁ f₂ f₃ f₄).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) h)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) h) - CategoryTheory.Limits.pullbackAssocIsPullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄] : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.PullbackCone.mk (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) (CategoryTheory.Limits.pullback.fst f₁ f₂)) (CategoryTheory.Limits.pullback.lift (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) (CategoryTheory.Limits.pullback.snd f₁ f₂)) (CategoryTheory.Limits.pullback.snd (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) ⋯) ⋯) - CategoryTheory.Limits.pullbackAssocSymmIsPullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)] : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.PullbackCone.mk (CategoryTheory.Limits.pullback.lift (CategoryTheory.Limits.pullback.fst f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) (CategoryTheory.Limits.pullback.fst f₃ f₄)) ⋯) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) (CategoryTheory.Limits.pullback.snd f₃ f₄)) ⋯) - CategoryTheory.Limits.pullbackPullbackLeftIsPullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄] : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.PullbackCone.mk (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) (CategoryTheory.Limits.pullback.lift (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) (CategoryTheory.Limits.pullback.snd f₁ f₂)) (CategoryTheory.Limits.pullback.snd (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ f₂) f₃) f₄) ⋯) ⋯) - CategoryTheory.Limits.pullbackPullbackRightIsPullback 📋 Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ X₂ X₃ Y₁ Y₂ : C} (f₁ : X₁ ⟶ Y₁) (f₂ : X₂ ⟶ Y₁) (f₃ : X₂ ⟶ Y₂) (f₄ : X₃ ⟶ Y₂) [CategoryTheory.Limits.HasPullback f₁ f₂] [CategoryTheory.Limits.HasPullback f₃ f₄] [CategoryTheory.Limits.HasPullback f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)] : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.PullbackCone.mk (CategoryTheory.Limits.pullback.lift (CategoryTheory.Limits.pullback.fst f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) (CategoryTheory.Limits.pullback.fst f₃ f₄)) ⋯) (CategoryTheory.Limits.pullback.snd f₁ (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f₃ f₄) f₂)) ⋯) - CategoryTheory.Limits.pullback.diagonalObj 📋 Mathlib.CategoryTheory.Limits.Shapes.Diagonal
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasPullback f f] : C - CategoryTheory.Limits.pullback.diagonal 📋 Mathlib.CategoryTheory.Limits.Shapes.Diagonal
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasPullback f f] : X ⟶ CategoryTheory.Limits.pullback.diagonalObj f - CategoryTheory.Limits.pullback.instIsSplitMonoDiagonal 📋 Mathlib.CategoryTheory.Limits.Shapes.Diagonal
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasPullback f f] : CategoryTheory.IsSplitMono (CategoryTheory.Limits.pullback.diagonal f) - CategoryTheory.Limits.pullback.instIsSplitEpiFst 📋 Mathlib.CategoryTheory.Limits.Shapes.Diagonal
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasPullback f f] : CategoryTheory.IsSplitEpi (CategoryTheory.Limits.pullback.fst f f) - CategoryTheory.Limits.pullback.instIsSplitEpiSnd 📋 Mathlib.CategoryTheory.Limits.Shapes.Diagonal
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasPullback f f] : CategoryTheory.IsSplitEpi (CategoryTheory.Limits.pullback.snd f f)
About
Loogle searches Lean and Mathlib definitions and theorems.
You can use Loogle from within the Lean4 VSCode language extension
using the Loogle command from the command palette. You can also try the
#loogle command from LeanSearchClient,
the CLI version, the Loogle
VS Code extension, the lean.nvim
integration or the Zulip bot.
Usage
Loogle finds definitions and lemmas in various ways:
By constant:
🔍Real.sin
finds all lemmas whose statement somehow mentions the sine function.By lemma name substring:
🔍"differ"
finds all lemmas that have"differ"somewhere in their lemma name.By subexpression:
🔍_ * (_ ^ _)
finds all lemmas whose statements somewhere include a product where the second argument is raised to some power.The pattern can also be non-linear, as in
🔍Real.sqrt ?a * Real.sqrt ?aIf the pattern has parameters, they are matched in any order. Both of these will find
List.map:
🔍(?a -> ?b) -> List ?a -> List ?b
🔍List ?a -> (?a -> ?b) -> List ?bBy main conclusion:
🔍|- tsum _ = _ * tsum _
finds all lemmas where the conclusion (the subexpression to the right of all→and∀) has the given shape.As before, if the pattern has parameters, they are matched against the hypotheses of the lemma in any order; for example,
🔍|- _ < _ → tsum _ < tsum _
will findtsum_lt_tsumeven though the hypothesisf i < g iis not the last.You can filter for definitions vs theorems: Using
⊢ (_ : Type _)finds all definitions which provide data while⊢ (_ : Prop)finds all theorems (and definitions of proofs).
If you pass more than one such search filter, separated by commas
Loogle will return lemmas which match all of them. The
search
🔍 Real.sin, "two", tsum, _ * _, _ ^ _, |- _ < _ → _
would find all lemmas which mention the constants Real.sin
and tsum, have "two" as a substring of the
lemma name, include a product and a power somewhere in the type,
and have a hypothesis of the form _ < _ (if
there were any such lemmas). Metavariables (?a) are
assigned independently in each filter.
The #lucky button will directly send you to the
documentation of the first hit.
Source code
You can find the source code for this service at https://github.com/nomeata/loogle. The https://loogle.lean-lang.org/ service is provided by the Lean FRO. Please review the Lean FRO Terms of Use and Privacy Policy.
This is Loogle revision 9f11169 serving mathlib revision ce5dd8c