Lemmas which are consequences of monoidal coherence #
These lemmas are all proved by coherence
.
Future work #
Investigate whether these lemmas are really needed,
or if they can be replaced by use of the coherence
tactic.
theorem
CategoryTheory.MonoidalCategory.leftUnitor_tensor''
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
(X : C)
(Y : C)
:
CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator (š_ C) X Y).hom
(CategoryTheory.MonoidalCategory.leftUnitor (CategoryTheory.MonoidalCategory.tensorObj X Y)).hom = CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.MonoidalCategory.leftUnitor X).hom
(CategoryTheory.CategoryStruct.id Y)
theorem
CategoryTheory.MonoidalCategory.leftUnitor_tensor''_assoc
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
(X : C)
(Y : C)
{Z : C}
(h : CategoryTheory.MonoidalCategory.tensorObj X Y ā¶ Z)
:
CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator (š_ C) X Y).hom
(CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.leftUnitor (CategoryTheory.MonoidalCategory.tensorObj X Y)).hom h) = CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.MonoidalCategory.leftUnitor X).hom
(CategoryTheory.CategoryStruct.id Y))
h
theorem
CategoryTheory.MonoidalCategory.leftUnitor_tensor'
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
(X : C)
(Y : C)
:
(CategoryTheory.MonoidalCategory.leftUnitor (CategoryTheory.MonoidalCategory.tensorObj X Y)).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator (š_ C) X Y).inv
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.MonoidalCategory.leftUnitor X).hom
(CategoryTheory.CategoryStruct.id Y))
theorem
CategoryTheory.MonoidalCategory.leftUnitor_tensor'_assoc
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
(X : C)
(Y : C)
{Z : C}
(h : CategoryTheory.MonoidalCategory.tensorObj X Y ā¶ Z)
:
CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.leftUnitor (CategoryTheory.MonoidalCategory.tensorObj X Y)).hom h = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator (š_ C) X Y).inv
(CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.MonoidalCategory.leftUnitor X).hom
(CategoryTheory.CategoryStruct.id Y))
h)
theorem
CategoryTheory.MonoidalCategory.leftUnitor_tensor_inv'
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
(X : C)
(Y : C)
:
(CategoryTheory.MonoidalCategory.leftUnitor (CategoryTheory.MonoidalCategory.tensorObj X Y)).inv = CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.MonoidalCategory.leftUnitor X).inv
(CategoryTheory.CategoryStruct.id Y))
(CategoryTheory.MonoidalCategory.associator (š_ C) X Y).hom
theorem
CategoryTheory.MonoidalCategory.leftUnitor_tensor_inv'_assoc
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
(X : C)
(Y : C)
{Z : C}
(h : CategoryTheory.MonoidalCategory.tensorObj (š_ C) (CategoryTheory.MonoidalCategory.tensorObj X Y) ā¶ Z)
:
CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.leftUnitor (CategoryTheory.MonoidalCategory.tensorObj X Y)).inv h = CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.MonoidalCategory.leftUnitor X).inv
(CategoryTheory.CategoryStruct.id Y))
(CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator (š_ C) X Y).hom h)
theorem
CategoryTheory.MonoidalCategory.id_tensor_rightUnitor_inv
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
(X : C)
(Y : C)
:
CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.CategoryStruct.id X)
(CategoryTheory.MonoidalCategory.rightUnitor Y).inv = CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.rightUnitor (CategoryTheory.MonoidalCategory.tensorObj X Y)).inv
(CategoryTheory.MonoidalCategory.associator X Y (š_ C)).hom
theorem
CategoryTheory.MonoidalCategory.id_tensor_rightUnitor_inv_assoc
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
(X : C)
(Y : C)
{Z : C}
(h : CategoryTheory.MonoidalCategory.tensorObj X (CategoryTheory.MonoidalCategory.tensorObj Y (š_ C)) ā¶ Z)
:
CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.CategoryStruct.id X)
(CategoryTheory.MonoidalCategory.rightUnitor Y).inv)
h = CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.rightUnitor (CategoryTheory.MonoidalCategory.tensorObj X Y)).inv
(CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator X Y (š_ C)).hom h)
theorem
CategoryTheory.MonoidalCategory.leftUnitor_inv_tensor_id
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
(X : C)
(Y : C)
:
CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.MonoidalCategory.leftUnitor X).inv
(CategoryTheory.CategoryStruct.id Y) = CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.leftUnitor (CategoryTheory.MonoidalCategory.tensorObj X Y)).inv
(CategoryTheory.MonoidalCategory.associator (š_ C) X Y).inv
theorem
CategoryTheory.MonoidalCategory.leftUnitor_inv_tensor_id_assoc
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
(X : C)
(Y : C)
{Z : C}
(h : CategoryTheory.MonoidalCategory.tensorObj (CategoryTheory.MonoidalCategory.tensorObj (š_ C) X) Y ā¶ Z)
:
CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.MonoidalCategory.leftUnitor X).inv
(CategoryTheory.CategoryStruct.id Y))
h = CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.leftUnitor (CategoryTheory.MonoidalCategory.tensorObj X Y)).inv
(CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator (š_ C) X Y).inv h)
theorem
CategoryTheory.MonoidalCategory.pentagon_inv_inv_hom
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
(W : C)
(X : C)
(Y : C)
(Z : C)
:
CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.associator W (CategoryTheory.MonoidalCategory.tensorObj X Y) Z).inv
(CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.MonoidalCategory.associator W X Y).inv
(CategoryTheory.CategoryStruct.id Z))
(CategoryTheory.MonoidalCategory.associator (CategoryTheory.MonoidalCategory.tensorObj W X) Y Z).hom) = CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.CategoryStruct.id W)
(CategoryTheory.MonoidalCategory.associator X Y Z).hom)
(CategoryTheory.MonoidalCategory.associator W X (CategoryTheory.MonoidalCategory.tensorObj Y Z)).inv
theorem
CategoryTheory.MonoidalCategory.pentagon_inv_inv_hom_assoc
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
(W : C)
(X : C)
(Y : C)
(Z : C)
{Z : C}
(h : CategoryTheory.MonoidalCategory.tensorObj (CategoryTheory.MonoidalCategory.tensorObj W X)
(CategoryTheory.MonoidalCategory.tensorObj Y Zā) ā¶ Z)
:
CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.associator W (CategoryTheory.MonoidalCategory.tensorObj X Y) Zā).inv
(CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.MonoidalCategory.associator W X Y).inv
(CategoryTheory.CategoryStruct.id Zā))
(CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.associator (CategoryTheory.MonoidalCategory.tensorObj W X) Y Zā).hom h)) = CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.CategoryStruct.id W)
(CategoryTheory.MonoidalCategory.associator X Y Zā).hom)
(CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.associator W X (CategoryTheory.MonoidalCategory.tensorObj Y Zā)).inv h)
theorem
CategoryTheory.MonoidalCategory.unitors_equal
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
:
(CategoryTheory.MonoidalCategory.leftUnitor (š_ C)).hom = (CategoryTheory.MonoidalCategory.rightUnitor (š_ C)).hom
theorem
CategoryTheory.MonoidalCategory.unitors_inv_equal
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
:
(CategoryTheory.MonoidalCategory.leftUnitor (š_ C)).inv = (CategoryTheory.MonoidalCategory.rightUnitor (š_ C)).inv
theorem
CategoryTheory.MonoidalCategory.pentagon_hom_inv
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
{W : C}
{X : C}
{Y : C}
{Z : C}
:
CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.associator W X (CategoryTheory.MonoidalCategory.tensorObj Y Z)).hom
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.CategoryStruct.id W)
(CategoryTheory.MonoidalCategory.associator X Y Z).inv) = CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.associator (CategoryTheory.MonoidalCategory.tensorObj W X) Y Z).inv
(CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.MonoidalCategory.associator W X Y).hom
(CategoryTheory.CategoryStruct.id Z))
(CategoryTheory.MonoidalCategory.associator W (CategoryTheory.MonoidalCategory.tensorObj X Y) Z).hom)
theorem
CategoryTheory.MonoidalCategory.pentagon_hom_inv_assoc
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
{W : C}
{X : C}
{Y : C}
{Z : C}
{Z : C}
(h : CategoryTheory.MonoidalCategory.tensorObj W
(CategoryTheory.MonoidalCategory.tensorObj (CategoryTheory.MonoidalCategory.tensorObj X Y) Zā) ā¶ Z)
:
CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.associator W X (CategoryTheory.MonoidalCategory.tensorObj Y Zā)).hom
(CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.CategoryStruct.id W)
(CategoryTheory.MonoidalCategory.associator X Y Zā).inv)
h) = CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.associator (CategoryTheory.MonoidalCategory.tensorObj W X) Y Zā).inv
(CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.MonoidalCategory.associator W X Y).hom
(CategoryTheory.CategoryStruct.id Zā))
(CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.associator W (CategoryTheory.MonoidalCategory.tensorObj X Y) Zā).hom h))
theorem
CategoryTheory.MonoidalCategory.pentagon_inv_hom
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
(W : C)
(X : C)
(Y : C)
(Z : C)
:
CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.associator (CategoryTheory.MonoidalCategory.tensorObj W X) Y Z).inv
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.MonoidalCategory.associator W X Y).hom
(CategoryTheory.CategoryStruct.id Z)) = CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.associator W X (CategoryTheory.MonoidalCategory.tensorObj Y Z)).hom
(CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.CategoryStruct.id W)
(CategoryTheory.MonoidalCategory.associator X Y Z).inv)
(CategoryTheory.MonoidalCategory.associator W (CategoryTheory.MonoidalCategory.tensorObj X Y) Z).inv)
theorem
CategoryTheory.MonoidalCategory.pentagon_inv_hom_assoc
{C : Type u_1}
[CategoryTheory.Category.{u_2, u_1} C]
[CategoryTheory.MonoidalCategory C]
(W : C)
(X : C)
(Y : C)
(Z : C)
{Z : C}
(h : CategoryTheory.MonoidalCategory.tensorObj
(CategoryTheory.MonoidalCategory.tensorObj W (CategoryTheory.MonoidalCategory.tensorObj X Y)) Zā ā¶ Z)
:
CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.associator (CategoryTheory.MonoidalCategory.tensorObj W X) Y Zā).inv
(CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.MonoidalCategory.associator W X Y).hom
(CategoryTheory.CategoryStruct.id Zā))
h) = CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.associator W X (CategoryTheory.MonoidalCategory.tensorObj Y Zā)).hom
(CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.tensorHom (CategoryTheory.CategoryStruct.id W)
(CategoryTheory.MonoidalCategory.associator X Y Zā).inv)
(CategoryTheory.CategoryStruct.comp
(CategoryTheory.MonoidalCategory.associator W (CategoryTheory.MonoidalCategory.tensorObj X Y) Zā).inv h))