@@ -110,13 +110,16 @@ lemma hasProduct_of_equiv_of_iso (f : α → C) (g : β → C)
110110/-- Make a fan `f` into a limit fan by providing `lift`, `fac`, and `uniq` --
111111 just a convenience lemma to avoid having to go through `Discrete` -/
112112@[simps]
113- def mkFanLimit {f : β → C} (t : Fan f) (lift : ∀ s : Fan f, s.pt ⟶ t.pt)
113+ def Fan.IsLimit.mk {f : β → C} (t : Fan f) (lift : ∀ s : Fan f, s.pt ⟶ t.pt)
114114 (fac : ∀ (s : Fan f) (j : β), lift s ≫ t.proj j = s.proj j := by cat_disch)
115115 (uniq : ∀ (s : Fan f) (m : s.pt ⟶ t.pt) (_ : ∀ j : β, m ≫ t.proj j = s.proj j),
116116 m = lift s := by cat_disch) :
117117 IsLimit t :=
118118 { lift }
119119
120+ @[deprecated (since := " 2026-05-19" )]
121+ alias mkFanLimit := Fan.IsLimit.mk
122+
120123/-- Constructor for morphisms to the point of a limit fan. -/
121124def Fan.IsLimit.lift {F : β → C} {c : Fan F} (hc : IsLimit c) {A : C}
122125 (f : ∀ i, A ⟶ F i) : A ⟶ c.pt :=
@@ -142,13 +145,16 @@ lemma Fan.IsLimit.hom_ext {I : Type*} {F : I → C} {c : Fan F} (hc : IsLimit c)
142145/-- Make a cofan `f` into a colimit cofan by providing `desc`, `fac`, and `uniq` --
143146 just a convenience lemma to avoid having to go through `Discrete` -/
144147@[simps]
145- def mkCofanColimit {f : β → C} (s : Cofan f) (desc : ∀ t : Cofan f, s.pt ⟶ t.pt)
148+ def Cofan.IsColimit.mk {f : β → C} (s : Cofan f) (desc : ∀ t : Cofan f, s.pt ⟶ t.pt)
146149 (fac : ∀ (t : Cofan f) (j : β), s.inj j ≫ desc t = t.inj j := by cat_disch)
147150 (uniq : ∀ (t : Cofan f) (m : s.pt ⟶ t.pt) (_ : ∀ j : β, s.inj j ≫ m = t.inj j),
148151 m = desc t := by cat_disch) :
149152 IsColimit s :=
150153 { desc }
151154
155+ @[deprecated (since := " 2026-05-19" )]
156+ alias mkCofanColimit := Cofan.IsColimit.mk
157+
152158/-- Constructor for morphisms from the point of a colimit cofan. -/
153159def Cofan.IsColimit.desc {F : β → C} {c : Cofan F} (hc : IsColimit c) {A : C}
154160 (f : ∀ i, F i ⟶ A) : c.pt ⟶ A :=
@@ -311,7 +317,7 @@ def Cofan.isColimitTrans {X : α → C} (c : Cofan X) (hc : IsColimit c)
311317 (hs : ∀ a, IsColimit (Cofan.mk (X a) (π a))) :
312318 IsColimit (Cofan.mk (f := fun ⟨a,b⟩ => Y a b) c.pt
313319 (fun (⟨a, b⟩ : Σ a, _) ↦ π a b ≫ c.inj a)) := by
314- refine mkCofanColimit _ ?_ ?_ ?_
320+ refine Cofan.IsColimit.mk _ ?_ ?_ ?_
315321 · exact fun t ↦ hc.desc (Cofan.mk _ fun a ↦ (hs a).desc (Cofan.mk t.pt (fun b ↦ t.inj ⟨a, b⟩)))
316322 · intro t ⟨a, b⟩
317323 simp only [mk_pt, cofan_mk_inj, Category.assoc]
@@ -610,7 +616,7 @@ instance {ι : Type*} (f : ι → Type*) (g : (i : ι) → (f i) → C)
610616 HasProduct fun p : Σ i, f i => g p.1 p.2 where
611617 exists_limit := Nonempty.intro
612618 { cone := Fan.mk (∏ᶜ fun i => ∏ᶜ g i) (fun X => Pi.π (fun i => ∏ᶜ g i) X.1 ≫ Pi.π (g X.1 ) X.2 )
613- isLimit := mkFanLimit _ (fun s => Pi.lift fun b => Pi.lift fun c => s.proj ⟨b, c⟩)
619+ isLimit := Fan.IsLimit.mk _ (fun s => Pi.lift fun b => Pi.lift fun c => s.proj ⟨b, c⟩)
614620 (by simp)
615621 (by intro s (m : _ ⟶ (∏ᶜ fun i ↦ ∏ᶜ g i)) w; aesop (add norm simp Sigma.forall)) }
616622
@@ -630,7 +636,7 @@ instance {ι : Type*} (f : ι → Type*) (g : (i : ι) → (f i) → C)
630636 exists_colimit := Nonempty.intro
631637 { cocone := Cofan.mk (∐ fun i => ∐ g i)
632638 (fun X => Sigma.ι (g X.1 ) X.2 ≫ Sigma.ι (fun i => ∐ g i) X.1 )
633- isColimit := mkCofanColimit _
639+ isColimit := Cofan.IsColimit.mk _
634640 (fun s => Sigma.desc fun b => Sigma.desc fun c => s.inj ⟨b, c⟩)
635641 (by simp)
636642 (by intro s (m : (∐ fun i ↦ ∐ g i) ⟶ _) w; aesop_cat (add norm simp Sigma.forall)) }
@@ -815,7 +821,7 @@ def productUniqueIso [Unique β] (f : β → C) : ∏ᶜ f ≅ f default :=
815821/-- Any isomorphism is the projection from a single object product. -/
816822def Fan.isLimitMkOfUnique {X Y : C} (e : X ≅ Y) (J : Type *) [Unique J] :
817823 IsLimit (Fan.mk X fun _ : J ↦ e.hom) := by
818- refine mkFanLimit _ (fun s ↦ s.proj default ≫ e.inv) (fun s j ↦ ?_) fun s m hm ↦ ?_
824+ refine Fan.IsLimit.mk _ (fun s ↦ s.proj default ≫ e.inv) (fun s j ↦ ?_) fun s m hm ↦ ?_
819825 · obtain rfl : j = default := Subsingleton.elim _ _
820826 simp
821827 · simpa [← cancel_mono e.hom] using hm default
@@ -850,7 +856,7 @@ def coproductUniqueIso [Unique β] (f : β → C) : ∐ f ≅ f default :=
850856/-- Any isomorphism is the projection from a single object product. -/
851857def Cofan.isColimitMkOfUnique {X Y : C} (e : X ≅ Y) (J : Type *) [Unique J] :
852858 IsColimit (Cofan.mk Y fun _ : J ↦ e.hom) := by
853- refine mkCofanColimit _ (fun s ↦ e.inv ≫ s.inj default) (fun s j ↦ ?_) fun s m hm ↦ ?_
859+ refine Cofan.IsColimit.mk _ (fun s ↦ e.inv ≫ s.inj default) (fun s j ↦ ?_) fun s m hm ↦ ?_
854860 · obtain rfl : j = default := Subsingleton.elim _ _
855861 simp
856862 · simpa [← cancel_epi e.hom] using hm default
@@ -952,7 +958,7 @@ variable {ι ι' : Type*} {X : ι → ι' → C}
952958def Fan.IsLimit.prod (c : ∀ i : ι, Fan (fun j : ι' ↦ X i j)) (hc : ∀ i : ι, IsLimit (c i))
953959 (c' : Fan (fun i : ι ↦ (c i).pt)) (hc' : IsLimit c') :
954960 (IsLimit <| Fan.mk c'.pt fun p : ι × ι' ↦ c'.proj _ ≫ (c p.1 ).proj p.2 ) := by
955- refine mkFanLimit _ (fun t ↦ ?_) ?_ fun t m hm ↦ ?_
961+ refine Fan.IsLimit.mk _ (fun t ↦ ?_) ?_ fun t m hm ↦ ?_
956962 · exact Fan.IsLimit.lift hc' fun i ↦ Fan.IsLimit.lift (hc i) fun j ↦ t.proj (i, j)
957963 · simp
958964 · refine Fan.IsLimit.hom_ext hc' _ _ fun i ↦ ?_
@@ -962,7 +968,7 @@ def Fan.IsLimit.prod (c : ∀ i : ι, Fan (fun j : ι' ↦ X i j)) (hc : ∀ i :
962968def Cofan.IsColimit.prod (c : ∀ i : ι, Cofan (fun j : ι' ↦ X i j)) (hc : ∀ i : ι, IsColimit (c i))
963969 (c' : Cofan (fun i : ι ↦ (c i).pt)) (hc' : IsColimit c') :
964970 (IsColimit <| Cofan.mk c'.pt fun p : ι × ι' ↦ (c p.1 ).inj p.2 ≫ c'.inj _) := by
965- refine mkCofanColimit _ (fun t ↦ ?_) ?_ fun t m hm ↦ ?_
971+ refine Cofan.IsColimit.mk _ (fun t ↦ ?_) ?_ fun t m hm ↦ ?_
966972 · exact Cofan.IsColimit.desc hc' fun i ↦ Cofan.IsColimit.desc (hc i) fun j ↦ t.inj (i, j)
967973 · simp
968974 · refine Cofan.IsColimit.hom_ext hc' _ _ fun i ↦ ?_
0 commit comments