aboutsummaryrefslogtreecommitdiff
path: root/Functor/Instance/Monoidalize.agda
blob: 6423109bf09402ab6f6b801180b06e5c230fa894 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{-# OPTIONS --without-K --safe #-}

open import Level using (Level)
open import Categories.Category using (Category)
open import Categories.Category.Monoidal using (MonoidalCategory)
open import Categories.Category.Cocartesian using (Cocartesian)

module Functor.Instance.Monoidalize
    {o o′  ℓ′ e e  : Level}
    {C : Category o  e}
    (cocartesian : Cocartesian C)
    (D : MonoidalCategory o  e)
  where

open import Categories.Category.Cocartesian using (module CocartesianMonoidal)

open import Categories.Functor using (Functor)
open import Categories.Functor.Monoidal using (MonoidalFunctor)
open import Categories.Category.Construction.Monoids using (Monoids)
open import Categories.Category.Construction.Functors using (Functors)
open import Categories.Category.Construction.MonoidalFunctors using (module Lax)
open import Functor.Monoidal.Construction.MonoidValued cocartesian {D} using () renaming (F,⊗,ε to MonoidalFunctorOf)
open import NaturalTransformation.Monoidal.Construction.MonoidValued cocartesian {D} using () renaming (β,⊗,ε to MonoidalNaturalTransformationOf)

C-MC : MonoidalCategory o  e
C-MC = record { monoidal = +-monoidal }
  where
    open CocartesianMonoidal C cocartesian

module C = MonoidalCategory C-MC
module D = MonoidalCategory D

open Lax using (MonoidalFunctors)
open Functor

Monoidalize : Functor (Functors C.U (Monoids D.monoidal)) (MonoidalFunctors C-MC D)
Monoidalize .F₀ = MonoidalFunctorOf
Monoidalize .F₁ α = MonoidalNaturalTransformationOf α
Monoidalize .identity = D.Equiv.refl
Monoidalize .homomorphism = D.Equiv.refl
Monoidalize .F-resp-≈ x = x

module Monoidalize = Functor Monoidalize