Skip to content

Commit c12fecc

Browse files
committed
symmetric monoidal categories satisfy the other hexagon
<!-- ps-id: 4b220fec-5da6-466f-82c3-c6949e3185e0 --> Signed-off-by: Ali Caglayan <[email protected]>
1 parent d4bb337 commit c12fecc

File tree

1 file changed

+51
-25
lines changed

1 file changed

+51
-25
lines changed

theories/WildCat/Monoidal.v

Lines changed: 51 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,21 @@ Class HexagonIdentity {A : Type} `{HasEquivs A}
113113
Coercion hexagon_identity : HexagonIdentity >-> Funclass.
114114
Arguments hexagon_identity {A _ _ _ _ _} F {_ _}.
115115

116+
(** *** Hexagon identity with inverse associators *)
117+
116118
(** ** Monoidal Categories *)
117119

120+
Class HexagonIdentityInverseAssoc {A : Type} `{HasEquivs A}
121+
(F : A -> A -> A)
122+
`{!Is0Bifunctor F, !Is1Bifunctor F, !Associator F, !Braiding F}
123+
(** The other hexagon identity for an associator and a braiding. *)
124+
:= hexagon_identity_inv_assoc a b c
125+
: fmap01 F b (braid a c) $o (associator b a c)^-1$ $o fmap10 F (braid a b) c
126+
$== (associator b c a)^-1$ $o braid a (F b c) $o (associator a b c)^-1$.
127+
128+
Coercion hexagon_identity_inv_assoc : HexagonIdentityInverseAssoc >-> Funclass.
129+
Arguments hexagon_identity_inv_assoc {A _ _ _ _ _} F {_ _}.
130+
118131
(** A monoidal 1-category is a 1-category with equivalences together with the following: *)
119132
Class IsMonoidal (A : Type) `{HasEquivs A}
120133
(** It has a binary operation [cat_tensor] called the tensor product. *)
@@ -439,6 +452,42 @@ Definition symmetricbraiding_op' {A : Type} {F : A -> A -> A}
439452
H' : !SymmetricBraiding (A:=A^op) F}
440453
: SymmetricBraiding F
441454
:= symmetricbraiding_op (A:=A^op) (F := F).
455+
456+
(** Symmetric monoidal categories also satisfy the other hexagon axiom. This is very close to the hexagon axiom of the opposite monoidal category. *)
457+
Instance cat_symm_tensor_hexagon_inv_assoc
458+
{A : Type} {F : A -> A -> A} {unit : A}
459+
`{IsSymmetricMonoidal A F unit}
460+
: HexagonIdentityInverseAssoc F.
461+
Proof.
462+
intros a b c.
463+
snrefine (_ $@ ((_ $@L _) $@R _)).
464+
2: exact ((braide _ _)^-1$).
465+
2: { napply cate_moveR_V1.
466+
symmetry.
467+
nrefine ((_ $@R _) $@ _).
468+
1: napply cate_buildequiv_fun.
469+
rapply braid_braid. }
470+
nrefine (cat_assoc _ _ _ $@ _).
471+
snrefine ((_ $@R _) $@ _).
472+
{ refine (emap _ _)^-1$.
473+
rapply braide. }
474+
{ symmetry.
475+
refine (cate_inv_adjointify _ _ _ _ $@ fmap2 _ _).
476+
napply cate_inv_adjointify. }
477+
snrefine ((_ $@L (_ $@L _)) $@ _).
478+
{ refine (emap (flip F c) _)^-1$.
479+
rapply braide. }
480+
{ symmetry.
481+
refine (cate_inv_adjointify _ _ _ _ $@ fmap2 _ _).
482+
napply cate_inv_adjointify. }
483+
nrefine (_ $@ cat_assoc_opp _ _ _).
484+
refine ((_ $@L _)^$ $@ _^$ $@ cate_inv2 _ $@ _ $@ (_ $@L _)).
485+
1,2,4,5: rapply cate_inv_compose'.
486+
refine (_ $@ (_ $@@ _) $@ _ $@ (_ $@R _)^$ $@ _^$).
487+
1-3,5-6: rapply cate_buildequiv_fun.
488+
refine ((fmap02 _ _ _ $@@ ((_ $@ fmap20 _ _ _) $@R _)) $@ cat_symm_tensor_hexagon a b c $@ ((_ $@L _^$) $@R _)).
489+
1-4: napply cate_buildequiv_fun.
490+
Defined.
442491

443492
(** ** Opposite Monoidal Categories *)
444493

@@ -479,31 +528,8 @@ Proof.
479528
- rapply ismonoidal_op.
480529
- exact symmetricbraiding_op.
481530
- intros a b c; unfold op in a, b, c; simpl.
482-
snrefine (_ $@ (_ $@L (_ $@R _))).
483-
2: exact ((braide _ _)^-1$).
484-
2: { napply cate_moveR_V1.
485-
symmetry.
486-
nrefine ((_ $@R _) $@ _).
487-
1: napply cate_buildequiv_fun.
488-
rapply braid_braid. }
489-
snrefine ((_ $@R _) $@ _).
490-
{ refine (emap _ _)^-1$.
491-
rapply braide. }
492-
{ symmetry.
493-
refine (cate_inv_adjointify _ _ _ _ $@ fmap2 _ _).
494-
napply cate_inv_adjointify. }
495-
snrefine ((_ $@L (_ $@L _)) $@ _).
496-
{ refine (emap (flip tensor c) _)^-1$.
497-
rapply braide. }
498-
{ symmetry.
499-
refine (cate_inv_adjointify _ _ _ _ $@ fmap2 _ _).
500-
napply cate_inv_adjointify. }
501-
refine ((_ $@L _)^$ $@ _^$ $@ cate_inv2 _ $@ _ $@ (_ $@L _)).
502-
1,2,4,5: rapply cate_inv_compose'.
503-
refine (_ $@ (_ $@@ _) $@ _ $@ (_ $@R _)^$ $@ _^$).
504-
1-3,5-6: rapply cate_buildequiv_fun.
505-
refine ((fmap02 _ _ _ $@@ ((_ $@ fmap20 _ _ _) $@R _)) $@ cat_symm_tensor_hexagon a b c $@ ((_ $@L _^$) $@R _)).
506-
1-4: napply cate_buildequiv_fun.
531+
nrefine (cat_assoc_opp _ _ _ $@ _ $@ cat_assoc _ _ _).
532+
napply cat_symm_tensor_hexagon_inv_assoc.
507533
Defined.
508534

509535
Definition issymmetricmonoidal_op' {A : Type} (tensor : A -> A -> A) (unit : A)

0 commit comments

Comments
 (0)