Skip to content

Commit 1f2af52

Browse files
authored
Merge pull request #1196 from anshwad10/strict-monoidal
Strict monoidal categories are strict categories
2 parents cc59d90 + a5e4b92 commit 1f2af52

File tree

1 file changed

+29
-14
lines changed

1 file changed

+29
-14
lines changed

Cubical/Categories/Monoidal/Base.agda

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,26 @@ open import Cubical.Categories.Functor.Base
99
open import Cubical.Categories.Morphism
1010
open import Cubical.Categories.NaturalTransformation.Base
1111
open import Cubical.Foundations.Prelude
12+
open import Cubical.Algebra.Monoid
1213

1314

1415
module _ {ℓ ℓ' : Level} (C : Category ℓ ℓ') where
1516
open Category C
1617

1718
record TensorStr : Type (ℓ-max ℓ ℓ') where
18-
field
19-
─⊗─ : Functor (C ×C C) C
20-
unit : ob
19+
field
20+
─⊗─ : Functor (C ×C C) C
21+
unit : ob
2122

22-
open Functor
23+
open Functor
2324

24-
-- Useful tensor product notation
25-
_⊗_ : ob ob ob
26-
x ⊗ y = ─⊗─ .F-ob (x , y)
25+
-- Useful tensor product notation
26+
_⊗_ : ob ob ob
27+
x ⊗ y = ─⊗─ .F-ob (x , y)
2728

28-
_⊗ₕ_ : {x y z w} Hom[ x , y ] Hom[ z , w ]
29-
Hom[ x ⊗ z , y ⊗ w ]
30-
f ⊗ₕ g = ─⊗─ .F-hom (f , g)
29+
_⊗ₕ_ : {x y z w} Hom[ x , y ] Hom[ z , w ]
30+
Hom[ x ⊗ z , y ⊗ w ]
31+
f ⊗ₕ g = ─⊗─ .F-hom (f , g)
3132

3233

3334
record StrictMonStr : Type (ℓ-max ℓ ℓ') where
@@ -38,10 +39,24 @@ module _ {ℓ ℓ' : Level} (C : Category ℓ ℓ') where
3839

3940
field
4041
-- Axioms - strict
41-
assoc : x y z x ⊗ (y ⊗ z) ≡ (x ⊗ y) ⊗ z
42-
idl : x unit ⊗ x ≡ x
43-
idr : x x ⊗ unit ≡ x
42+
is-monoid : IsMonoid unit _⊗_
43+
44+
open IsMonoid is-monoid renaming (·Assoc to assoc; ·IdL to idl; ·IdR to idr) public
45+
46+
field
47+
-- Axioms for the morphisms
48+
assocₕ : {x y z x' y' z'}
49+
(f : Hom[ x , x' ]) (g : Hom[ y , y' ]) (h : Hom[ z , z' ])
50+
(λ i Hom[ assoc x y z i , assoc x' y' z' i ])
51+
[ f ⊗ₕ (g ⊗ₕ h) ≡ (f ⊗ₕ g) ⊗ₕ h ]
52+
53+
idlₕ : {x x'} (f : Hom[ x , x' ])
54+
(λ i Hom[ idl x i , idl x' i ])
55+
[ id ⊗ₕ f ≡ f ]
4456

57+
idrₕ : {x x'} (f : Hom[ x , x' ])
58+
(λ i Hom[ idr x i , idr x' i ])
59+
[ f ⊗ₕ id ≡ f ]
4560

4661
record MonoidalStr : Type (ℓ-max ℓ ℓ') where
4762
field
@@ -71,7 +86,7 @@ module _ {ℓ ℓ' : Level} (C : Category ℓ ℓ') where
7186

7287
-- More nice notations
7388
α⟨_,_,_⟩ : (x y z : ob) Hom[ x ⊗ (y ⊗ z) , (x ⊗ y) ⊗ z ]
74-
α⟨ x , y , z ⟩ = α .trans ⟦ ( x , y , z ) ⟧
89+
α⟨ x , y , z ⟩ = α .trans ⟦ (x , y , z) ⟧
7590

7691
η⟨_⟩ : (x : ob) Hom[ unit ⊗ x , x ]
7792
η⟨ x ⟩ = η .trans ⟦ x ⟧

0 commit comments

Comments
 (0)