@@ -14,9 +14,10 @@ import category_theory.comma
14
14
# Simplicial objects in a category.
15
15
16
16
A simplicial object in a category `C` is a `C`-valued presheaf on `simplex_category`.
17
+ (Similarly a cosimplicial object is functor `simplex_category ⥤ C`.)
17
18
18
19
Use the notation `X _[n]` in the `simplicial` locale to obtain the `n`-th term of a
19
- simplicial object `X`, where `n` is a natural number.
20
+ (co) simplicial object `X`, where `n` is a natural number.
20
21
21
22
-/
22
23
@@ -136,7 +137,7 @@ section skeleton
136
137
137
138
/-- The skeleton functor from simplicial objects to truncated simplicial objects. -/
138
139
def sk (n : ℕ) : simplicial_object C ⥤ simplicial_object.truncated C n :=
139
- (whiskering_left _ _ _).obj ( simplex_category.truncated.inclusion) .op
140
+ (whiskering_left _ _ _).obj simplex_category.truncated.inclusion.op
140
141
141
142
end skeleton
142
143
@@ -151,6 +152,155 @@ def augmented := comma (𝟭 (simplicial_object C)) (const C)
151
152
152
153
variable {C}
153
154
155
+ namespace augmented
156
+
157
+ /-- Drop the augmentation. -/
158
+ @[simps]
159
+ def drop : augmented C ⥤ simplicial_object C := comma.fst _ _
160
+
161
+ /-- The point of the augmentation. -/
162
+ @[simps]
163
+ def point : augmented C ⥤ C := comma.snd _ _
164
+
165
+ end augmented
166
+
154
167
end simplicial_object
155
168
169
+ /-- Cosimplicial objects. -/
170
+ @[derive category, nolint has_inhabited_instance]
171
+ def cosimplicial_object := simplex_category.{v} ⥤ C
172
+
173
+ namespace cosimplicial_object
174
+
175
+ localized
176
+ " notation X `_[`:1000 n `]` :=
177
+ (X : category_theory.cosimplicial_object _).obj (simplex_category.mk n)"
178
+ in simplicial
179
+
180
+ instance {J : Type v} [small_category J] [has_limits_of_shape J C] :
181
+ has_limits_of_shape J (cosimplicial_object C) := by {dsimp [cosimplicial_object], apply_instance}
182
+
183
+ instance [has_limits C] : has_limits (cosimplicial_object C) := ⟨infer_instance⟩
184
+
185
+ instance {J : Type v} [small_category J] [has_colimits_of_shape J C] :
186
+ has_colimits_of_shape J (cosimplicial_object C) :=
187
+ by {dsimp [cosimplicial_object], apply_instance}
188
+
189
+ instance [has_colimits C] : has_colimits (cosimplicial_object C) := ⟨infer_instance⟩
190
+
191
+ variables {C} (X : cosimplicial_object C)
192
+
193
+ /-- Coface maps for a cosimplicial object. -/
194
+ def δ {n} (i : fin (n+2 )) : X _[n] ⟶ X _[n+1 ] :=
195
+ X.map (simplex_category.δ i)
196
+
197
+ /-- Codegeneracy maps for a cosimplicial object. -/
198
+ def σ {n} (i : fin (n+1 )) : X _[n+1 ] ⟶ X _[n] :=
199
+ X.map (simplex_category.σ i)
200
+
201
+ /-- Isomorphisms from identities in ℕ. -/
202
+ def eq_to_iso {n m : ℕ} (h : n = m) : X _[n] ≅ X _[m] :=
203
+ X.map_iso (eq_to_iso (by rw h))
204
+
205
+ @[simp] lemma eq_to_iso_refl {n : ℕ} (h : n = n) : X.eq_to_iso h = iso.refl _ :=
206
+ by { ext, simp [eq_to_iso], }
207
+
208
+
209
+ /-- The generic case of the first cosimplicial identity -/
210
+ lemma δ_comp_δ {n} {i j : fin (n+2 )} (H : i ≤ j) :
211
+ X.δ i ≫ X.δ j.succ = X.δ j ≫ X.δ i.cast_succ :=
212
+ by { dsimp [δ], simp only [←X.map_comp, simplex_category.δ_comp_δ H], }
213
+
214
+ /-- The special case of the first cosimplicial identity -/
215
+ lemma δ_comp_δ_self {n} {i : fin (n+2 )} : X.δ i ≫ X.δ i.cast_succ = X.δ i ≫ X.δ i.succ :=
216
+ by { dsimp [δ], simp only [←X.map_comp, simplex_category.δ_comp_δ_self] }
217
+
218
+ /-- The second cosimplicial identity -/
219
+ lemma δ_comp_σ_of_le {n} {i : fin (n+2 )} {j : fin (n+1 )} (H : i ≤ j.cast_succ) :
220
+ X.δ i.cast_succ ≫ X.σ j.succ = X.σ j ≫ X.δ i :=
221
+ by { dsimp [δ, σ], simp only [←X.map_comp, simplex_category.δ_comp_σ_of_le H] }
222
+
223
+ /-- The first part of the third cosimplicial identity -/
224
+ lemma δ_comp_σ_self {n} {i : fin (n+1 )} :
225
+ X.δ i.cast_succ ≫ X.σ i = 𝟙 _ :=
226
+ begin
227
+ dsimp [δ, σ],
228
+ simp only [←X.map_comp, simplex_category.δ_comp_σ_self, X.map_id],
229
+ end
230
+
231
+ /-- The second part of the third cosimplicial identity -/
232
+ lemma δ_comp_σ_succ {n} {i : fin (n+1 )} :
233
+ X.δ i.succ ≫ X.σ i = 𝟙 _ :=
234
+ begin
235
+ dsimp [δ, σ],
236
+ simp only [←X.map_comp, simplex_category.δ_comp_σ_succ, X.map_id],
237
+ end
238
+
239
+ /-- The fourth cosimplicial identity -/
240
+ lemma δ_comp_σ_of_gt {n} {i : fin (n+2 )} {j : fin (n+1 )} (H : j.cast_succ < i) :
241
+ X.δ i.succ ≫ X.σ j.cast_succ = X.σ j ≫ X.δ i :=
242
+ by { dsimp [δ, σ], simp only [←X.map_comp, simplex_category.δ_comp_σ_of_gt H] }
243
+
244
+ /-- The fifth cosimplicial identity -/
245
+ lemma σ_comp_σ {n} {i j : fin (n+1 )} (H : i ≤ j) :
246
+ X.σ i.cast_succ ≫ X.σ j = X.σ j.succ ≫ X.σ i :=
247
+ by { dsimp [δ, σ], simp only [←X.map_comp, simplex_category.σ_comp_σ H] }
248
+
249
+ variable (C)
250
+
251
+ /-- Truncated cosimplicial objects. -/
252
+ @[derive category, nolint has_inhabited_instance]
253
+ def truncated (n : ℕ) := simplex_category.truncated.{v} n ⥤ C
254
+
255
+ variable {C}
256
+
257
+ namespace truncated
258
+
259
+ instance {n} {J : Type v} [small_category J] [has_limits_of_shape J C] :
260
+ has_limits_of_shape J (cosimplicial_object.truncated C n) :=
261
+ by {dsimp [truncated], apply_instance}
262
+
263
+ instance {n} [has_limits C] : has_limits (cosimplicial_object.truncated C n) := ⟨infer_instance⟩
264
+
265
+ instance {n} {J : Type v} [small_category J] [has_colimits_of_shape J C] :
266
+ has_colimits_of_shape J (cosimplicial_object.truncated C n) :=
267
+ by {dsimp [truncated], apply_instance}
268
+
269
+ instance {n} [has_colimits C] : has_colimits (cosimplicial_object.truncated C n) := ⟨infer_instance⟩
270
+
271
+ end truncated
272
+
273
+ section skeleton
274
+
275
+ /-- The skeleton functor from cosimplicial objects to truncated cosimplicial objects. -/
276
+ def sk (n : ℕ) : cosimplicial_object C ⥤ cosimplicial_object.truncated C n :=
277
+ (whiskering_left _ _ _).obj simplex_category.truncated.inclusion
278
+
279
+ end skeleton
280
+
281
+ variable (C)
282
+
283
+ /-- The constant cosimplicial object. -/
284
+ abbreviation const : C ⥤ cosimplicial_object C := category_theory.functor.const _
285
+
286
+ /-- Augmented cosimplicial objects. -/
287
+ @[derive category, nolint has_inhabited_instance]
288
+ def augmented := comma (const C) (𝟭 (cosimplicial_object C))
289
+
290
+ variable {C}
291
+
292
+ namespace augmented
293
+
294
+ /-- Drop the augmentation. -/
295
+ @[simps]
296
+ def drop : augmented C ⥤ cosimplicial_object C := comma.snd _ _
297
+
298
+ /-- The point of the augmentation. -/
299
+ @[simps]
300
+ def point : augmented C ⥤ C := comma.fst _ _
301
+
302
+ end augmented
303
+
304
+ end cosimplicial_object
305
+
156
306
end category_theory
0 commit comments