@@ -392,6 +392,8 @@ theorem one_rightUnitor {M : Mon_ C} :
392
392
simp [← unitors_equal]
393
393
#align Mon_.one_right_unitor Mon_.one_rightUnitor
394
394
395
+ section BraidedCategory
396
+
395
397
variable [BraidedCategory C]
396
398
397
399
theorem Mon_tensor_one_mul (M N : Mon_ C) :
@@ -526,10 +528,69 @@ theorem associator_hom_hom (X Y Z : Mon_ C) : (α_ X Y Z).hom.hom = (α_ X.X Y.X
526
528
@[simp]
527
529
theorem associator_inv_hom (X Y Z : Mon_ C) : (α_ X Y Z).inv.hom = (α_ X.X Y.X Z.X).inv := rfl
528
530
531
+ @[simp]
532
+ theorem tensor_one (M N : Mon_ C) : (M ⊗ N).one = (λ_ (𝟙_ C)).inv ≫ (M.one ⊗ N.one) := rfl
533
+
534
+ @[simp]
535
+ theorem tensor_mul (M N : Mon_ C) : (M ⊗ N).mul =
536
+ tensor_μ C (M.X, N.X) (M.X, N.X) ≫ (M.mul ⊗ N.mul) := rfl
537
+
529
538
instance monMonoidal : MonoidalCategory (Mon_ C) where
530
539
tensorHom_def := by intros; ext; simp [tensorHom_def]
531
540
#align Mon_.Mon_monoidal Mon_.monMonoidal
532
541
542
+ theorem one_braiding {X Y : Mon_ C} : (X ⊗ Y).one ≫ (β_ X.X Y.X).hom = (Y ⊗ X).one := by
543
+ simp only [monMonoidalStruct_tensorObj_X, tensor_one, Category.assoc,
544
+ BraidedCategory.braiding_naturality, braiding_tensorUnit_right, Iso.cancel_iso_inv_left]
545
+ coherence
546
+
547
+ end BraidedCategory
548
+
549
+ /-!
550
+ We next show that if `C` is symmetric, then `Mon_ C` is braided, and indeed symmetric.
551
+
552
+ Note that `Mon_ C` is *not* braided in general when `C` is only braided.
553
+
554
+ The more interesting construction is the 2-category of monoids in `C`,
555
+ bimodules between the monoids, and intertwiners between the bimodules.
556
+
557
+ When `C` is braided, that is a monoidal 2-category.
558
+ -/
559
+ section SymmetricCategory
560
+
561
+ variable [SymmetricCategory C]
562
+
563
+ theorem mul_braiding {X Y : Mon_ C} :
564
+ (X ⊗ Y).mul ≫ (β_ X.X Y.X).hom = ((β_ X.X Y.X).hom ⊗ (β_ X.X Y.X).hom) ≫ (Y ⊗ X).mul := by
565
+ simp only [monMonoidalStruct_tensorObj_X, tensor_mul, tensor_μ, Category.assoc,
566
+ BraidedCategory.braiding_naturality, BraidedCategory.braiding_tensor_right,
567
+ BraidedCategory.braiding_tensor_left, comp_whiskerRight, whisker_assoc,
568
+ MonoidalCategory.whiskerLeft_comp, pentagon_assoc, pentagon_inv_hom_hom_hom_inv_assoc,
569
+ Iso.inv_hom_id_assoc, whiskerLeft_hom_inv_assoc]
570
+ slice_lhs 3 4 =>
571
+ -- We use symmetry here:
572
+ rw [← MonoidalCategory.whiskerLeft_comp, ← comp_whiskerRight, SymmetricCategory.symmetry]
573
+ simp only [id_whiskerRight, MonoidalCategory.whiskerLeft_id, Category.id_comp, Category.assoc,
574
+ pentagon_inv_assoc, Iso.hom_inv_id_assoc]
575
+ slice_lhs 1 2 =>
576
+ rw [← associator_inv_naturality_left]
577
+ slice_lhs 2 3 =>
578
+ rw [Iso.inv_hom_id]
579
+ rw [Category.id_comp]
580
+ slice_lhs 2 3 =>
581
+ rw [← associator_naturality_right]
582
+ slice_lhs 1 2 =>
583
+ rw [← tensorHom_def]
584
+ simp only [Category.assoc]
585
+
586
+ instance : SymmetricCategory (Mon_ C) where
587
+ braiding := fun X Y => isoOfIso (β_ X.X Y.X) one_braiding mul_braiding
588
+ symmetry := fun X Y => by
589
+ ext
590
+ simp [← SymmetricCategory.braiding_swap_eq_inv_braiding]
591
+
592
+ end SymmetricCategory
593
+
533
594
end Mon_
534
595
535
596
/-!
0 commit comments