





Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
Reference cheat sheet for Elementary Category Theory
Typology: Cheat Sheet
1 / 9
This page cannot be seen from the preview
Don't miss anything!
Categories
A category C consists of a collection of “objects” Obj C, a collection of “(homo)morphisms” HomC (a, b) for any a, b : Obj C —also denoted “a →C b”—, an operation Id associating a morphism Ida : Hom(a, a) to each object a, and a dependently-typed “composition” operation _ ◦ _ : ∀{A B C : Obj} → Hom(B, C) → Hom(A, B) → Hom(A, C) that is required to be associative with Id as identity.
It is convenient to define a pair of operations src, tgt from morphisms to objects as follows:
f : X →C Y ≡ src f = X ∧ tgt f = Y src, tgt-Definition
Instead of HomC we can instead assume primitive a ternary relation _ : _ →C _ and regain HomC precisely when the relation is functional in its last two arguments:
f : A →C B ∧ f : A′^ →C B′^ =⇒ A = A′^ ∧ B = B′^ type-Unique
When this condition is dropped, we obtain a pre-category; e.g., the familiar Sets is a pre-category that is usually treated as a category by making morphisms contain the information about their source and target: (A, f, B) : A → B rather than just f. This is sometimes easier to give than Hom! C.f. Alg(F).
Here’s an equivalence-preserving property that is useful in algebraic calculations,
f : A → B ∧ g : B → A ≡ g ◦ f : A → A ∧ f ◦ g : B → B Composition
Examples:
Linear Algebra: Matrices with real number values determine a category whose objects are the natural numbers, morphisms n → m are n × m matrices, Id is the identity matrix, and composition is matrix multiplication.
Each preorder determines a category: The objects are the elements and there is a morphism a → b named, say, “(a, b)”, precisely when a ≤ b; composition boils down to transitivity of ≤.
Each monoid (M, ⊕, e) gives rise to a category: The objects and the arrows are both the elements ofM , and k : m → n ≡ k ⊕ m = n. E.g., ( N , ×, 1) gives rise to a category whose products are gcd’s and so properties of products are thus gcd theorems!
Each digraph determines a category: The objects are the nodes and the paths are the morphisms typed with their starting and ending node. Composition is catenation of paths and identity is the empty path.
Suppose we have an ‘interface’, in the programming sense, of constant, function, and relation symbols —this is also called a signature. Let T be any collection of sentences in the first-order language of signature Σ. Then we can define a category Mod T whose objects are implementations of inter- face Σ satisfying constraints T , and whose morphisms are functions that preserve the Σ structure. Ignoring constraints T gives us ‘functor algebras’. Particular examples include monoids and structure-preserving maps between them; likewise digraphs, posets, rings, etc and their homomorphisms.
Even when morphisms are functions, the objects need not be sets: Sometimes the objects are operations —with an appropriate definition of typing for the functions. The categories of F -algebras are an example of this.
“Gluing” Morphisms Together
Traditional function application is replaced by the more generic concept of functional composition suggested by morphism-arrow chaining: Whenever we have two morphisms such that the target type of one of them, say g : B A is the same as the source type of the other, say f : C B then “f after g”, their composite morphism, f ◦ g : C A can be defined. It “glues” f and g together, “sequentially”:
f ←− B g ←− A ⇒ C f ◦g ←− A composition-Type Composition is the basis for gluing morphisms together to build more complex morphisms. However, not every two morphisms can be glued together by composition. Types provide the interface for putting morphisms together to obtain more complex functions. A split arises wherever two morphisms do not compose but share the same source.
Since they share the same source, their outputs can be paired: c 7 → (f c, g c).
This duplicates the input so that the functions can be executed in “parallel” on it.
A product appears when there is no explicit relationship between the types of the mor- phisms.
We regard their sources as projections of a product, whence they can be seen as splits.
This (c, d) 7 → (f c, g d) corresponds to the “parallel” application of f and g, each with its own input.
An either arises wherever two morphisms do not compose but share the same target.
Apply f if the input is from the “A side” or apply g if it is from the “B side”.
This is a “case analysis” of the input with branches being either f or g.
A sum appears when there is no explicit relationship between the types of the morphisms.
We regard their targets as injections into a sum, whence they can be seen as eithers.
A transpose arises when we need to combine a binary morphism with a unary morphism.
I.e., it arises when a composition chain is interrupted by an extra product argu- ment.
Express f as a C -indexed family, fc : A → B, of morphisms such that applying a function at any index behaves like f ; i.e., fc a = f (c, a). Each fc can now be composed with g. Let ( ) denote the operation f 7 → fc.
f ←− C g −→ B ≡ A × B
〈f,g〉 ←−−− C split-Type
f ←− C ∧ B g ←− D ≡ A × B
f ×g ←−−− C × D x-Type
f −→ C
g ←− B ≡ A + B
[f,g] −−−→ C either-Type
f −→ C ∧ B
g −→ D ≡ A + B
f +g −−−→ C + D +-Type
f ←− C × A ≡ BA^
f ←− C transpose-Type
f ←− C × A ∧ C
g ←− D ≡ BA^
f ◦g ←−−−−− D transpose-combination
Functors A functor F : A → B is a pair of mappings, denoted by one name, from the objects, and morphisms, of A to those of B such that it respects the categorical structure:
F f : F A →B F B ⇐ f : A →A B functor-Type
F IdA = IdF A Functor
F (f ◦ g) = F f ◦ F g Functor
The two axioms are equivalent to the single statement that functors distribute over finite compositions, with Id being the empty composition:
F (f 0 ◦ · · · ◦ fn− 1 ) = F f 0 ◦ · · · ◦ F fn− 1
Use of Functors.
In the definition of a category, “objects” are “just things” for which no internal structure is observable by categorical means —composition, identities, morphisms, typing. Functors form the tool to deal with “structured” objects. Indeed in Set the aspect of a structure is that it has “constituents”, and that it is possible to apply a function to all the individual constituents; this is done by F f : F A → F B.
For example, let IIA = A × A and IIf = (x, y) 7 → (f x, f y). So II is or represents the structure of pairs; II A is the set of pairs of A, and II f is the function that applies f to each constituent of a pair.
◦ A binary operation on A is then just a function IIA → A; in the same sense we obtain F-ary operations.
Also, Seq is or represents the structure of sequences; Seq A is the structure of sequences over A, and Seq f is the function that applies f to each constituent of a sequence.
Even though F A is still just an object, a thing with no observable internal struc- ture, the functor properties enable to exploit the “structure” of F A by allowing us to “apply” an f to each “constituent” by using F f.
Category Alg(F )
For a functor F : A → D, this category has F-algebras, F -ary operations in D as, objects — i.e., objects are D-arrows F A → A — and F -homomorphisms as morphisms, and it inherits composition and identities from D.
f : ⊕ →F ⊗ ≡ f ◦ ⊕ = ⊗ ◦ F f defn-Homomorphism
Id : ⊕ →F ⊕ id-Homomorphism
g ◦ f : ←F ⊕ ⇐ g : ←F ⊗ ∧ f : ⊗ ←F ⊕ comp-Homomorhism
Note that category axiom (??) is not fulfilled since a function can be a homomor- phism between several distinct operations. However, we pretend it is a category in the way discussed earlier, and so the carrier of an algebra is fully determined by the operation itself, so that the operation itself can be considered the algebra.
comp-Homomorhism renders a semantic property as a syntactic condition!
A contravariant functor C → D is just a functor Cop^ → D.
A bifunctor from C to D is just a functor C² → D.
Naturality
A natural transformation is nothing but a structure preserving map between functors. “Structure preservation” makes sense, here, since we’ve seen already that a functor is, or represents, a structure that objects might have. As discussed before for the case F : C → Set, each F A denotes a structured set and F denotes the structure itself.
Example Structures: II is the structure of pairs, Seq is the structure of sequences, Seq Seq the structure of sequences of sequences, II Seq the structure of pairs of sequences —which is naturally isomorphic to Seq II the structure of sequences of pairs!—, and so on. A “transformation” from structure F to structure G is a family of functions η : ∀{A} → F A → G A; and it is “natural” if each ηA doesn’t affect the constituents of the structured elements in F A but only reshapes the structure of the elements, from an F -structure to a G-structure.
Reshaping the structure by η commutes with subjecting the constituents to an arbitrary morphism.
η : F →. G ≡ ∀f • ηtgt f ◦ F f = G f ◦ ηsrc f ntrf-Def This is ‘naturally’ remembered: Morphism ηtgt f has type F (tgt f ) → G(tgt f ) and there- fore appears at the target side of an occurrence of f ; similarly ηsrc f occurs at the source side of an f. Moreover since η is a transformation from F to G, functor F occurs at the source side of an η and functor G at the target side.
dRy ◦ f ◦ xe = y ◦ df e ◦ Lx rad-Fusion
Also,
Left adjoints preserve colimits such as initial objects and sums.
Right adjoints preserve limits such as terminal objects and products.
Constant Combinators Opposite to the identity functions which do not lose any information, we find functions which lose all, or almost all, information. Regardless of their input, the output of these functions is always the same value.
The Constant Combinator K : C → Func(D, C)
For objects x, the “constant functor”: Kx y = x and Kx f = Idx for objects y and morphisms f.
For morphisms f , the “constant natural transformation”: Kf : K(srcf ) →. K(tgtf ) sending objects y to morphism Kf y = f.
Sometimes it is convenient to notate c = K c and refer to this as the everywhere c operation.
c a = c constant-functor-Defn
The following property defines constant functors at the ‘pointfree level’:
c ◦ F = c constant-Fusion
Constant functors force any difference in behaviour for any two functors to disappear:
c ◦ F = c ◦ G constant-Equality
Interestingly, functor composition and application are bridged explicitly by the constant functor:
F ◦ c = F c Functor-Bridge
Monics and Epics
Identity functions and constant functions are limit points of the functional spectrum with respect to information preservation. All the other functions are in-between: They “lose” some information, which is regarded as uninteresting for some reason.
How do functions lose information? Basically in two ways: They may be “blind” enough to confuse different inputs, by mapping them to the same output, or they may ignore values of their target. For instance, c confuses all inputs by mapping them all onto c. Moreover, it ignores all values of its target apart from c.
Functions which do not confuse their inputs are called monics: They are “post-cancellable”:
f monic ≡ (∀h, k • f ◦ h = f ◦ k ≡ h = k) monic-Defn
Functions which do not ignore values of their target are called epics: They are “pre- cancellable”:
f epic ≡ (∀h, k • h ◦ f = k ◦ f ≡ h = k) epic-Defn
Intuitively, h = k on all points of their source precisely when they are equal on all image points of f , since f being epic means it outputs all values of their source. It is easy to check that “the” identity function is monic and epic, while any constant function c is not monic and is only epic when its target consists only of c.
Isos
An arrow is an iso iff it is invertible; i.e., there is an “inverse” morphism f −^1 with f ◦ f −^1 = Id ∧ f −^1 ◦ f = Id inverse-Char To construct f −^1 , we begin by identifying its type which may give insight into its necessary ‘shape’ —e.g., as a sum or a product— then we pick one of these equations and try to reduce it as much as possible until we arrive at a definition of f ^, or its ‘components’.
E.g., coassocr = [Id + inl, inr ◦ inr] of type (A + B) + C ∼= A + (B + C), its inverse coassocl must be of the shape [x, [y, z]] for unknowns x, y, z which can be calculated by solving the equation [x, [y, z]] ◦ coassocr = Id —Do it!
The following rules can be of help if f −^1 is found handier than isomorphism f in reasoning,
f ◦ x = y ≡ x = f − 1 ◦ y inverse-Shunting
x ◦ f = y ≡ x = y ◦ f − 1 inverse-Shunting
Isos are necessarily monic and epic, but in general the other way around is not true. Isomorphisms are very important because they convert data from one “format”, say A, to another format, say B, without losing information. So f and f ^^ are faithful protocols between the two formats A and B. Of course, these formats contain the same “amount” of information although the same data adopts a “different” shape in each of them. —c.f. Example Structures. Isomorphic data domains are regarded as “abstractly” the same; then one write A ∼= B. Finally, note that all classes of functions referred to so far —identities, constants, epics, monics, and isos— are closed under composition. Monics to the initial object are necessarily isos!
Skolemisation If a property P holds for precisely one class of isomorphic objects, and for any two objects in the same class there is precisely one isomorphism from one to the other, then we say that the P-object is unique up to unique isomorphism. For example, in Set the one-point set is unique up to a unique isomorphism, but the two-point set is not. For example, an object A is “initial” iff ∀B • ∃ 1 f • f : A → B, and such objects are unique up to unique isomorphism —prove it! The formulation of the definition is clear but it’s not very well suited for algebraic manipulation. A convenient formulation is obtained by ‘skolemisation’: An assertion of the form ∀x • ∃ 1 y • R x y is equivalent to: There’s a function F such that ∀x, y • R x y ≡ y = F x (F-Char) In the former formulation it is the existential quantification “∃y” inside the scope of a universal one that hinders effective calculation. In the latter formulation the existence
claim is brought to a more global level: A reasoning need no longer be interrupted by the declaration and naming of the existence of a unique y that depends on x; it can be denoted just F x. As usual, the final universal quantification can be omitted, thus simplifying the formulation once more.
In view of the important role of the various y’s, these y’s deserve a particular notation that triggers the reader of their particular properties. We employ bracket notation such as (|x|) for such F x: An advantage of the bracket notation is that no extra parentheses are needed for composite arguments x, which we expect to occur often.
The formula characterising F may be called ‘F-Char’ and it immediately give us some results by truthifying each side, namely ‘Self’ and ‘Id’. A bit more on the naming:
Type Possibly non-syntactic constraint on notation being well-formed Self It, itself, is a solution Id How Id can be expressed using it Uniq Its problem has a unique solution Fusion How it behaves with respect to composition Composition How two instances, in full subcategories, compose
Note that the last 3 indicate how the concept interacts with the categorical structure: =, ;^ , Id. Also note that Self says there’s at least one solution and Uniq says there is at most one solution, so together they are equivalent to F-Char —however those two proofs are usually not easier nor more elegant than a proof of F-Char directly.
Proving F-Char is straightforwardly accomplished by providing a definition for F and establishing F-Char —these two steps can be done in parallel! Almost every such proof has the following format, or a circular implication thereof: For arbitrary x and y,
R x y ≡ .. . ≡ y = “an expression not involving y” ≡ { d ef ine F x to be the right side of the previous equation } y = F x
Initiality
An object 0 is initial if there’s a mapping (| − |), from objects to morphisms, such that initial-Char holds; from which we obtain a host of useful corollaries. Alternative notations for (|B|) are ¡B , or (| 0 → B|) to make the dependency on 0 explicit.
f : 0 → B ≡ f = (|B|) initial-Char
(|B|) : 0 → B initial-Self
Id 0 = (| 0 |) initial-Id
f, g : 0 → B ⇒ f = g initial-Uniq
f : B → C ⇒ f ◦ (|B|) = (|C|) initial-Fusion
Provided objects B, C are both in A and B, which are full subcategories of some category C: (|C ← B|)B ◦ (|B ← A|)A = (|C ← A|)A initial-Compose
Provided D is built on top of C; i.e., D-objects are composite entities in C: B is an object in D ⇒ (|B|) is a morphism in C initial-Type
These laws become much more interesting when the category is built upon another one and the typing is expressed as one or more equations in the underlying category. In particular the importance of fusion laws cannot be over-emphasised; it is proven by a strengthening step of the form f ◦(|B|) : 0 → C ⇐ (|B|) : 0 → B ∧ f : B → C. For example, it can be seen that the datatype of sequences is ‘the’ initial object in a suitable category, and the mediator (| − |) captures “definitions by induction on the structure”! Hence induction arguments can be replaced by initiality arguments! Woah!
Colimits Each colimit is a certain initial object, and each initial object is a certain colimit.
A diagram in C is a functor D : D → C.
Recall The Constant Combinator yielding a functor on objects —C x = C for objects x and C f = IdC for morphisms f — and a natural transformation on arrows —g = x 7 → g : A →. B for morphism g : A → B.
The category
D, built upon C, has objects γ : D →. C called “co-cones”, for some object C =: tgt γ, and a morphism from γ to δ is a C-morphism x such that x ◦ γ = δ. ‘Cones’ sit upright on their base, D, on a table; ‘CoCones’ sit upright on a co-table!
A colimit for D is an initial object in
D; which may or may not exist.
Writing −/γ for (| − |) and working out the definition of co-cone in terms of equations in C, we obtain: γ : Obj(
D) is a colimit for D if there is a mapping −/γ such that /-Type and /-Char hold.
δ cocone for D ⇒ δ/γ : tgt γ → tgt δ Colimit-Type
Well-formedness convention: In each law the variables are quantified in such a way that the premise of /-Type is met. The notation δ/ · · · is only senseful if δ is a co-cone for D, like in arithmetic where the notation m ÷ n is only sensful if n differs from 0.
x ◦ γ = δ ≡ x = δ/γ Colimit-Char
The fraction notation better suggests the calculational properties.
Notice that for given x : C → C′^ the equation δ/γ = x defines δ, since by /-Char that one equation equivales the family of equations δA = x ◦ γA. This allows us to define a natural transformation —or ‘eithers’ in the case of sums— using a single function having the type of the mediating arrow.
δ/γ ◦ γ = δ Colimit-Self ; Cancellation
γ/γ = Id Colimit-Id
x ◦ δ/γ = (x ◦ δ)/γ Colimit-Fusion
x ◦ γ = y ◦ γ ⇒ x = y Colimit-Unique ; JointlyEpic
Products
Take D and D as suggested by DD =
B
. Then a cone δ for D is a two-member
family δ = (f, g) with f : C → A and g : C → B, where C = tgt δ.
Let γ = (fst, snd) be a limit for D, let A + B = tgt γ, and write 〈f, g〉 in-place of (f, g)/γ, then the /-laws yield: (fst, snd, A × B) form a product of A and B if there is an operation 〈−, −〉 satisfying the Char and Type laws below; from which we obtain a host of corollaries.
f : C → A ∧ g : C → B ⇒ 〈f, g〉 : C → A × B Pair-Type
fst ◦ x = f ∧ snd ◦ x = g ≡ x = 〈f, g〉 Pair-Char
fst ◦ 〈f, g〉 = f ∧ snd ◦ 〈f, g〉 = g Pair-Cancellation; Pair-Self
〈fst, snd〉 = Id Pair-Id
fst ◦ x = fst ◦ y ∧ snd ◦ x = snd ◦ y ⇒ x = y Pair-Unique
〈f, g〉 ◦ x = 〈f ◦ x, g ◦ x〉 Pair-Fusion
F 〈f, g〉C = 〈F f, F g〉D where F : C → D Pair-Functor-Dist
The characterisation says that the essential properties of ordered pairs is that their com- ponents are retrievable and they are completely determined by their components.
Notice that the cancellation rule is essentially the definitions of projections in the point- wise setting; likewise absorption is akin to the pointwise definition of the product bi-map.
The fusion laws give us a pointfree rendition of their usual pointwise definitions: All applications have been lifted to compositions!
For categories in which products exist, we define for f : A → B and g : C → D,
f × g = 〈f ◦ fst, g ◦ snd〉 : A × C → B × D x-Definition
fst ◦ (f × g) = f ◦ fst ∧ snd ◦ (f × g) = g ◦ snd Projections-Naturality
〈fst ◦ h, snd ◦ h〉 = h Extensionality
(f × g) ◦ 〈h, j〉 = 〈f ◦ h, g ◦ j〉 Absorption
Id × Id = Id ∧ (f × g) ◦ (h × j) = (f ◦ h) × (g ◦ j) x-BiFunctoriality
〈f, g〉 = 〈h, j〉 ≡ f = h ∧ g = j Structural Equality
Finitary Sums and Products
All properties studied for binary splits and binary eithers extend to the finitary case. For the particular situation n = 1, we will have 〈f 〉 = [f ] = f and inl = fst = Id, of course.
For the particular situation n = 0, finitary products “degenerate” to terminal object 1 and finitary sums “degenerate” to initial object 0. The standard notation for the empty split 〈〉 is !C , where C is the source. Dually, the standard notation for the empty either [] is ?C.
〈〉 0 = [] 1 Empty Exchange Rule
Mixing products and coproducts
Any f : A + B → C × D can be expressed alternatively as an either or as a split. It turns out that both formats are identical: 〈[f, g], [h, j]〉 = [〈f, h〉, 〈g, j〉] Exchange Rule E.g., undistr = 〈[fst, fst], snd + snd〉 = [Id × inl, Id × inr] : (A × B) + (A × C) → A × (B + C).
[f × g, h × k] = 〈[f, h] ◦ (fst + fst), [g, k] ◦ (snd + snd)〉 Cool-Property
〈f + g, h + k〉 = [(inl × inl) ◦ 〈f, h〉, (inr × inr) ◦ 〈g, k〉] Co-cool-Property Also, since constants ignore their inputs, [〈f, k〉, 〈g, k〉] = 〈[f, g], k〉 Exchange-with-constant
References . A Gentle Introduction to Category Theory — the calculational approach by Maarten Fokkinga
An excellent introduction to category theory with examples motivated from programming, in-particular working with sequences. All steps are shown in a calculational style — which Fokkinga has made available for use with LATEX— thereby making it suitable for self-study.
Clear, concise, and an illuminating read.
I’ve deviated from his exposition by using backwards composition ‘◦’ rather than dia- grammatic composition ‘;’, as such my limit notation is his colimit notation! Be careful.
I’ve also consulted the delightful read Program Design by Calculation of José Oliveira. Very accessible for anyone who wants an introduction to functional programming! The category theory is mostly implicit, but presented elegantly!
To Read
Toposes, Triples and Theories by Michael Barr and Charles Wells
Seven Sketches in Compositionality: An Invitation to Applied Category Theory
Frobenius algebras and ambidextrous adjunctions by Aaron Lauda
Functorial Semantics of Algebraic Theories by F. William Lawvere
Basic Concepts of Enriched Category Theory by G.M. Kelly
Rosetta Stone
Monoidal and Closed Categories
It is rather common that we have a notion of pairing for types for which there is a unit type. Examples include products with the initial object, sums with the terminal object, or for the category of endofunctors: Functor composition with the identity functor.
A monoidal category (C, ⊗, I, α, λ, ρ) consists of a category C with bifunctor _ ⊗ _ : C^2 → C and object I : Obj C —referred to as the ‘tensor product’ and ‘tensor unit— and three natural isomorphisms: The ‘(right-to-left) associator’ αA, B, C : A ⊗ (B ⊗ C) ∼= (A ⊗ B) ⊗ C and the ‘unitors’ λA : I ⊗ A ∼= A and ρA : A ⊗ I ∼= A such that:
Mnemonic: λ, ‘L’ambda, is for ‘L’eft unitor; ρ, ‘R’ho, is for ‘R’ight unitor.
Unfolding some of that up yields:
Id ⊕ Id = Id and (f ◦ g) ⊗ (h ◦ k) = (f ⊗ h) ◦ (g ⊗ k)
α ◦ (f ⊗ (g ⊗ h)) = ((f ⊗ g) ⊗ h) ◦ α
λ ◦ (Id ⊗ f ) = f ◦ λ
ρ ◦ (f ⊗ Id) = f ◦ ρ
Mac Lane’s coherence theorem: Any well-typed diagram built from ⊗, α, λ, ρ commutes.
Id ⊗ f = Id ⊗ g ≡ f = g Unit-Equivalence-Left
f ⊗ Id = g ⊗ Id ≡ f = g Unit-Equivalence-Right
Examples
Common examples include preordered monoids thought of as monoidal categories.
Functor categories CC^ with tensor being functor composition.
Any category with finite co/products is monoidal using sums or products.
The ‘free strict monoidal category’ on C has objects being finite lists of C-objects where an arrow exists only between equal length lists and it is a list of C-morphisms between the corresponding components; tensor is catenation with the empty list as the unit object.
Symmetric monoidal categories are closed under products, and this has a right adjoint yielding functor categories of sym. mon. cats.
Interestingly, tensor distributes over sums: (A + B) ⊗ C ∼= (A ⊗ C) + (B ⊗ C). A lax monoidal functor F : V −→ V′^ is a functor that sub-factors over product: F x 0 ⊗ · · · ⊗ F xn −→ .F (x 0 ⊗ · · · ⊗ xn).
A Cartesian-closed category is a monoidal category where the tensor is categorical product and all exponentials exist. These categories are in correspondence with the models of simply typed lambda-calculus. If it has all finite sums as well, then it’s known as bicartesian closed, in which case products necessarily distribute over sums. V is semicartesian if any of the following equivalent statements is true.
If in addition it is symmetric with (natural involution) σ : X ⊗ Y −→ Y ⊗ X and has a natural ‘diagonal’ ∆X : X −→ X ⊗ X such that the obvious maps X −→ X coincide — i.e., λ ◦ (! ⊗ Id) ◦ ∆ = Id = ρ ◦ (Id⊗!) ◦ ∆, “duplicating data, then deleting a copy, is the same as doing nothing”— then it is necessairly cartesian! An exponential for Y is characterised by the following adjoint isomorphism that is natural in Y and Z: b_c : X ⊗ Y → Z ∼= X → (Y Z) : d_e Exponential-Char
Note that b_c generalises currying, and d_e generalises uncurrying.
The counit evalZ = dIdY z e : (Y Z) ⊗ Y → Z is called the evaluation morphism.
X (Y Z) ∼= (X ⊗ Y ) Z Exp-Internalised-Char
I Z ∼= Z Exp-Unit When exponentials always exists, one refers to _ _ : C × Cop^ → C as the internal hom and says (C, ⊗, I, α, λ, ρ, ) is a closed monoidal category. In the cartesian case, the entire collection of morphisms X → Y is encoded by the single object X Y. That is, X → Y ∼= 1 → (X Y ) in Set.
ddeval ◦ Id ⊗ eval ◦ α−^1 ee : (X Y ) → (W X) (W Y ) Left-Internal-Yoneda
dλX e : I → (X X) Internal-Identities More generally, a closed category is a category C with a bifunctor _ _ and two ‘coherent’ transformations as above. It is common to notate X Y, bf c by Y X^ , f.
f = eval ◦ g ⊗ Id ≡ f = g Transpose-Char
eval ◦ f ⊗ Id = f Transpose-Self
f ◦ h = f ◦ h ⊗ Id Transpose-Fusion