@@ -160,22 +160,6 @@ by { ext, simp [←tensor_comp], }
160160
161161variables {U V W X Y Z : C}
162162
163- -- When `rewrite_search` lands, add @[ search ] attributes to
164-
165- -- monoidal_category.tensor_id monoidal_category.tensor_comp monoidal_category.associator_naturality
166- -- monoidal_category.left_unitor_naturality monoidal_category.right_unitor_naturality
167- -- monoidal_category.pentagon monoidal_category.triangle
168-
169- -- tensor_comp_id tensor_id_comp comp_id_tensor_tensor_id
170- -- triangle_assoc_comp_left triangle_assoc_comp_right
171- -- triangle_assoc_comp_left_inv triangle_assoc_comp_right_inv
172- -- left_unitor_tensor left_unitor_tensor_inv
173- -- right_unitor_tensor right_unitor_tensor_inv
174- -- pentagon_inv
175- -- associator_inv_naturality
176- -- left_unitor_inv_naturality
177- -- right_unitor_inv_naturality
178-
179163lemma tensor_dite {P : Prop } [decidable P]
180164 {W X Y Z : C} (f : W ⟶ X) (g : P → (Y ⟶ Z)) (g' : ¬P → (Y ⟶ Z)) :
181165 f ⊗ (if h : P then g h else g' h) = if h : P then f ⊗ g h else f ⊗ g' h :=
@@ -240,28 +224,15 @@ by { rw [←cancel_mono (λ_ Y).hom, left_unitor_naturality, left_unitor_natural
240224 (f ⊗ (𝟙 (𝟙_ C)) = g ⊗ (𝟙 (𝟙_ C))) ↔ (f = g) :=
241225by { rw [←cancel_mono (ρ_ Y).hom, right_unitor_naturality, right_unitor_naturality], simp }
242226
243- -- See Proposition 2.2.4 of <http://www-math.mit.edu/~etingof/egnobookfinal.pdf>
244- @[reassoc]
245- lemma left_unitor_tensor' (X Y : C) :
246- ((α_ (𝟙_ C) X Y).hom) ≫ ((λ_ (X ⊗ Y)).hom) = ((λ_ X).hom ⊗ (𝟙 Y)) :=
247- by
248- rw [←tensor_left_iff, id_tensor_comp, ←cancel_epi (α_ (𝟙_ C) (𝟙_ C ⊗ X) Y).hom,
249- ←cancel_epi ((α_ (𝟙_ C) (𝟙_ C) X).hom ⊗ 𝟙 Y), pentagon_assoc, triangle, ←associator_naturality,
250- ←comp_tensor_id_assoc, triangle, associator_naturality, tensor_id]
251-
252- @[reassoc, simp]
253- lemma left_unitor_tensor (X Y : C) :
254- ((λ_ (X ⊗ Y)).hom) = ((α_ (𝟙_ C) X Y).inv) ≫ ((λ_ X).hom ⊗ (𝟙 Y)) :=
255- by { rw [←left_unitor_tensor'], simp }
256-
257- lemma left_unitor_tensor_inv' (X Y : C) :
258- ((λ_ (X ⊗ Y)).inv) ≫ ((α_ (𝟙_ C) X Y).inv) = ((λ_ X).inv ⊗ (𝟙 Y)) :=
259- eq_of_inv_eq_inv (by simp)
227+ /-! The lemmas in the next section are true by coherence,
228+ but we prove them directly as they are used in proving the coherence theorem. -/
229+ section
260230
261- @[reassoc, simp]
262- lemma left_unitor_tensor_inv (X Y : C) :
263- (λ_ (X ⊗ Y)).inv = ((λ_ X).inv ⊗ (𝟙 Y)) ≫ (α_ (𝟙_ C) X Y).hom :=
264- by { rw [←left_unitor_tensor_inv'], simp }
231+ @[reassoc]
232+ lemma pentagon_inv (W X Y Z : C) :
233+ ((𝟙 W) ⊗ (α_ X Y Z).inv) ≫ (α_ W (X ⊗ Y) Z).inv ≫ ((α_ W X Y).inv ⊗ (𝟙 Z))
234+ = (α_ W X (Y ⊗ Z)).inv ≫ (α_ (W ⊗ X) Y Z).inv :=
235+ category_theory.eq_of_inv_eq_inv (by simp [pentagon])
265236
266237@[reassoc, simp]
267238lemma right_unitor_tensor (X Y : C) :
@@ -276,13 +247,23 @@ lemma right_unitor_tensor_inv (X Y : C) :
276247 ((ρ_ (X ⊗ Y)).inv) = ((𝟙 X) ⊗ (ρ_ Y).inv) ≫ (α_ X Y (𝟙_ C)).inv :=
277248eq_of_inv_eq_inv (by simp)
278249
279- @[reassoc]
280- lemma id_tensor_right_unitor_inv (X Y : C) : 𝟙 X ⊗ (ρ_ Y).inv = (ρ_ _).inv ≫ (α_ _ _ _).hom :=
281- by simp only [right_unitor_tensor_inv, category.comp_id, iso.inv_hom_id, category.assoc]
250+ lemma triangle_assoc_comp_left (X Y : C) :
251+ (α_ X (𝟙_ C) Y).hom ≫ (( 𝟙 X) ⊗ (λ_ Y).hom) = (ρ_ X).hom ⊗ 𝟙 Y :=
252+ monoidal_category.triangle X Y
282253
283- @[reassoc]
284- lemma left_unitor_inv_tensor_id (X Y : C) : (λ_ X).inv ⊗ 𝟙 Y = (λ_ _).inv ≫ (α_ _ _ _).inv :=
285- by simp only [left_unitor_tensor_inv, assoc, comp_id, hom_inv_id]
254+ @[simp, reassoc] lemma triangle_assoc_comp_right (X Y : C) :
255+ (α_ X (𝟙_ C) Y).inv ≫ ((ρ_ X).hom ⊗ 𝟙 Y) = ((𝟙 X) ⊗ (λ_ Y).hom) :=
256+ by rw [←triangle_assoc_comp_left, iso.inv_hom_id_assoc]
257+
258+ @[simp, reassoc] lemma triangle_assoc_comp_left_inv (X Y : C) :
259+ ((𝟙 X) ⊗ (λ_ Y).inv) ≫ (α_ X (𝟙_ C) Y).inv = ((ρ_ X).inv ⊗ 𝟙 Y) :=
260+ begin
261+ apply (cancel_mono ((ρ_ X).hom ⊗ 𝟙 Y)).1 ,
262+ simp only [triangle_assoc_comp_right, assoc],
263+ rw [←id_tensor_comp, iso.inv_hom_id, ←comp_tensor_id, iso.inv_hom_id]
264+ end
265+
266+ end
286267
287268@[reassoc]
288269lemma associator_inv_naturality {X Y Z X' Y' Z' : C} (f : X ⟶ X') (g : Y ⟶ Y') (h : Z ⟶ Z') :
@@ -309,53 +290,6 @@ lemma associator_inv_conjugation {X X' Y Y' Z Z' : C} (f : X ⟶ X') (g : Y ⟶
309290 (α_ X Y Z).inv ≫ ((f ⊗ g) ⊗ h) ≫ (α_ X' Y' Z').hom = f ⊗ g ⊗ h :=
310291by rw [associator_naturality, inv_hom_id_assoc]
311292
312- @[reassoc]
313- lemma pentagon_inv (W X Y Z : C) :
314- ((𝟙 W) ⊗ (α_ X Y Z).inv) ≫ (α_ W (X ⊗ Y) Z).inv ≫ ((α_ W X Y).inv ⊗ (𝟙 Z))
315- = (α_ W X (Y ⊗ Z)).inv ≫ (α_ (W ⊗ X) Y Z).inv :=
316- category_theory.eq_of_inv_eq_inv (by simp [pentagon])
317-
318- @[reassoc]
319- lemma pentagon_inv_inv_hom (W X Y Z : C) :
320- (α_ W (X ⊗ Y) Z).inv ≫ ((α_ W X Y).inv ⊗ (𝟙 Z)) ≫ (α_ (W ⊗ X) Y Z).hom
321- = ((𝟙 W) ⊗ (α_ X Y Z).hom) ≫ (α_ W X (Y ⊗ Z)).inv :=
322- begin
323- rw ←((iso.eq_comp_inv _).mp (pentagon_inv W X Y Z)),
324- slice_rhs 1 2 { rw [←id_tensor_comp, iso.hom_inv_id] },
325- simp only [tensor_id, assoc, id_comp]
326- end
327-
328- lemma triangle_assoc_comp_left (X Y : C) :
329- (α_ X (𝟙_ C) Y).hom ≫ ((𝟙 X) ⊗ (λ_ Y).hom) = (ρ_ X).hom ⊗ 𝟙 Y :=
330- monoidal_category.triangle X Y
331-
332- @[simp, reassoc] lemma triangle_assoc_comp_right (X Y : C) :
333- (α_ X (𝟙_ C) Y).inv ≫ ((ρ_ X).hom ⊗ 𝟙 Y) = ((𝟙 X) ⊗ (λ_ Y).hom) :=
334- by rw [←triangle_assoc_comp_left, iso.inv_hom_id_assoc]
335-
336- @[simp, reassoc] lemma triangle_assoc_comp_right_inv (X Y : C) :
337- ((ρ_ X).inv ⊗ 𝟙 Y) ≫ (α_ X (𝟙_ C) Y).hom = ((𝟙 X) ⊗ (λ_ Y).inv) :=
338- begin
339- apply (cancel_mono (𝟙 X ⊗ (λ_ Y).hom)).1 ,
340- simp only [assoc, triangle_assoc_comp_left],
341- rw [←comp_tensor_id, iso.inv_hom_id, ←id_tensor_comp, iso.inv_hom_id]
342- end
343-
344- @[simp, reassoc] lemma triangle_assoc_comp_left_inv (X Y : C) :
345- ((𝟙 X) ⊗ (λ_ Y).inv) ≫ (α_ X (𝟙_ C) Y).inv = ((ρ_ X).inv ⊗ 𝟙 Y) :=
346- begin
347- apply (cancel_mono ((ρ_ X).hom ⊗ 𝟙 Y)).1 ,
348- simp only [triangle_assoc_comp_right, assoc],
349- rw [←id_tensor_comp, iso.inv_hom_id, ←comp_tensor_id, iso.inv_hom_id]
350- end
351-
352- lemma unitors_equal : (λ_ (𝟙_ C)).hom = (ρ_ (𝟙_ C)).hom :=
353- by rw [←tensor_left_iff, ←cancel_epi (α_ (𝟙_ C) (𝟙_ _) (𝟙_ _)).hom, ←cancel_mono (ρ_ (𝟙_ C)).hom,
354- triangle, ←right_unitor_tensor, right_unitor_naturality]
355-
356- lemma unitors_inv_equal : (λ_ (𝟙_ C)).inv = (ρ_ (𝟙_ C)).inv :=
357- by { ext, simp [←unitors_equal] }
358-
359293@[reassoc]
360294lemma right_unitor_inv_comp_tensor (f : W ⟶ X) (g : 𝟙_ C ⟶ Z) :
361295 (ρ_ _).inv ≫ (f ⊗ g) = f ≫ (ρ_ _).inv ≫ (𝟙 _ ⊗ g) :=
@@ -386,34 +320,6 @@ lemma tensor_inv_hom_id {V W X Y Z : C} (f : V ≅ W) (g : X ⟶ Y) (h : Y ⟶ Z
386320 (g ⊗ f.inv) ≫ (h ⊗ f.hom) = (g ≫ h) ⊗ 𝟙 W :=
387321by rw [←tensor_comp, f.inv_hom_id]
388322
389- @[reassoc]
390- lemma pentagon_hom_inv {W X Y Z : C} :
391- (α_ W X (Y ⊗ Z)).hom ≫ (𝟙 W ⊗ (α_ X Y Z).inv)
392- = (α_ (W ⊗ X) Y Z).inv ≫ ((α_ W X Y).hom ⊗ 𝟙 Z) ≫ (α_ W (X ⊗ Y) Z).hom :=
393- begin
394- have pent := pentagon W X Y Z,
395- rw ←iso.comp_inv_eq at pent,
396- rw [iso.eq_inv_comp, ←pent],
397- simp only [tensor_hom_inv_id, iso.inv_hom_id_assoc, tensor_id, category.comp_id, category.assoc],
398- end
399-
400- @[reassoc]
401- lemma pentagon_inv_hom (W X Y Z : C) :
402- (α_ (W ⊗ X) Y Z).inv ≫ ((α_ W X Y).hom ⊗ 𝟙 Z)
403- = (α_ W X (Y ⊗ Z)).hom ≫ (𝟙 W ⊗ (α_ X Y Z).inv) ≫ (α_ W (X ⊗ Y) Z).inv :=
404- begin
405- have pent := pentagon W X Y Z,
406- rw ←iso.inv_comp_eq at pent,
407- rw [←pent],
408- simp only [tensor_id, assoc, id_comp, comp_id, hom_inv_id, tensor_hom_inv_id_assoc],
409- end
410-
411- @[reassoc]
412- lemma pentagon_comp_id_tensor {W X Y Z : C} :
413- (α_ W (X ⊗ Y) Z).hom ≫ ((𝟙 W) ⊗ (α_ X Y Z).hom)
414- = ((α_ W X Y).inv ⊗ (𝟙 Z)) ≫ (α_ (W ⊗ X) Y Z).hom ≫ (α_ W X (Y ⊗ Z)).hom :=
415- by { rw ←pentagon W X Y Z, simp }
416-
417323end
418324
419325section
0 commit comments