@@ -9,25 +9,26 @@ open import Cubical.Categories.Functor.Base
99open import Cubical.Categories.Morphism
1010open import Cubical.Categories.NaturalTransformation.Base
1111open import Cubical.Foundations.Prelude
12+ open import Cubical.Algebra.Monoid
1213
1314
1415module _ {ℓ ℓ' : 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