@@ -107,22 +107,19 @@ variable {C : Type u} [Category.{v} C]
107107/-- Construct a functor out of the wide pullback shape given a J-indexed collection of arrows to a
108108fixed object.
109109-/
110- @[simps]
110+ @[simps, implicit_reducible ]
111111def wideCospan (B : C) (objs : J → C) (arrows : ∀ j : J, objs j ⟶ B) : WidePullbackShape J ⥤ C where
112112 obj j := Option.casesOn j B objs
113113 map f := by
114114 obtain - | j := f
115115 · apply 𝟙 _
116116 · exact arrows j
117117
118- set_option backward.isDefEq.respectTransparency.types false in
119- set_option backward.defeqAttrib.useBackward true in
120118/-- Every diagram is naturally isomorphic (actually, equal) to a `wideCospan` -/
121119def diagramIsoWideCospan (F : WidePullbackShape J ⥤ C) :
122120 F ≅ wideCospan (F.obj none) (fun j => F.obj (some j)) fun j => F.map (Hom.term j) :=
123121 NatIso.ofComponents fun j => eqToIso <| by cat_disch
124122
125- set_option backward.defeqAttrib.useBackward true in
126123/-- Construct a cone over a wide cospan. -/
127124@[simps]
128125def mkCone {F : WidePullbackShape J ⥤ C} {X : C} (f : X ⟶ F.obj none) (π : ∀ j, X ⟶ F.obj (some j))
@@ -233,7 +230,7 @@ variable {C : Type u} [Category.{v} C]
233230/-- Construct a functor out of the wide pushout shape given a J-indexed collection of arrows from a
234231fixed object.
235232-/
236- @[simps]
233+ @[simps, implicit_reducible ]
237234def wideSpan (B : C) (objs : J → C) (arrows : ∀ j : J, B ⟶ objs j) : WidePushoutShape J ⥤ C where
238235 obj j := Option.casesOn j B objs
239236 map f := by
@@ -246,14 +243,11 @@ def wideSpan (B : C) (objs : J → C) (arrows : ∀ j : J, B ⟶ objs j) : WideP
246243 · cases g
247244 simp only [hom_id, Category.comp_id]; congr
248245
249- set_option backward.isDefEq.respectTransparency.types false in
250- set_option backward.defeqAttrib.useBackward true in
251246/-- Every diagram is naturally isomorphic (actually, equal) to a `wideSpan` -/
252247def diagramIsoWideSpan (F : WidePushoutShape J ⥤ C) :
253248 F ≅ wideSpan (F.obj none) (fun j => F.obj (some j)) fun j => F.map (Hom.init j) :=
254249 NatIso.ofComponents fun j => eqToIso <| by cases j; repeat rfl
255250
256- set_option backward.defeqAttrib.useBackward true in
257251/-- Construct a cocone over a wide span. -/
258252@[simps]
259253def mkCocone {F : WidePushoutShape J ⥤ C} {X : C} (f : F.obj none ⟶ X) (ι : ∀ j, F.obj (some j) ⟶ X)
@@ -393,8 +387,6 @@ def π (s : WidePullbackCone f) (i : ι) : s.pt ⟶ Y i :=
393387def base (s : WidePullbackCone f) : s.pt ⟶ X :=
394388 (Cone.π s).app none
395389
396- set_option backward.isDefEq.respectTransparency.types false in
397- set_option backward.defeqAttrib.useBackward true in
398390@[reassoc (attr := simp)]
399391lemma condition (s : WidePullbackCone f) (i : ι) : s.π i ≫ f i = s.base := by
400392 simpa using ! ((Cone.π s).naturality (.term i)).symm
@@ -482,7 +474,6 @@ lemma reindex_π {ι : Type*} {X : C} {Y : ι → C} {f : ∀ i, Y i ⟶ X} (s :
482474 {ι' : Type *} (e : ι' ≃ ι) (i : ι') :
483475 (s.reindex e).π i = s.π (e i) := rfl
484476
485- set_option backward.defeqAttrib.useBackward true in
486477set_option backward.isDefEq.respectTransparency false in
487478/-- Reindexing a pullback cone preserves being limiting. -/
488479def reindexIsLimitEquiv {ι : Type *} {X : C} {Y : ι → C} {f : ∀ i, Y i ⟶ X}
0 commit comments