diff options
Diffstat (limited to 'Functor/Monoidal')
| -rw-r--r-- | Functor/Monoidal/Strong/Properties.agda | 63 | 
1 files changed, 63 insertions, 0 deletions
| diff --git a/Functor/Monoidal/Strong/Properties.agda b/Functor/Monoidal/Strong/Properties.agda new file mode 100644 index 0000000..55d3cdb --- /dev/null +++ b/Functor/Monoidal/Strong/Properties.agda @@ -0,0 +1,63 @@ +{-# OPTIONS --without-K --safe #-} + +open import Level using (Level) +open import Categories.Category.Monoidal using (MonoidalCategory) +open import Categories.Functor.Monoidal using (StrongMonoidalFunctor) + +module Functor.Monoidal.Strong.Properties +  {o o′ ℓ ℓ′ e e′ : Level} +  {C : MonoidalCategory o ℓ e} +  {D : MonoidalCategory o′ ℓ′ e′} +  (F,φ,ε : StrongMonoidalFunctor C D) where + +import Categories.Category.Monoidal.Utilities as ⊗-Utilities +import Categories.Category.Construction.Core as Core + +open import Categories.Functor.Monoidal using (StrongMonoidalFunctor) +open import Categories.Functor.Properties using ([_]-resp-≅) + +module C where +  open MonoidalCategory C public +  open ⊗-Utilities.Shorthands monoidal public using (α⇐) + +module D where +  open MonoidalCategory D public +  open ⊗-Utilities.Shorthands monoidal using (α⇐) public +  open Core.Shorthands U using (_∘ᵢ_; idᵢ; _≈ᵢ_; ⌞_⌟; to-≈; _≅_; module HomReasoningᵢ) public +  open ⊗-Utilities monoidal using (_⊗ᵢ_) public + +open D + +open StrongMonoidalFunctor F,φ,ε + +private + +  variable +    X Y Z : C.Obj + +  Fα : F₀ ((X C.⊗₀ Y) C.⊗₀ Z) ≅ F₀ (X C.⊗₀ (Y C.⊗₀ Z)) +  Fα = [ F ]-resp-≅ C.associator + +  α : {A B C : D.Obj} → (A ⊗₀ B) ⊗₀ C ≅ A ⊗₀ (B ⊗₀ C) +  α = associator + +  φ : F₀ X ⊗₀ F₀ Y ≅ F₀ (X C.⊗₀ Y) +  φ = ⊗-homo.FX≅GX + +  φ⇒ : F₀ X ⊗₀ F₀ Y ⇒ F₀ (X C.⊗₀ Y) +  φ⇒ = ⊗-homo.⇒.η _ + +  φ⇐ : F₀ (X C.⊗₀ Y) ⇒ F₀ X ⊗₀ F₀ Y +  φ⇐ = ⊗-homo.⇐.η _ + +associativityᵢ : Fα {X} {Y} {Z} ∘ᵢ φ ∘ᵢ φ ⊗ᵢ idᵢ ≈ᵢ φ ∘ᵢ idᵢ ⊗ᵢ φ ∘ᵢ α +associativityᵢ = ⌞ associativity ⌟ + +associativity-inv : φ⇐ ⊗₁ id ∘ φ⇐ ∘ F₁ (C.α⇐ {X} {Y} {Z}) ≈ α⇐ ∘ id ⊗₁ φ⇐ ∘ φ⇐ +associativity-inv = begin +    φ⇐ ⊗₁ id ∘ φ⇐ ∘ F₁ C.α⇐   ≈⟨ sym-assoc ⟩ +    (φ⇐ ⊗₁ id ∘ φ⇐) ∘ F₁ C.α⇐ ≈⟨ to-≈ associativityᵢ ⟩ +    (α⇐ ∘ id ⊗₁ φ⇐) ∘ φ⇐      ≈⟨ assoc ⟩ +    α⇐ ∘ id ⊗₁ φ⇐ ∘ φ⇐        ∎ +  where +    open HomReasoning | 
