CL and TT v2
CL and TT v2
Eric Schmid
DRAFT: March 6, 2025
Version 2
ii
Contents
A Further Reading 47
iii
iv CONTENTS
Preface
Chapter 2 covers propositional logic and algebraic theories from a categorical perspec-
tive. We explain how algebraic structures (like groups, rings, etc.) can be described as
categories with finite products (Lawvere theories), and how their models are functors to
1
Samson Abramsky and Nikos Tzevelekos, ”Introduction to Categories and Categorical Logic,”
arXiv:1102.1313 (2011), which provides a succinct introduction to category theory and its connections
to logic.
2
Steve Awodey (with input from Andrej Bauer), Categorical Logic, Autumn School on Proof and Compu-
tation, Fischbachau 2022 and the draft Introduction to Categorical Logic (September 15, 2024). These texts
develop the idea of algebraic theories, propositional logic, and Stone duality in a categorical framework.
3
Bart Jacobs, Categorical Logic and Type Theory, Studies in Logic and the Foundations of Mathematics
141, Elsevier, 1999. Jacobs’s book systematically develops logic and type theory using category theory (in
particular, fibrations) and serves as a reference for advanced topics beyond the scope of these introductory
notes.
1
2 CONTENTS
Set. We prove soundness and completeness for equational logic categorically. We then
treat propositional logic: Boolean algebras and their dual Stone spaces provide semantics
for classical propositional calculus, culminating in Stone’s duality theorem. We also discuss
intuitionistic propositional logic via Heyting algebras, introducing frames and locales as
categorical generalizations of topological spaces.
Chapter 3 deals with first-order logic in categorical terms. We develop the notion of a
cartesian or finite limit logic (also called coherent or regular logic for certain fragments)
and show how quantifiers can be characterized as adjoint functors. The concept of a clas-
sifying category (or classifying topos in more advanced settings) for a first-order theory
is introduced, providing a categorical semantics where models of the theory correspond
to functors from this category. We define key properties of categories that capture logi-
cal axioms: regular categories (for ∃), coherent categories (for ∨), Heyting categories (for
intuitionistic logic), and Boolean categories (for classical logic). We outline the internal
logic of categories and give a glimpse of Kripke–Joyal semantics for logical formulas in a
category (as used in topos theory).
Chapter 4 introduces type theory and its categorical semantics. We start with the simply-
typed λ-calculus as a formal system of types and terms. We define Cartesian closed cat-
egories (CCC) and explain the Curry–Howard–Lambek correspondence: how CCCs are
equivalent (as models) to the simply-typed lambda calculus. In particular, we show how
a CCC provides a sound and complete semantics for propositional logic with implication
(and how adding product types corresponds to conjunction). We then extend to depen-
dent types and discuss how categories with additional structure (such as locally Cartesian
closed categories and categories with families) provide semantics for dependent type theo-
ries (which correspond to first-order logic internally). Finally, we touch on polymorphism
and universe types, connecting to advanced type theory: a universe in a category is in-
troduced as an object that can be thought of as a type of all (small) types, allowing the
interpretation of type-theoretic universes categorically.
Throughout, we include full proofs of propositions and theorems to make this text self-
contained. In places where proofs are beyond the scope of an introduction (for example,
Gödel’s completeness theorem for first-order logic or a full proof of Stone’s theorem), we
give sketches or references for further reading.
It is our hope that this expanded textbook will serve students and researchers from
both computer science and mathematics who are interested in the beautiful connections
between category theory, logic, and type theory. The exercises should help the reader gain
a working proficiency in these concepts. We encourage attempting the exercises, as many
important ideas appear there.
CONTENTS 3
Acknowledgments. We thank the authors of the original notes and textbooks. All
mistakes or omissions in these notes are our own.
4 CONTENTS
Chapter 1
This arrow-centric viewpoint reveals deep structural similarities across different math-
ematical contexts. A classic example: the concept of a “homomorphism” (structure-
preserving map) between algebraic structures can be seen as a special case of a categorical
morphism (arrow). By abstracting properties of these arrows (composition, identity, etc.),
category theory provides a unifying framework to discuss disparate areas of math in a
common language.
In category theory, we do not require that arrows are functions or that objects are
sets; they can be any abstract entities as long as they satisfy certain axioms. This level
of generality is powerful: for example, a partially ordered set (poset) can be viewed as
a special category (with at most one arrow between any two objects), and a group can
be viewed as a category with a single object (all group elements being arrows from that
object to itself). These perspectives might seem unusual at first, but they allow us to apply
categorical reasoning (like “universal properties”) to a wide range of situations.
5
6 CHAPTER 1. BASIC CATEGORY THEORY
enable us to later describe logical systems and type systems in terms of categories, where
logical formulas and types correspond to objects, and proofs and programs correspond to
arrows.
• For every ordered pair of objects (A, B), a class C(A, B) of morphisms (or arrows)
from A to B. If f is a morphism in C(A, B), we write f : A → B.
• (Identity) For every object A, there is a morphism idA : A → A, called the identity
on A, such that for every f : A → B, we have f ◦ idA = f , and for every g : C → A,
idA ◦ g = g. In other words, idA acts as a two-sided identity for composition.
We often denote the class of morphisms from A to B as homC (A, B) or simply C(A, B). If
a morphism f : A → B is an isomorphism (defined below), we may write A ∼ = B.
Proof. This definition is standard. Note that we allow the collections of objects and mor-
phisms to be proper classes (not necessarily sets), but in practice many categories of interest
are locally small, meaning C(A, B) is a set for all A, B.
In the definition above, we used the word “class” to allow for the possibility that the
collection of all objects or morphisms might be too large to be a set (for example, the cat-
egory of all sets has a proper class of objects). A category is called small if its objects and
morphisms form sets (rather than proper classes), and locally small if for each A, B, the
hom-class C(A, B) is a set. Unless stated otherwise, we will not worry about set-theoretic
size issues and will assume categories are locally small.
1.2. DEFINITION OF CATEGORIES AND BASIC EXAMPLES 7
Let us unravel the definition with some immediate consequences and simple examples:
f
• Composition being associative means that given a composable triple of arrows A −→
g h
B→− C− → D, it doesn’t matter how we parenthesize the composite h ◦ g ◦ f . We can
thus unambiguously write h ◦ g ◦ f : A → D.
• Identities are unique for each object (because if u : A → A is any morphism with the
identity property, u = u ◦ idA = idA ◦ u = idA ). Often, we simply write 1A for idA
when context is clear.
• The definition does not require that Ob(C) or C(A, B) are non-empty. It is perfectly
valid (though not very interesting) to have a category with no objects (and hence no
arrows), or a category with objects but no arrows between some pairs of objects. For
instance, the empty category has no objects at all, and the discrete category on
a set of objects has only identity arrows and no others.
Now we present a variety of examples. These illustrate how diverse categories can be,
and how familiar structures fit into this abstract framework.
Example 1.2 (Sets and Functions). Perhaps the most fundamental example is the cate-
gory Set, whose objects are all (small) sets and whose morphisms are all functions between
sets. Composition is the usual composition of functions, and identity morphisms are iden-
tity functions. It is straightforward to verify that Set satisfies the category axioms. This
category plays a special role as the typical setting for the semantics of many theories (since
models of theories are often sets with structure). We will often denote it by Set.
It’s easy to see that verifying the category axioms reduces to checking that ≤ is reflexive
and transitive (which is given). Anti-symmetry (the condition a ≤ b and b ≤ a implies
a = b) means that the only isomorphisms in this category are identity morphisms; such a
category is called skeletal (isomorphic objects are equal).
As a specific instance, consider any topological space X. Its open sets O(X) form a
poset under inclusion (U ≤ V iff U ⊆ V ). Thus O(X) can be regarded as a category: an
arrow U → V exists iff U ⊆ V . This example will be important later when we discuss
frames and locales in logic (since O(X) is a frame, an example of a complete Heyting
algebra).
Example 1.4 (Groups and Monoids as One-Object Categories). Any group (G, ·, e) can
be seen as a category with a single object ∗. Define Ob(C) = {∗}. Let C(∗, ∗) = G, i.e. each
element g ∈ G is considered a morphism ∗ → ∗. Composition of morphisms in C is given by
the group operation: the composite of f : ∗ → ∗ and g : ∗ → ∗ is defined to be g ◦ f := g · f
(note the order: first f , then g). The group identity e serves as the identity morphism id∗ .
The group axioms (associativity of · and identity e) exactly ensure the category axioms
hold. Every arrow in this category is invertible (with f −1 as the inverse of f ), reflecting
the fact that all morphisms are isomorphisms.
More generally, any monoid (a set with an associative binary operation and a unit,
but not necessarily inverses) can be viewed as a category with one object. A monoid ele-
ment m is a morphism ∗ → ∗; composition is given by the monoid operation g ◦ f = g · f .
The lack of inverses in a monoid means that some arrows in the category will not have
two-sided inverses (so it’s not a “groupoid”, which would be the category analog of group
where every arrow is invertible).
The unit category 1 (also sometimes denoted 1 or ∗) has a single object ∗ and only
its identity morphism 1∗ . In 1, for the single object ∗, hom(∗, ∗) = {1∗ }. This is indeed a
category (trivially satisfying axioms). The unit category serves as a terminal object in the
category of categories: there is a unique functor from any category C to 1 (by sending all
objects to ∗ and all morphisms to 1∗ ). We will later see that terminal objects in categories
are an important notion and that 1 is a terminal category.
The above examples should convince you that the notion of morphism is very gen-
eral. In category theory, any consistent rules of composing arrows qualify, not necessarily
arrow-as-function. Thus, category theory can capture processes (like relations, or matrices
10 CHAPTER 1. BASIC CATEGORY THEORY
We also observe that in a category, the composition law determines a directed graph
structure: objects are like vertices, and morphisms are like directed edges. In fact, if we
forget composition and identities, a category is just a directed graph. Formally:
C g D
This shows how diagrams provide a visual and intuitive way to state algebraic con-
ditions in a category. Many definitions in category theory (especially those of universal
properties, limits, etc.) are conveniently phrased as the existence of a unique arrow making
certain diagrams commute. We will see examples soon.
Before moving on, we define some special types of morphisms which generalize familiar
concepts like injective, surjective, and bijective functions.
arrow between them: that arrow is both mono and epi but not an iso.
Monomorphisms generalize injective maps. For example, in Grp (groups and homo-
morphisms), a homomorphism f : G → H is monic if and only if its kernel is trivial (since
if f (g) = e implies g = e in G, then f is injective on elements). In Top (topological
spaces), a continuous map may be monic (injective) but need not have a continuous in-
verse (hence it is not necessarily an isomorphism). Epimorphisms generalize surjections; in
Top, a continuous surjection is an epi—indeed, every epi in Top is a surjective continuous
map. (Note that while there are categories in which an epi is not given by surjectivity,
in Top epis coincide with surjections. However, even in Top the combination of mono
and epi does not guarantee an isomorphism since a continuous bijection may fail to be a
homeomorphism due to the inverse lacking continuity.)
Example 1.10. In Rel (sets and relations), what are the monomorphisms and epimor-
phisms? A relation R : X → Y is monic if whenever R ◦ S1 = R ◦ S2 as relations (with
S1 , S2 : Z → X), then S1 = S2 . It can be shown that monomorphisms in Rel are precisely
those relations R that are functional and injective as relations (i.e. each element of X is
related to at most one element of Y , and if x R y and x′ R y then x = x′ ). Epimorphisms
in Rel turn out to be those relations that are right-total and surjective in the relational
sense (each y ∈ Y has at least one x ∈ X with x R y, and if two relations out of Y agree
on R then they must agree overall). These are a bit tricky to characterize succinctly, but
it shows that mono/epi generalize injective/surjective but not always identically.
We have now established the core definitions: categories, morphisms, and some spe-
cial types of morphisms. Next, we discuss how one category can map to another via a
1.3. FUNCTORS AND NATURAL TRANSFORMATIONS 13
A functor is often denoted by its action on objects and arrows. It is common to simply
write F : C → D and F f for F (f ).
Functors thus compose (when categories line up) and have identities, making categories
and functors into a category of categories. Indeed, one can define the category Cat whose
objects are (small) categories and whose morphisms are functors. Composition of functors
is defined by (G ◦ F )(−) := G(F (−)) on both objects and arrows, which is associative and
has an identity (the identity functor 1C that maps each object to itself and each arrow to
itself).
diagram in D (because if some h◦g◦f equals some other composition in C, applying F yields
F (h) ◦ F (g) ◦ F (f ) equals the corresponding other composition in D). In particular, if a
certain equation holds between morphisms in C, the corresponding equation holds between
their images in D. In this sense, functors are structure-preserving maps between categories.
• The identity functor 1C : C → C maps each object to itself and each morphism to
itself. Clearly, it satisfies 1C (g ◦ f ) = (1C g) ◦ (1C f ) since it’s just g ◦ f = g ◦ f , and
identities map to identities trivially.
• For any two categories C and D, any mapping that sends objects to objects and
arrows to arrows and respects source/target can be checked if it’s a functor. For
instance, if we have C as a discrete category (only identity morphisms), then giving
a functor F : C → D is equivalent to choosing an object of D for each object of C;
there is no further condition because the only morphisms are identities which must
go to identities. So functors subsume the notion of indexing or picking out objects.
is surjective onto D(F (A), F (B)). That is, for every morphism g : F (A) → F (B) in
D, there exists at least one morphism f : A → B in C with F (f ) = g.
Intuitively, a faithful functor doesn’t ”identify” distinct arrows from C (no information
about morphisms is lost), and a full functor doesn’t ”miss” any arrows between the images
(any potential arrow in D between images actually comes from an arrow in C). An easy
example: the inclusion functor I : Grp → Mon (from groups to monoids) is faithful (a
group homomorphism is uniquely determined by itself as a monoid homomorphism, since
I is injective on each hom-set), but not full (e.g., a monoid homomorphism between two
groups that is not a group homomorphism wouldn’t come from Grp). The inclusion of a
subcategory is always full and faithful by definition.
as natural transformations. These will be crucial for capturing the idea of equivalence
of categories (two categories being ”essentially the same”) and in many constructions like
limits, adjoints, etc.
G(A) G(B)
G(f )
In the diagram above, the equation G(f ) ◦ ηA = ηB ◦ F (f ) expresses exactly that com-
mutativity. It can be remembered as: first apply F to f then η at B, or first apply η at A
then apply G to f — both ways give the same result from F (A) to G(B).
Example 1.15 (Natural Transformations). Here are some examples to solidify the concept
of natural transformations:
1.3. FUNCTORS AND NATURAL TRANSFORMATIONS 17
Y ×X g×f
Y ′ × X′
This last example is quite illustrative: it shows that “naturally isomorphic functors”
capture the idea of equivalence up to internal symmetry. Two functors f, h : G → G being
conjugate is an example of natural isomorphism. In category theory, we often regard two
functors or even two categories as ”essentially the same” if there is a natural isomorphism
or an equivalence between them.
18 CHAPTER 1. BASIC CATEGORY THEORY
Now, with natural transformations, we can form a new category called a functor cate-
gory. Given two categories C and D, the category [C, D] (or DC ) has as objects all functors
C → D, and as morphisms all natural transformations between such functors. Composition
in [C, D] is defined by “vertical composition” of natural transformations: if η : F ⇒ G and
θ : G ⇒ H, then (θ ◦ η)A = θA ◦ ηA for each object A. One must check this is again
natural (which it is, by an exercise in diagram chasing) and associative. The identity in
this functor category is 1F for each functor F .
• A terminal object is an object T such that for every object A in C, there exists
a unique morphism A → T . (In other words, a terminal object can be seen as an
empty limit.) It is sometimes denoted by 1.
1.4. UNIVERSAL CONSTRUCTIONS: INITIAL OBJECTS, PRODUCTS, AND LIMITS19
• An initial object is an object I such that for every object A, there exists a unique
morphism I → A. (Thus, an initial object may be regarded as an empty colimit.)
It is often denoted by 0.
Terminal and initial objects, if they exist, are unique up to isomorphism. For example,
in Set, any singleton set is a terminal object: given any set A, there is a unique function
from A to {∗} (sending every element of A to the single element ∗). All singletons are
isomorphic (indeed equal in Set if we pick a particular one, say {0}, as the distinguished
terminal). Dually, the empty set ∅ is an initial object in Set: for any set A, there is exactly
one function ∅ → A (the empty function). In Set, ∅ is initial and any singleton is terminal.
Initial and terminal objects are special cases of limits and colimits (specifically, an ini-
tial object is an empty limit, a terminal object is an empty colimit). These objects are
especially significant in logic: for instance, an initial object in a category of models can
represent an ”inconsistent theory” because there’s a unique arrow from it to any object
(meaning a false proposition implies anything). But let’s not get ahead of ourselves.
Next, consider binary products. The categorical product generalizes the Cartesian
product of sets, the direct product of groups, etc., by a universal property. It also will later
correspond to conjunction in logic and product types in type theory.
Definition 1.17 (Binary Product). Given two objects A and B in a category C, a product
of A and B is an object P equipped with two morphisms (projections) π1 : P → A and
π2 : P → B, such that for any object X with morphisms f : X → A and g : X → B, there
exists a unique morphism h : X → P (called the mediating morphism or pairing of f
20 CHAPTER 1. BASIC CATEGORY THEORY
and g, often denoted ⟨f, g⟩) making the following diagram commute:
X
f g
h
A π1 P π2 B.
This is a universal property: the product (P, π1 , π2 ) is such that any “cone” of mor-
phisms X → A and X → B factors uniquely through P . The dashed arrow in the diagram
above is determined uniquely by f and g. One often says (P, π1 , π2 ) is the universal cone
from (A, B). More formally, it is the limit of the diagram consisting of A and B with
no arrows between them (just two objects) – but we’ll stick to this concrete definition for
binary products.
From this definition, one can prove that if a product exists, it is unique up to unique
isomorphism. Essentially, if (P, π1 , π2 ) and (P ′ , π1′ , π2′ ) are two products of A and B, by
universality a unique iso between P and P ′ can be constructed. So we can speak of the
product of A and B in a category (assuming it exists).
In Set, the product is the usual Cartesian product: given sets A and B, A × B with
projection maps to each coordinate is a product in the categorical sense. Indeed, given
any set X and functions f : X → A, g : X → B, the universal property is satisfied by the
function h : X → A × B defined by h(x) = (f (x), g(x)). This h is unique with the property
π1 (h(x)) = f (x), π2 (h(x)) = g(x), so A × B with projections is a product in Set.
In Grp, the product of two groups is the direct product group G × H with componen-
twise operations. The projections are the group homomorphisms sending (g, h) to g and
to h respectively. The universal property holds: given homomorphisms f : X → G and
g : X → H, the unique homomorphism h : X → G × H is h(x) = (f (x), g(x)), which is a
homomorphism if f, g are.
In any category with a terminal object 1, the product of an object A with 1 (if it ex-
ists) is isomorphic to A (since a terminal object 1 satisfies a similar universal property, the
mediating map from any X to A × 1 corresponds to giving maps to A and 1, but there’s
a unique map to 1, so it’s essentially the same as a map to A). So A × 1 ∼ = A. In Set,
A × {∗} ∼ = A obviously.
1.4. UNIVERSAL CONSTRUCTIONS: INITIAL OBJECTS, PRODUCTS, AND LIMITS21
One can also define binary coproducts dually: an object C with injections i1 : A → C,
i2 : A → C universal for any object X with arrows from A and B into X. That is a pushout
of two initial maps or simply a co-product. In Set, the coproduct is disjoint union A ⨿ B
(with inclusion maps). In Grp, coproduct is the free product of groups. In logic and type
theory, coproduct corresponds to disjunction or sum types.
Now, the power of categorical definitions is that they yield theorems like: if a certain
universal property is satisfied, then certain consequences follow automatically. For example,
one can prove:
Proposition 1.18 (Uniqueness of Products Up to Isomorphism). If (P, π1 , π2 ) is a product
of A and B and (P ′ , π1′ , π2′ ) is another product of A and B in the same category, then there
is a unique isomorphism φ : P → P ′ such that π1′ ◦ φ = π1 and π2′ ◦ φ = π2 .
Proof. By the universal property of (P, π1 , π2 ), since π1′ : P ′ → A and π2′ : P ′ → B are
maps from P ′ into A and B, there is a unique map u : P ′ → P with π1 ◦ u = π1′ and
π2 ◦ u = π2′ . Similarly, by universality of (P ′ , π1′ , π2′ ) given π1 : P → A, π2 : P → B,
there is a unique map v : P → P ′ with π1′ ◦ v = π1 and π2′ ◦ v = π2 . Now consider
v ◦ u : P ′ → P ′ . This arrow satisfies π1′ ◦ (v ◦ u) = π1′ and π2′ ◦ (v ◦ u) = π2′ (because
π1′ ◦ v = π1 , then π1′ ◦ (v ◦ u) = (π1′ ◦ v) ◦ u = π1 ◦ u = π1′ , and similarly for π2′ ). But the
identity idP ′ : P ′ → P ′ also satisfies π1′ ◦ idP ′ = π1′ , π2′ ◦ idP ′ = π2′ . By the uniqueness in
the definition of product applied to P ′ , we must have v ◦ u = idP ′ . Similarly u ◦ v = idP .
Thus u and v are inverses, giving the isomorphism. The equalities πi′ ◦ v = πi ensure
πi′ ◦ (v ◦ u) = πi′ hold as used. Therefore φ := v is the desired isomorphism (its inverse
is u) and it is unique by the same kind of reasoning (since any such φ must satisfy those
projection equalities and thus must equal v by uniqueness).
This formal argument mirrors a common approach in category theory: use universality
twice to get mutual inverses. It highlights that a product, if it exists, is essentially deter-
mined by A and B.
Given the product (P, π1 , π2 ), sometimes we write P = A × B and denote the unique
arrow from any X by ⟨f, g⟩ : X → A × B such that π1 ◦ ⟨f, g⟩ = f and π2 ◦ ⟨f, g⟩ = g. This
notation ⟨f, g⟩ is called the pairing of f and g.
One can derive a more concise definition of product from this: P is a product iff there
is a bijection
hom(X, P ) ∼
= hom(X, A) × hom(X, B)
naturally in X. This means each map X → P corresponds exactly to a pair of maps X → A
and X → B. The bijection is given by h 7→ (π1 ◦ h, π2 ◦ h), and its inverse is (f, g) 7→ ⟨f, g⟩.
Naturality in X ensures this bijection is functorial in X (like an isomorphism of functors
22 CHAPTER 1. BASIC CATEGORY THEORY
Products are a special case of limits. There are other limits like equalizers, pullbacks,
etc., but products and terminal objects are enough to define what is known as a Cartesian
category (one with all finite products). If a category has a terminal object and binary
products for every pair of objects, it is a Cartesian monoidal category essentially, which
in logical terms means it can interpret conjunction and truth (the unit for conjunction).
1. A terminal object exists and is a singleton set. Prove that if T and T ′ are two
singleton sets, there is a unique bijection T → T ′ (hence they are isomorphic in Set).
2. The product of two sets A and B as per Definition 1.17 is given by the Cartesian
product A × B with the usual projections. Formally show the uniqueness of the
mediating arrow h : X → A × B given f : X → A and g : X → B.
3. Dually, describe the coproduct of two sets A and B in Set (this is the disjoint union
A ⨿ B). What are the injection morphisms, and why is the mediating morphism (out
of A ⨿ B) unique?
We will not dive deeper into general limits and colimits (like equalizers, coequalizers,
pullbacks, pushouts) right now, though they are defined similarly by universal properties.
Instead, having established some categorical fundamentals, we proceed to see how these
concepts play out in categorical logic. We will start with algebraic theories and propo-
sitional logic in the next chapter, where finite products and certain special objects (like
truth values) come into play.
Chapter 2
In this chapter, we bridge category theory with logic by examining algebraic theories
(also known as Lawvere theories) and categorical semantics of propositional logic. Alge-
braic theories provide a categorical framework for equational reasoning about algebraic
structures (like groups, rings, etc.), while propositional logic provides the simplest case of
logical deduction, which we can analyze categorically via Boolean or Heyting algebras and
their dual spaces. We will see that both can be subsumed under the idea of categories
with certain universal properties: finite product categories for algebraic theories, and (for
propositional logic) Boolean algebras as certain categorical structures.
The approach we take here follows Lawvere’s insight: a theory can be identified with
a category with finite products in which certain objects (arities) and arrows (operations)
are specified, and models of the theory correspond to product-preserving functors from that
category to Set.
23
24 CHAPTER 2. ALGEBRAIC THEORIES AND PROPOSITIONAL LOGIC
Crucially, TΣ is a category with finite products: the product of objects n and m is just
n + m (because a context with n variables and a context with m variables together give
n + m variables). The terminal object is 0 (no variables, the context of a closed term).
The projection maps in this category correspond to projection terms. This category can
be seen as the classifying category of the theory: models of the theory correspond to
product-preserving functors from TΣ to Set.
Example 2.1 (Theory of Monoids as a Category). Consider the theory of monoids. The
signature Σ has a constant e (unit) and a binary operation · (multiplication). The axioms
are:
x · (y · z) = (x · y) · z, x · e = x, e · x = x.
• Objects are the natural numbers 0, 1, 2, . . . , where n represents a context with n free
variables.
Composing g with f means substituting in f the term z · z for x1 and e for x2 . Thus, the
composite morphism
f ◦g :1→2
is given by
f ◦ g(z) = (z · z)2 , e ,
(z 4 , e) : 1 → 2.
TMon has finite products: the product of object m and n is m + n. The projection
π1 : m + n → m is given by the tuple of terms that picks out the first m inputs and ignores
the rest (like π1 (x1 , . . . , xm+n ) = (x1 , . . . , xm ), π2 picks xm+1 , . . . , xm+n ). These satisfy
the universal property by term-wise combination.
A functor F : TMon → Set that preserves finite products will assign F (1) a set (call
it M ) and interpret the constant e as an element F (e) ∈ M = F (1), and the binary op-
eration · as a function M × M = F (1) × F (1) → F (1) (since F takes the arrow 2 → 1
corresponding to multiplication term to a function F (2) = M × M → M ). Preservation
of products ensures F (2) ∼ = F (1) × F (1) = M × M . F will automatically satisfy the ax-
ioms, because those correspond to equalities of morphisms in TMon which F will preserve,
yielding equalities of functions on M . Thus (M, F (·), F (e)) is a monoid in Set. Conversely
any monoid (M, ·, e) yields such a functor (called the forgetful functor from the theory
to Set picking out that model). Therefore, Functprod (TMon , Set) (the category of finite
product preserving functors and natural transformations between them) is equivalent to
the category of monoids and monoid homomorphisms.
26 CHAPTER 2. ALGEBRAIC THEORIES AND PROPOSITIONAL LOGIC
The above example demonstrates the core idea: there is a category T (sometimes called
the theory category or classifying category) whose product-preserving set-valued func-
tors correspond exactly to models of the theory T in Set. This result is often referred to
as functorial semantics or the duality between theories and categories of models:
Theorem 2.2 (Soundness and Completeness for Equational Logic (Functorial Semantics)).
Let T be an algebraic theory (presented as a category with finite products, as above). Then:
1. (Soundness) Any equation s = t derivable from the axioms of T holds in every model
of T . Equivalently, if s and t are represented by the same morphism u : n → 1 in the
theory category T (meaning s and t are proved equal), then for any product-preserving
functor (model) M : T → Set, the interpretations M (s), M (t) : M n → M 1 are the
same function.
Thus, the category T together with the forgetful functor U : Functprod (T, Set) → Set (select-
ing the underlying set of the interpretation of one generator) forms a classifying category
for the theory, in the sense that T is initial among categories receiving a product-preserving
functor from T .
Proof. This is essentially a restatement of the fact that T captures exactly the provable
equalities. For soundness: if s = t in T , then M (s) = M (t) for any functor M because
M is a functor (so it preserves equalities of morphisms in T ). In other words, provable
equality implies semantic equality in all models. This is just saying the functor M cannot
distinguish s and t if T itself doesn’t.
product-preserving functor (since the term model obviously satisfies the axioms), contra-
dicting the assumption. So if no model distinguishes s and t, they must already be equal in
T . This establishes that semantic equality (holding in all models) implies provable equality.
In categorical terms, T is initial among all categories with finite products equipped
with a model of the theory, which is a general statement of completeness: given any model
M : T → Set, there is a unique morphism from T to the category ”generated” by M . But
perhaps the simplest explanation is the term algebra argument given above.
This theorem connects syntactic and semantic notions: it’s essentially the completeness
of equational logic (as every equation true in all models is derivable). There is a precise
contravariant equivalence between the category of algebraic theories (i.e. small categories
with finite products, known as Lawvere theories) and the category of their Set-models.
More precisely, for a Lawvere theory T , one associates the category T -Mod of product-
preserving functors T → Set. This assignment establishes a duality: informally,
Th ≃ (Mod)op ,
meaning that the syntactic category of a theory is (up to equivalence) dual to the category
of its models. This is often referred to as Lawvere duality.
In short, categories allow us to algebraically encode theories, and then use category-
theoretic constructs (like functor categories) to reason about models. This viewpoint will
extend when we add more logical constructs beyond plain equations (like adding ∨, ∃, etc.,
requiring more structure like coequalizers or left adjoints).
category), etc.
We have focused on set-valued models. One can show a more general statement: T not
only classifies set models, but also T itself as a functor T → T is the generic model (the
identity functor considered as a model in its own category), and any model M : T → C
in a different category C factors through a unique interpretation from the generic model.
This is part of the universal property: T is an initial object in the category of categories
with finite products and a chosen model of the theory. We won’t formalize that further
here, but conceptually it’s important: the theory category yields a generic model such
that all others are its images.
Now, having established how categories capture algebraic (essentially universally quan-
tified equation) logic, we move to propositional logic, which introduces connectives that
are not just operations on one set, but truth-functional operations, and often involves a
two-valued truth notion in classical logic or multi-valued in intuitionistic logic. We will
first treat classical propositional logic via Boolean algebras and Stone duality, then intu-
itionistic logic via Heyting algebras and locales.
Definition 2.3 (Boolean Algebra). A Boolean algebra is a set B equipped with binary
operations ∧ (meet, logical ”and”) and ∨ (join, logical ”or”), a unary operation ¬ (comple-
ment, logical ”not”), and distinguished elements 0 (bottom, false) and 1 (top, true), such
that for all a, b, c ∈ B the following axioms hold:
2.2. BOOLEAN ALGEBRAS AND CLASSICAL PROPOSITIONAL LOGIC 29
This definition is algebraic: all axioms are universally quantified equations in the lan-
guage {∧, ∨, ¬, 0, 1} (the complement law a ∨ ¬a = 1 and a ∧ ¬a = 0 are equations, not
implications). So one could indeed form a theory category for Boolean algebras and get
a similar correspondence with Boolean algebras as product-preserving functors into Set.
Boolean algebras capture exactly the equational part of propositional logic: a Boolean
algebra homomorphism is a function h : B1 → B2 preserving ∧, ∨, ¬, 0, 1. The category
Bool of Boolean algebras and homomorphisms is algebraic.
The key result bridging Boolean algebras and propositional logic is that the equational
theory of Boolean algebras is equivalent to classical propositional logic in the sense that a
formula is a tautology iff it equals 1 in every Boolean algebra interpretation (soundness and
30 CHAPTER 2. ALGEBRAIC THEORIES AND PROPOSITIONAL LOGIC
completeness of Boolean algebra semantics for propositional logic). This can be stated as:
(3) is just a restatement of (2) in algebraic terms, since ”Boolean algebra valuation” can
be formalized as a homomorphism from the free Boolean algebra (the algebra of all proposi-
tions) to B that sends each assumption (which is a specific element of the free algebra) to 1.
2.2. BOOLEAN ALGEBRAS AND CLASSICAL PROPOSITIONAL LOGIC 31
Hence, Φ ⊢ φ iff in every B and every homomorphism v with v(Φ) = {1}, we have
v(φ) = 1. In particular, taking Φ empty, ⊢ φ (tautology) iff for every Boolean algebra B
and homomorphism v, v(φ) = 1. Taking specifically B = 2 recovers the usual notion: φ is
true under every truth assignment.
This is basically the algebraic completeness (Lindenbaum algebra argument) for propo-
sitional logic, which is a special case of the general equational completeness theorem we
proved for algebraic theories, instantiated to the theory of Boolean algebras. Indeed, the
above is an example of how one would approach it using the category of Boolean algebras
and its functors to Set. The free Boolean algebra on n generators is the algebra of all
formulas in those n variables modulo provable equivalence, and a homomorphism from
that free algebra to 2 corresponds to a truth assignment. Since 2 is a Boolean algebra, the
existence of a homomorphism sending formulas to 1/0 such that assumptions go to 1 and
conclusion to 0 yields an actual Boolean valuation counterexample.
Now, category theory enters through the observation: the category of Boolean algebras
Bool is not just an ordinary algebraic category, it has some additional structure (it’s a
variety of algebras). But more interestingly, Bool is dual (in the sense of a contravariant
equivalence) to the category of certain topological spaces. This is Stone duality:
Theorem 2.5 (Stone Representation and Duality). Every Boolean algebra B is isomorphic
to a field of sets (an algebra of subsets of some set, with union, intersection, complement).
Concretely, B is isomorphic to the algebra of all clopen (simultaneously closed and open)
subsets of a certain compact Hausdorff zero-dimensional topological space X (the space of
ultrafilters of B). In addition:
Proof. (Sketch) Stone’s representation theorem constructs X = Ult(B), the set of all ultra-
filters (maximal filters) of B. Each b ∈ B defines a subset b̂ = {u ∈ Ult(B) | b ∈ u}. One
checks that b̂ is both open and closed in a certain topology (the Stone topology) on X, where
basic open sets are of form b̂. The map b 7→ b̂ is a Boolean algebra homomorphism from B
to the power set Boolean algebra P(Ult(B)), and is injective (because distinct b differ on
some ultrafilter). Surjectivity onto clopen sets follows because finite Boolean combinations
of basic opens are still clopen and generate the clopen algebra. So B ∼ = Clopen(Ult(B)) as
Boolean algebras. Ult(B) is compact and zero-dimensional by construction (clopens form
a basis), and Hausdorff because ultrafilters are distinct enough to be separated by clopens
(using an element in one ultrafilter but not another yields disjoint opens containing each
ultrafilter).
Stone duality is very significant: it shows that Boolean logic (via Boolean algebras) is
equivalent to studying certain topological spaces. The Stone space Ult(B) of ultrafilters
can be seen as the space of all “possible worlds” or models of the propositional theory rep-
resented by B. Each ultrafilter is like a consistent assignment of truth values (a maximally
consistent set of propositions), and b̂ is the set of models where proposition b is true. So
Stone duality provides a topological semantics for propositional logic: the clopen subsets
of the Stone space form the algebra of propositions. In particular:
- If B is the Boolean algebra of all formulas modulo equivalence, then Ult(B) is essentially
the space of all truth assignments or models of the propositional theory, and a formula b
corresponds to the set of assignments satisfying it (this is a Stone representation of the
Lindenbaum algebra).
- Stone’s theorem thus gives a robust formulation of the completeness theorem: the logical
content (Boolean algebra of formulas) is captured by the structure of the space of models.
From a categorical logic viewpoint, Stone duality is the first example of a logic-space
duality: algebraic logic (Boolean algebra) vs. geometric space (Stone space). This heralds
the idea of the duality between syntax and semantics: syntax (formulas, proofs) forms an
algebra or category, semantics (models) forms spaces or categories of models, and there is
a duality or equivalence bridging them.
We will see a similar pattern for intuitionistic logic: Heyting algebras vs. topological
spaces called locales, and a duality there too (Stone duality generalizes to the so-called
2.2. BOOLEAN ALGEBRAS AND CLASSICAL PROPOSITIONAL LOGIC 33
Priestley or Esakia duality for distributive lattices or Heyting algebras, but with some
conditions one gets locales).
¬a := (a ⇒ 0).
If additionally the law of excluded middle holds (i.e. a ∨ ¬a = 1 for every a ∈ H), then H
is a Boolean algebra.
In categorical logic terms, a Heyting algebra is a lattice that is also a Cartesian closed
poset: finite meets (including top) serve as products, and ⇒ is an internal hom making it
cartesian closed. Actually, each finite meet with some a yields an adjoint a ∧ − ⊣ (a ⇒ −),
capturing quantification: a ⇒ b plays the role of a → b or logically a =⇒ b which is also
¬a ∨ b in a Boolean algebra but not necessarily in a Heyting.
There is a duality (in fact an equivalence of categories) between spatial locales (those
coming from actual topological spaces via their open set lattices) and sober topological
spaces, but in general locales generalize spaces (allowing “point-free” constructions). The
slogan is “Topology = Locale = Frameop .”
In particular, the category Stone we saw is replaced in intuitionistic logic by the cat-
egory Loc of locales (or perhaps specifically coherent spaces for coherent logic). Stone
34 CHAPTER 2. ALGEBRAIC THEORIES AND PROPOSITIONAL LOGIC
Definition 2.7 (Frame and Locale). A frame (L, ≤) is a complete lattice (arbitrary joins
and finite meets exist, with bottom 0 and top 1) satisfying the infinite distributive law:
_ _
a∧ bi = (a ∧ bi ) for any a ∈ L, {bi }i∈I ⊆ L.
i∈I i∈I
A frame that is also a Boolean algebra (so each element has complement) is essentially
the lattice of open sets of a Stone space, and that recovers our earlier Stone duality scenario
as a special case (Boolean algebra = Stone locale).
One result: the category of Heyting algebras is dual to the category of certain struc-
tured spaces called Esakia spaces (which are Stone spaces with a certain order, basically
the duals of Heyting algebras that reflect the → structure). And frames are dual to sober
topological spaces.
2.2. BOOLEAN ALGEBRAS AND CLASSICAL PROPOSITIONAL LOGIC 35
We have now covered categories and logic for propositional fragments. Next, we move
on to first-order logic and type theory, which require more categorical machinery (like ad-
joints for quantifiers, and dependent types or objects). Before that, we provide a couple of
exercises to practice these concepts:
Exercise 2.8. 1. Show that the category of Boolean algebras Bool has all small prod-
ucts. (Hint: The Q product of a family of Boolean algebras {Bi } can be taken as the
algebra of tuples Bi with componentwise operations. One must show the resulting
algebra satisfies the Boolean axioms and is the categorical product.)
3. Verify the infinite distributive law in a powerset lattice: Given a set X,Sshow that
for
S any subset A ⊆ X and any family {B i ⊆ X | i ∈ I}, we have A ∩ i∈I Bi =
i∈I (A ∩ Bi ). This shows P(X) is a frame.
4. Consider an infinite set of propositional variables {pi | i ∈ N}. Characterize the Stone
space (dual space) of the free Boolean algebra on these generators. (Hint: points are
ultrafilters = truth assignments; the space is homeomorphic to {0, 1}N with the prod-
uct topology, a Cantor space.)
With propositional logic under our belt, we move on to considering predicates and type
theory. This will involve categories that can capture not just finite products but also other
structures such as exponentials (for implication or function types), and perhaps even more
for full dependent types. That is our next chapter.
36 CHAPTER 2. ALGEBRAIC THEORIES AND PROPOSITIONAL LOGIC
Chapter 3
First-order logic extends propositional logic by adding quantifiers that allow statements
about elements of some domain of discourse. Categorical semantics of first-order logic
requires categories that can interpret: - Conjunction and disjunction (like before, via prod-
ucts or other limits/colimits).
- Existential and universal quantifiers, which in category theory correspond to the existence
of left and right adjoint functors to the pullback along projection maps (or existence of
certain limits/colimits, specifically coequalizers, etc., to handle equivalence relations for
equality).
- Equality, which is a special predicate requiring certain properties like diagonal morphisms
and their mono nature.
In algebraic terms, first-order theories are no longer simply equational (if they have
∃ or ∀ axioms, or non-algebraic axioms), but we can often break them into sequents and
consider categories called classifying categories or syntactic categories that capture
their deductive structure.
There are two main categorical approaches to first-order logic: 1. The use of syntactic
categories (or syntactic sites) as in the work of Makkai or the concept of classifying
topos for a theory. Jacobs’s approach using fibrations is one approach: interpret contexts
and predicates in a fibered category (the category of contexts and substitutions is base,
with a fiber of propositions above each context).
2. The approach using adjoint functor semantics (Lawvere’s hyperdoctrines): The
idea that ∃ and ∀ quantifiers are adjoints to pullback along projections: specifically, in a
category with finite limits (for context and equality), a functor ΠX that is right adjoint to
pullback along πX : X × Y → Y can serve as ∀x : X, and a functor ΣX left adjoint to that
pullback can serve as ∃x : X.
37
38 CHAPTER 3. FIRST-ORDER LOGIC IN CATEGORIES
However, rather than define each of those from scratch, let’s conceptualize: - The sim-
plest semantics of first-order logic is given by relational structures in Set, i.e. models in
the usual Tarskian sense. But category theory can treat these as functors from a syntactic
category to Set that preserve certain limits (like product and equalizer).
- Instead of Set, one can consider models in arbitrary categories with similar structure.
E.g., models in any topos, etc.
The notion of classifying topos is the most powerful: for any first-order (even higher-
order or type-theoretic) theory T satisfying some conditions, there is a topos ET such that
for any topos E, models of T in E correspond to logical functors ET → E (functors preserv-
ing the relevant structure, i.e., finite limits and whatever else needed). For example, the
classifying topos of the theory of groups is a topos E such that giving a group in any topos
F is equivalent to giving a logical functor E → F. When the topos is Set, such a functor
picks out a group in Set, recovering ordinary models.
Although classifying toposes are conceptually elegant, constructing them directly can
be heavy. Instead, we can proceed stepwise: - Interpret first-order logic in a fixed topos
(like Set) using the internal logic of the topos. This internal logic approach says: a topos
can serve as a universe in which logical formulas can be interpreted, with ∧, ∨, ∃, ∀ having
meaning via categorical operations (subobjects, products, etc., and a subobject classifier
Ω for truth values). If the topos is boolean (like Set) this internal logic is classical; if it’s
an arbitrary topos, it’s intuitionistic.
- But we want an abstract notion of ”category that behaves like formulas and contexts.”
One can show equivalently that giving such a structure is giving a first-order logical
39
calculus semantics. Jacobs defines things like regular categories and shows the subobject
functor of a regular category is a hyperdoctrine with left adjoints to pullbacks (for ∃). If
also right adjoints exist, it’s a coherent category (with ∀ for certain monos) or Heyting
category (with all ∀). This ties to Π and Σ in type theory as well.
Example 3.1 (Classifying category of groups (sketch)). Consider the theory of groups in
40 CHAPTER 3. FIRST-ORDER LOGIC IN CATEGORIES
first-order logic:
- Sort: one sort (the domain of group elements).
- Function symbols: m(x, y) (multiplication), e() (unit), (−)−1 (inverse).
- Axioms: ∀x, y, z. (x · y) · z = x · (y · z), ∀x. x · e = x, e · x = x, ∀x. x−1 · x = e = x · x−1 .
The classifying category CT will have one object 1 for a single variable context (or think
of objects as 1 for one generator, 2 for two generators, etc. effectively like Lawvere theory
but now with axioms). However, the difference from Lawvere theory: those axioms are ∀
statements, which means in the category they impose that certain diagrams commute or
certain subobjects are equivalences.
One can construct CT as follows:
- Objects: natural numbers n (for n distinct variables).
- Morphisms: an arrow n → m is given by an m-tuple of terms in n variables (just like
Lawvere theory morphism), but under an equivalence relation generated by the axioms not
just equational but also some involving existence of inverses, etc.
However, because the axioms are all equations with universal quantifiers, they translate
to the statement that certain parallel pairs of arrows in CT coequalize. For example, the
axiom ∀x.(e · x = x) presumably means the two morphisms from 1 to 1 given by e · x and
x (seen as terms in one variable) are equal in the category. Similarly, the inverse axiom
x m(x−1 ,x) e()
means: the composite 1 − → 1 −−−−−−→ 1 equals the morphism 1 −−→ 1.
So effectively CT is like the Lawvere theory of groups (which is a category with finite prod-
ucts) but now with the requirement that those morphisms become equal, which forces some
coequalizers. In fact, the classifying category of groups is more precisely a pretopos (finite
limits + effective equivalence relations + coequalizers) because quotienting by the normal
subgroup generated by those relations is needed.
The classifying topos of groups would be a further completion of that category into a topos
(adding a subobject classifier).
But one can already reason in CT : models of the group theory in any regular category cor-
respond to product-preserving functors CT → C that also take those coequalizer diagrams
to coequalizers in C.
This example is complex but key insight: CT has one object 1 (for one variable) and the
structure makes it a group object in the topos Cc T (the topos of presheaves on CT ). That
representability yields the classifying topos property.
And:
”In a coherent category (regular + finite unions) one can also interpret ∨ and ⊤ properly.”
Similarly, ”In a Heyting category (coherent + exponentials for subobjects), one can inter-
pret ∀.” Jacobs basically builds the semantics of first-order logic in any Heyting category,
culminating in completeness results like if a sequent is valid in all models in all Heyting
categories (or all toposes), it is provable.
We have to be careful with ∀: For completeness one uses Henkin’s trick of adding con-
stants to witness existential assumptions, effectively turning it into an equational theory
or rather a coherent theory (this ensures we can find a model when consistent).
From the category side, one often restricts to geometric logic (which allows ∃, ∧, ∨
but not ∀ except over finite sets of equations) because geometric logic is preserved under
the inverse image part of geometric morphisms between toposes, and a classifying topos
exists for geometric theories. For full first-order (with ∀), completeness is not construc-
tively valid but classically we still have it.
We have gone quite theoretical. Let’s conclude this chapter with a summary:
Thus, category theory provides a language to talk about logic where: - Objects of a
category are like types or domains.
- Morphisms are like terms or functions.
- Special objects and morphisms (like subobjects, product projections) represent predicates
and logical connectives.
- Functors between categories represent interpretations or models.
The Curry–Howard correspondence is one step up: between logic and type theory,
which we consider next.
• The syntactic category of the lambda calculus (with contexts as objects, terms as
morphisms).
• The free Cartesian closed category generated by the base types (and operations if
any).
And models of the lambda calculus correspond to functors from this free CCC to any CCC
(much like the algebraic theories case).
A consequence: If a formula (type) is inhabited (i.e., there is a term of that type) in the
type theory, then it is true in all CCC-models (soundness), and if it’s true in all models, it’s
inhabited (completeness). This is analogous to completeness for logic, but in type theory
it’s often called strong normalization implies consistency, etc.
For example, in Set (which is CCC), an exponential B A is the set of all functions
A → B. A specific function g : X → B A is equivalently a function X × A → B (by
currying). That is exactly like having a term f (x, a) with x from X and a from A yielding
a B; currying means we regard it as the function x 7→ (a 7→ f (x, a)).
So, in Set, a lambda term λxA .t(x) is interpreted as the actual function mapping each
a ∈ A to the interpretation of t(a) in B. The beta-reduction corresponds to plugging in
44 CHAPTER 3. FIRST-ORDER LOGIC IN CATEGORIES
that element.
Theorem 3.2. The term model (syntactic CCC) is the free CCC on the set of base types
(and constants). Thus, any equation between terms that holds in all CCC models is provable
in the lambda calculus (completeness), and if it’s provable, it holds in all models (sound-
ness). In particular, if there is no term of type ⊥ (an empty type) in the calculus, then
no CCC can give an arrow 1 → ⊥ (which means the calculus is consistent: can’t derive an
inhabitant of the empty type).
The proof is analogous to the algebraic one: construct the syntactic category and show
it is initial among CCCs. A consequence is the lambda calculus is consistent because
a term of type ⊥ in the term model would mean a morphism 1 → ⊥ in the initial CCC,
which then would exist in Set under any interpretation, implying a set of 0 elements has
an element, contradiction.
The above covers simply typed (no polymorphism, no dependent types, no higher-
order).
Polymorphism (System F) leads to models in categories with additional structure (like di-
natural transformations, not obviously just an ordinary category property, but something
like a universe object etc).
Dependent types lead to categories with families (CwF) or categories with fibra-
tions that correspond to the type theory (these generalize CCCs: - A dependent type B(x)
over x : A is like an object in a slice category C/A. A category with families provides such
a thing plus substitution operations).
The simplest such structure is a Locally Cartesian Closed Category (LCCC) which
has nice interpretations for dependent Π and Σ (the rules for these correspond to ad-
jointness of pullbacks, as mentioned for quantifiers). For example: - A locally cartesian
closed category (LCCC) is one where every slice category C/X is cartesian closed. That
corresponds to having Π types (dependent function types) and Σ types (dependent sum
types) and is the categorical model of dependent type theory without universes or higher
inductive types.
Martin-Löf type theory with universes is modeled in a category with a universe ob-
ject or a Grothendieck fibration with some additional structure. Jacobs covers
universes as well, likely showing something like: ”If a category has a universe (an object
U with a surjection El → U that classifies small objects) then one can interpret an extra
type of types.”
3.1. CATEGORICAL SEMANTICS OF TYPE THEORY 45
So the progression:
Algebraic theories (no logic, just equations) → categories with finite products.
Propositional logic (Boolean) → Boolean algebra or Stone spaces.
First-order logic → regular, coherent categories or toposes.
Type theory → cartesian closed (for simple) → locally cartesian closed (for dependent) →
toposes with natural number object etc (for full Martin-Löf with inductive types).
And at each stage, there is a completeness: if something is true in all such categories
(models), it’s derivable in the logic.
syntax and computational content for categories. The unity of these fields is one of the
beautiful aspects of categorical logic and type theory.
Appendix A
Further Reading
Due to the breadth of categorical logic and type theory, we can only scratch the surface in
one textbook. For readers seeking more:
- Samson Abramsky and Nikos Tzevelekos’s introductory chapter provides a concise start-
ing point.
- Bart Jacobs’s Categorical Logic and Type Theory covers advanced topics like fibrations
for predicate logic, internal category theory, and topos semantics in depth.
- Steve Awodey’s lecture notes offer accessible treatments of algebraic and categorical logic,
including Lawvere theories and Stone duality.
- On type theory and categories, see Categories for Types by Crole and Practical Founda-
tions of Mathematics by Johnstone for connections between type theory and topos theory.
- For Stone duality and topology related to logic, Johnstone’s Stone Spaces and Sketches
of an Elephant are comprehensive references.
We hope this textbook has equipped the reader with a foundational understanding to
approach both classical texts and research literature in categorical logic and type theory.
47
48 APPENDIX A. FURTHER READING
Bibliography
[1] Abramsky, Samson, and Nikos Tzevelekos. 2011. ”Introduction to Categories and
Categorical Logic,” arXiv:1102.1313.
[2] Awodey, Steve. 2022. Categorical Logic (Autumn School Lecture Notes).
[3] Awodey, Steve, and Andrej Bauer. 2024. ”Introduction to Categorical Logic (Draft).”
[4] Jacobs, Bart. 1999. Categorical Logic and Type Theory. Elsevier Science.
[6] Mac Lane, Saunders, and Ieke Moerdijk. 1992. Sheaves in Geometry and Logic: A
First Introduction to Topos Theory. Springer.
[7] Johnstone, Peter T. 1982. Stone Spaces. Cambridge Studies in Advanced Mathematics.
49