definition example

A Monoidal Category is monoidal closed (closed) if for every pair of objects there is an object (the internal hom, also or ) with a natural isomorphism

i.e. for every — the categorification of a Monoidal Closed Preorder. The counit is evaluation, the unit coevaluation.

Sources: 7 Sketches §4.5.1 (text before Proposition 4.60), Remark 2.81, Definition 2.79; DaoFP §10.1 (internal vs. external hom), §19.1 (“Closed Monoidal Categories”, “Internal hom for Day convolution”, “Powering and co-powering”), §20.1 (“Self-enrichment”), §20.2.

  • Cartesian closed categories are the case (Exponential Object); compact closed categories are the case where (Proposition 4.60). Every monoidal closed category is self-enriched via , with composition built from evaluation (DaoFP §20.1), and its Hom Functor is an Enriched Functor.
  • Examples: , (with ), with , , with Day Convolution and its internal hom (DaoFP §19.1); the preorder cases (), (truncated subtraction), .
  • -valued functors on a closed are enriched co-presheaves with ; powering and copowering , generalize exponentials and tensors by a set (DaoFP §19.1).
  • Internal homs make strong functors and enriched functors coincide in a closed category: every Haskell Functor is both.
#check CategoryTheory.MonoidalClosed        -- class: every object X has a `Closed X` structure, i.e. tensorLeft X ⊣ ihom X
#check CategoryTheory.ihom                   -- the internal hom functor
#check CategoryTheory.ihom.ev                -- evaluation
#check CategoryTheory.ihom.coev              -- coevaluation
-- in Hask the internal hom is (->): eval and coeval
eval :: (a -> b, a) -> b
eval (f, a) = f a
coeval :: b -> (a -> (b, a))
coeval b = \a -> (b, a)
-- DaoFP §20.2: strength from enrichment, `strength (a, fb) = fmap (a,) fb`