File: Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Symmetric.lean

full_name: CategoryTheory.MonoidalOfChosenFiniteProducts.braiding_naturality
code: theorem braiding_naturality {X X' Y Y' : C} (f : X ⟶ Y) (g : X' ⟶ Y') :
    tensorHom ℬ f g ≫ (Limits.BinaryFan.braiding (ℬ Y Y').isLimit (ℬ Y' Y).isLimit).hom =
      (Limits.BinaryFan.braiding (ℬ X X').isLimit (ℬ X' X).isLimit).hom ≫ tensorHom ℬ g f 
goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalOfChosenFiniteProducts.tensorHom ℬ f g)
    (CategoryTheory.Limits.BinaryFan.braiding (ℬ Y Y').isLimit (ℬ Y' Y).isLimit).hom =
  CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.BinaryFan.braiding (ℬ X X').isLimit (ℬ X' X).isLimit).hom
    (CategoryTheory.MonoidalOfChosenFiniteProducts.tensorHom ℬ g f)

full_name: CategoryTheory.MonoidalOfChosenFiniteProducts.hexagon_forward
code: theorem hexagon_forward (X Y Z : C) :
    (BinaryFan.associatorOfLimitCone ℬ X Y Z).hom ≫
        (Limits.BinaryFan.braiding (ℬ X (tensorObj ℬ Y Z)).isLimit
              (ℬ (tensorObj ℬ Y Z) X).isLimit).hom ≫
          (BinaryFan.associatorOfLimitCone ℬ Y Z X).hom =
      tensorHom ℬ (Limits.BinaryFan.braiding (ℬ X Y).isLimit (ℬ Y X).isLimit).hom (𝟙 Z) ≫
        (BinaryFan.associatorOfLimitCone ℬ Y X Z).hom ≫
          tensorHom ℬ (𝟙 Y) (Limits.BinaryFan.braiding (ℬ X Z).isLimit (ℬ Z X).isLimit).hom 
goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.BinaryFan.associatorOfLimitCone ℬ X Y Z).hom
    (CategoryTheory.CategoryStruct.comp
      (CategoryTheory.Limits.BinaryFan.braiding
          (ℬ X (CategoryTheory.MonoidalOfChosenFiniteProducts.tensorObj ℬ Y Z)).isLimit
          (ℬ (CategoryTheory.MonoidalOfChosenFiniteProducts.tensorObj ℬ Y Z) X).isLimit).hom
      (CategoryTheory.Limits.BinaryFan.associatorOfLimitCone ℬ Y Z X).hom) =
  CategoryTheory.CategoryStruct.comp
    (CategoryTheory.MonoidalOfChosenFiniteProducts.tensorHom ℬ
      (CategoryTheory.Limits.BinaryFan.braiding (ℬ X Y).isLimit (ℬ Y X).isLimit).hom
      (CategoryTheory.CategoryStruct.id Z))
    (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.BinaryFan.associatorOfLimitCone ℬ Y X Z).hom
      (CategoryTheory.MonoidalOfChosenFiniteProducts.tensorHom ℬ (CategoryTheory.CategoryStruct.id Y)
        (CategoryTheory.Limits.BinaryFan.braiding (ℬ X Z).isLimit (ℬ Z X).isLimit).hom))

full_name: CategoryTheory.MonoidalOfChosenFiniteProducts.hexagon_reverse
code: theorem hexagon_reverse (X Y Z : C) :
    (BinaryFan.associatorOfLimitCone ℬ X Y Z).inv ≫
        (Limits.BinaryFan.braiding (ℬ (tensorObj ℬ X Y) Z).isLimit
              (ℬ Z (tensorObj ℬ X Y)).isLimit).hom ≫
          (BinaryFan.associatorOfLimitCone ℬ Z X Y).inv =
      tensorHom ℬ (𝟙 X) (Limits.BinaryFan.braiding (ℬ Y Z).isLimit (ℬ Z Y).isLimit).hom ≫
        (BinaryFan.associatorOfLimitCone ℬ X Z Y).inv ≫
          tensorHom ℬ (Limits.BinaryFan.braiding (ℬ X Z).isLimit (ℬ Z X).isLimit).hom (𝟙 Y) 
goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.BinaryFan.associatorOfLimitCone ℬ X Y Z).inv
    (CategoryTheory.CategoryStruct.comp
      (CategoryTheory.Limits.BinaryFan.braiding
          (ℬ (CategoryTheory.MonoidalOfChosenFiniteProducts.tensorObj ℬ X Y) Z).isLimit
          (ℬ Z (CategoryTheory.MonoidalOfChosenFiniteProducts.tensorObj ℬ X Y)).isLimit).hom
      (CategoryTheory.Limits.BinaryFan.associatorOfLimitCone ℬ Z X Y).inv) =
  CategoryTheory.CategoryStruct.comp
    (CategoryTheory.MonoidalOfChosenFiniteProducts.tensorHom ℬ (CategoryTheory.CategoryStruct.id X)
      (CategoryTheory.Limits.BinaryFan.braiding (ℬ Y Z).isLimit (ℬ Z Y).isLimit).hom)
    (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.BinaryFan.associatorOfLimitCone ℬ X Z Y).inv
      (CategoryTheory.MonoidalOfChosenFiniteProducts.tensorHom ℬ
        (CategoryTheory.Limits.BinaryFan.braiding (ℬ X Z).isLimit (ℬ Z X).isLimit).hom
        (CategoryTheory.CategoryStruct.id Y)))

full_name: CategoryTheory.MonoidalOfChosenFiniteProducts.symmetry
code: theorem symmetry (X Y : C) :
    (Limits.BinaryFan.braiding (ℬ X Y).isLimit (ℬ Y X).isLimit).hom ≫
        (Limits.BinaryFan.braiding (ℬ Y X).isLimit (ℬ X Y).isLimit).hom =
      𝟙 (tensorObj ℬ X Y) 
goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.BinaryFan.braiding (ℬ X Y).isLimit (ℬ Y X).isLimit).hom
    (CategoryTheory.Limits.BinaryFan.braiding (ℬ Y X).isLimit (ℬ X Y).isLimit).hom =
  CategoryTheory.CategoryStruct.id (CategoryTheory.MonoidalOfChosenFiniteProducts.tensorObj ℬ X Y)

full_name: CategoryTheory.symmetricOfChosenFiniteProducts
code: /-- The monoidal structure coming from finite products is symmetric.
-/
def symmetricOfChosenFiniteProducts :
    SymmetricCategory (MonoidalOfChosenFiniteProductsSynonym 𝒯 ℬ) 
goal: CategoryTheory.SymmetricCategory
  (CategoryTheory.MonoidalOfChosenFiniteProducts.MonoidalOfChosenFiniteProductsSynonym 𝒯 ℬ)