12345678910111213141516171819202122232425262728293031{-# OPTIONS --safe --without-K #-} open import Categories.Category.Monoidal module Categories.Functor.Monoidal.CurriedTensor.Properties {o ℓ e} (M : MonoidalCategory o ℓ e) where import Categories.Category.Monoidal.Reasoning as MonoidalRimport Categories.Category.Monoidal.Utilities as MonoidalUtilitiesimport Categories.Morphism.Reasoning as MRopen import Categories.Functor.Monoidal.CurriedTensor Mopen import Categories.Monad.Graded open MonoidalCategory Mopen MonoidalR monoidalopen MonoidalUtilities.Shorthands monoidalopen MR U private ℳ : GradedKleisliTriple M U ℳ = GradedMonad⇒GradedKleisliTriple curriedTensor open GradedKleisliTriple ℳ T₁-⊗ : ∀ u {A B} (h : A ⇒ B) → T₁ u h ≈ id ⊗₁ hT₁-⊗ u h = begin (ρ⇒ ⊗₁ id) ∘ (α⇐ ∘ (id ⊗₁ (λ⇐ ∘ h))) ≈⟨ (⟺ triangle) ⟩∘⟨refl ⟩ ((id ⊗₁ λ⇒) ∘ α⇒) ∘ (α⇐ ∘ (id ⊗₁ (λ⇐ ∘ h))) ≈⟨ cancelInner associator.isoʳ ⟩ (id ⊗₁ λ⇒) ∘ (id ⊗₁ (λ⇐ ∘ h)) ≈⟨ merge₂ʳ ⟩ id ⊗₁ (λ⇒ ∘ (λ⇐ ∘ h)) ≈⟨ refl⟩⊗⟨ cancelˡ unitorˡ.isoʳ ⟩ id ⊗₁ h ∎