---
title: Isomorphisms, Monos, and Epis
module: Foundations
moduleNumber: 1
lessonNumber: 3
order: 103
summary: >
  Injectivity and surjectivity mention elements, so a general category re-expresses
  them by cancellation: monomorphisms cancel on the left, epimorphisms on the
  right. Sections and retractions are the split versions with an explicit one-sided
  inverse. Mono plus epi does not force an isomorphism, and subobjects are
  equivalence classes of monos into a fixed object.
topics: [Foundations]
sources:
  - book: Simmons
    ref: "Ch. 2 §2.2 Monics and epics"
  - book: Barr & Wells
    ref: "Ch. 2 §2.7 Properties of objects and arrows; §2.8 Monomorphisms and subobjects; §2.9 Other types of arrow"
draft: false
---

A function between sets is injective when distinct inputs go to distinct outputs,
and surjective when every element of the codomain is hit. Both definitions
mention elements, so neither makes sense in a general category, where
[objects are opaque](/category-theory/foundations/what-is-a-category). The
categorical replacements are cancellation properties: an arrow is monic when it
can be cancelled from the left of an equation, epic when it can be cancelled from
the right. In $\mathbf{Set}$ these recover injective and surjective exactly. In
other categories they behave more subtly, and the gap between "monic and epic"
and "isomorphism" is genuine.

## Monomorphisms

> **Definition (Monomorphism).** An arrow $m : A \to B$ is a **monomorphism**
> (or is **monic**, or is a **mono**) if for every object $X$ and every parallel
> pair $f, g : X \to A$,
>
> $$
> m \circ f = m \circ g \implies f = g.
> $$

The definition quantifies over all arrows into $A$. Barr & Wells give this
quantification a useful reading: an arbitrary arrow $x : X \to A$ is a **variable
element** of $A$ parametrized by $X$, and one may write $m(x)$ for $m \circ x$.
In that notation the definition reads exactly like injectivity — if $x \neq y$
then $m(x) \neq m(y)$ — except that the "elements" now range over arrows.[^bw-mono]

$$
% caption: The mono test: a fork of two parallel arrows into $A$ followed by $m$.
% If the two composites agree, the fork must already have been equal.
\begin{tikzpicture}[scale=1.0, >=stealth, font=\small]
\definecolor{acc}{HTML}{4A6FA5}
\node (X) at (0,0) {$X$};
\node (A) at (2.6,0) {$A$};
\node (B) at (5.2,0) {$B$};
\draw[->, acc, thick] ([yshift=3pt]X.east) -- ([yshift=3pt]A.west) node[midway, above] {$f$};
\draw[->, acc, thick] ([yshift=-3pt]X.east) -- ([yshift=-3pt]A.west) node[midway, below] {$g$};
\draw[->, black, thick] (A) -- (B) node[midway, above] {$m$};
\node[black, font=\footnotesize, align=left] at (2.6,-1.1) {$mf = mg$ forces $f = g$};
\end{tikzpicture}
$$

**In $\mathbf{Set}$, monic equals injective.** If $m$ is injective and
$mf = mg$, then for each $x$ in the common domain, $m(f(x)) = m(g(x))$ forces
$f(x) = g(x)$. Conversely, if $m$ is monic, test against arrows from a
one-element set: distinct global elements $x, y : 1 \to A$ with $m x = m y$
would violate monicity, and global elements of a set are exactly its
elements.[^bw-monoset]

The same argument shows injective implies monic in any category of structured
sets — $\mathbf{Grp}$, $\mathbf{Mon}$, $\mathbf{Top}$, $\mathbf{Pos}$. The
converse direction needs a test object rich enough to distinguish elements, and
the terminal object does not always suffice. In $\mathbf{Mon}$ the one-element
monoid has exactly one arrow into any monoid (it must send $1$ to $1$), so
global elements are useless. The repair: test against $(\mathbb{N}, +, 0)$
instead. For each $x \in M$ the map $p_x : \mathbb{N} \to M$, $k \mapsto x^k$,
is a monoid morphism, and $x \neq y$ gives $p_x \neq p_y$; if
$f(x) = f(y)$ then $f \circ p_x = f \circ p_y$, contradicting monicity. So in
$\mathbf{Mon}$ the monos coincide with the injective morphisms after all, though the proof
had to find the right probe.[^bw-monmono]

Two closure facts, used constantly in diagram chases:

> **Lemma (Composition and left factors).** If $f : A \to B$ and $g : B \to C$
> are monic, so is $g f$. If $g f$ is monic, then $f$ is monic (but $g$ need
> not be).

> **Proof.** For the second claim, if $f x = f y$ then $g f x = g f y$, so
> $x = y$ by monicity of $g f$.

## Epimorphisms

Epimorphisms are the formal dual: monos in $\mathcal{A}^{\mathrm{op}}$.

> **Definition (Epimorphism).** An arrow $e : A \to B$ is an **epimorphism**
> (or is **epic**, or is an **epi**) if for every object $X$ and every parallel
> pair $f, g : B \to X$,
>
> $$
> f \circ e = g \circ e \implies f = g.
> $$

$$
% caption: The epi test is the mirror image: two arrows out of $B$ that agree
% after precomposing with $e$ must agree outright.
\begin{tikzpicture}[scale=1.0, >=stealth, font=\small]
\definecolor{acc}{HTML}{4A6FA5}
\node (A) at (0,0) {$A$};
\node (B) at (2.6,0) {$B$};
\node (X) at (5.2,0) {$X$};
\draw[->, black, thick] (A) -- (B) node[midway, above] {$e$};
\draw[->, acc, thick] ([yshift=3pt]B.east) -- ([yshift=3pt]X.west) node[midway, above] {$f$};
\draw[->, acc, thick] ([yshift=-3pt]B.east) -- ([yshift=-3pt]X.west) node[midway, below] {$g$};
\node[black, font=\footnotesize] at (2.6,-1.1) {$fe = ge$ forces $f = g$};
\end{tikzpicture}
$$

**In $\mathbf{Set}$, epic equals surjective.** Surjectivity gives cancellation
directly. For the converse, suppose $e : A \to B$ misses $t \in B$; define
$f, g : B \to \{0, 1\}$ agreeing everywhere except that $f(t) = 0$ and
$g(t) = 1$. Then $f e = g e$ but $f \neq g$, so $e$ is not epic.[^bw-epi]

Outside $\mathbf{Set}$, the correspondence with surjectivity fails. The standard
counterexample:

> **Theorem (A non-surjective epimorphism).** In $\mathbf{Mon}$, the inclusion
> $i : (\mathbb{N}, +, 0) \hookrightarrow (\mathbb{Z}, +, 0)$ is epic.

> **Proof.** A monoid morphism $h$ out of $\mathbb{Z}$ is determined by $h(1)$:
> $h(m) = h(1)^m$ for positive $m$, and $h(-1)$ must be the inverse of
> $h(1)$ — inverses are unique when they exist in a monoid — so $h$ is determined
> on the negatives too. Since $1 \in \mathbb{N}$, two morphisms agreeing on
> $\mathbb{N}$ agree on all of $\mathbb{Z}$ — the cancellation
> property in another guise.[^bw-epi]

The inclusion is injective, hence also monic. It is not an isomorphism. So:

- **monic + epic does not imply isomorphism.** An arrow that is both is called a
  **bimorphism**, and a category in which every bimorphism is an isomorphism is
  called **balanced**. $\mathbf{Set}$ and $\mathbf{Grp}$ are balanced;
  $\mathbf{Mon}$, $\mathbf{Ring}$ (where
  $\mathbb{Z} \hookrightarrow \mathbb{Q}$ is epic), and $\mathbf{Top}$ (where any
  continuous bijection is a bimorphism) are not.[^simmons-bimorph]
- In a **preorder** viewed as a category, every arrow is vacuously both monic and
  epic — there are no parallel pairs to separate — so every arrow is a
  bimorphism, while the only isomorphisms in a poset are identities. Thin
  categories are as unbalanced as possible.

> **Worked example ($\mathbb{Z} \hookrightarrow \mathbb{Q}$ is a non-surjective
> epi in $\mathbf{Ring}$).** A ring homomorphism $h : \mathbb{Q} \to S$ is fixed by
> its restriction to $\mathbb{Z}$. For a nonzero integer $b$, applying $h$ to
> $b \cdot \tfrac{1}{b} = 1$ gives $h(b)\, h(\tfrac{1}{b}) = h(1) = 1$, so
> $h(\tfrac{1}{b})$ is the inverse of $h(b)$ in $S$. Inverses are unique, so
> $h(\tfrac{1}{b})$ is determined by $h(b)$, and $h(b)$ by $h|_{\mathbb{Z}}$. Then
> $h(\tfrac{a}{b}) = h(a)\, h(\tfrac{1}{b})$ is fixed on all of $\mathbb{Q}$. Two
> ring maps out of $\mathbb{Q}$ that agree on $\mathbb{Z}$ therefore agree
> everywhere, giving the right-cancellation $f i = g i \implies f = g$
> for the inclusion $i$. So $i$ is epic; it is injective and not surjective, hence
> a bimorphism that is no isomorphism, and $\mathbf{Ring}$ is not balanced.

## Sections and retractions

A one-sided inverse is an explicit witness certifying cancellation.

> **Definition (Section, retraction).** A pair of arrows $s : B \to A$ and
> $r : A \to B$ with $r \circ s = 1_B$ makes $s$ a **section** (or **split
> monomorphism**) and $r$ a **retraction** (or **split epimorphism**). One says
> $r$ is _split by_ $s$.

Applying $r$ to both sides of $s x = s y$ gives $x = y$, so every section is
monic; dually, every retraction is epic. The converses fail:

- **Epis that do not split.** In $\mathbf{Set}$, every surjection splits — for
  each $b \in B$ choose a preimage; this is precisely the axiom of choice. In
  $\mathbf{Mon}$ even surjective epis can fail to split: the quotient
  $\mathbb{Z}_4 \to \mathbb{Z}_2$ has no monoid section.[^bw-split]
- **Monos that do not split.** In $\mathbf{Set}$, any map out of $\emptyset$ is
  monic, but only $1_\emptyset$ has a left inverse. Every mono with nonempty
  source splits in $\mathbf{Set}$; in $\mathbf{Grp}$, the inclusion of a subgroup
  usually does not.
- In a **poset**, the only split monos or split epis are identities: $rs = 1$
  forces $B \le A \le B$, hence $A = B$.

$$
% caption: A section-retraction pair: the round trip from $B$ through $A$ back
% to $B$ is the identity, while the other round trip $s r$ is only an
% idempotent on $A$.
\begin{tikzpicture}[scale=1.0, >=stealth, font=\small]
\definecolor{acc}{HTML}{4A6FA5}
\node (B1) at (0,0) {$B$};
\node (A) at (2.6,0) {$A$};
\node (B2) at (5.2,0) {$B$};
\draw[->, acc, thick] (B1) -- (A) node[midway, above] {$s$};
\draw[->, acc, thick] (A) -- (B2) node[midway, above] {$r$};
\draw[->, black, thick] (B1) to[bend right=25] node[midway, below] {$1_B$} (B2);
\end{tikzpicture}
$$

An isomorphism is an arrow with a two-sided inverse, so every isomorphism is
both a split mono and a split epi. A weaker hypothesis already forces an
isomorphism:

> **Lemma (Split + plain suffices).** An arrow that is a split mono and an epi
> is an isomorphism; dually, a split epi that is monic is an isomorphism.

> **Proof.** For the first statement, let $r f = 1_A$ with $f : A \to B$ epic.
> Then $f r f = f 1_A = 1_B f$, and cancelling the epi $f$ on the right gives
> $f r = 1_B$, so $r$ is a two-sided inverse.[^simmons-split]

The full hierarchy, with all containments strict in general:

$$
% caption: The hierarchy of special arrows. Each region is strictly larger than
% the ones inside it in a general category; in Set the split and plain layers
% collapse (given choice), and in a balanced category bimorphism = iso.
\begin{tikzpicture}[scale=1.0, >=stealth, font=\footnotesize]
\definecolor{acc}{HTML}{4A6FA5}
\draw[black, thick] (0,0) ellipse (5.1 and 2.5);
\node[black] at (0,2.15) {bimorphism (monic and epic)};
\draw[acc, thick] (-1.7,-0.15) ellipse (2.9 and 1.55);
\node[acc] at (-2.75,0.7) {split monic};
\draw[acc, thick] (1.7,-0.15) ellipse (2.9 and 1.55);
\node[acc] at (2.85,0.7) {split epic};
\node[align=center] at (0,-0.15) {isomorphism};
\end{tikzpicture}
$$

| Class | Definition | In $\mathbf{Set}$ | In $\mathbf{Mon}$ | In a poset |
| --- | --- | --- | --- | --- |
| monic | left-cancellable | injective | injective | every arrow |
| epic | right-cancellable | surjective | dense-image-like ($\mathbb{N} \hookrightarrow \mathbb{Z}$ counts) | every arrow |
| split monic | has left inverse | injective, source nonempty (or identity) | rarer than monic | identities only |
| split epic | has right inverse | surjective (uses choice) | rarer than epic | identities only |
| isomorphism | has two-sided inverse | bijection | bijective morphism | identities only |

## Hom-set characterizations

All five classes can be phrased uniformly through the induced maps on hom-sets.
An arrow $f : B \to C$ induces, for each object $A$, a post-composition function
$\operatorname{Hom}(A, f) : \operatorname{Hom}(A, B) \to \operatorname{Hom}(A, C)$
sending $g \mapsto f \circ g$, and for each $D$ a pre-composition function
$\operatorname{Hom}(f, D) : \operatorname{Hom}(C, D) \to \operatorname{Hom}(B, D)$
sending $h \mapsto h \circ f$ (note the reversal).

> **Proposition (Arrows through hom-sets).** An arrow $f : B \to C$ is:
> - **monic** iff $\operatorname{Hom}(A, f)$ is injective for every $A$;
> - **epic** iff $\operatorname{Hom}(f, D)$ is injective for every $D$;
> - **split monic** iff $\operatorname{Hom}(f, D)$ is surjective for every $D$;
> - **split epic** iff $\operatorname{Hom}(A, f)$ is surjective for every $A$;
> - an **isomorphism** iff $\operatorname{Hom}(A, f)$ is bijective for every
>   $A$, iff $\operatorname{Hom}(f, D)$ is bijective for every $D$.[^bw-homsets]

The first two lines are the definitions restated. The third is worth unwinding
once: surjectivity of $\operatorname{Hom}(f, D)$ at $D = B$ produces an $r$ with
$r f = 1_B$. This proposition is an early sighting of a theme that dominates
[the Yoneda lemma](/category-theory/representables-yoneda/yoneda-lemma): every
property of an arrow is encoded in what composition with it does to hom-sets.

## Subobjects

Monomorphisms generalize injections, and injections generalize subset
inclusions, so monos are the raw material for the categorical notion of
"subthing." The subtlety is that many different monos into $B$ carve out the
same piece of $B$, and the definition must quotient that redundancy away.

Say a mono $f_0 : C_0 \to B$ **factors through** a mono $f_1 : C_1 \to B$ if
$f_0 = f_1 \circ h$ for some $h$. Write $f_0 \sim f_1$ when each factors through
the other; then the connecting arrows are unique and are mutually inverse
isomorphisms, and $\sim$ is an equivalence relation on monos with target
$B$.[^bw-subobj]

> **Definition (Subobject).** A **subobject** of an object $B$ is an equivalence
> class of monomorphisms into $B$ under mutual factorization. It is **proper**
> if the class does not contain $1_B$.

$$
% caption: Two equivalent monos into $B$: each factors through the other, and
% the comparison arrows $h$ and $k$ are forced to be mutually inverse.
\begin{tikzpicture}[scale=1.0, >=stealth, font=\small]
\definecolor{acc}{HTML}{4A6FA5}
\node (C0) at (0,1.1) {$C_0$};
\node (C1) at (0,-1.1) {$C_1$};
\node (B) at (3.2,0) {$B$};
\draw[->, acc, thick] (C0) -- (B) node[midway, above right] {$f_0$};
\draw[->, acc, thick] (C1) -- (B) node[midway, below right] {$f_1$};
\draw[->, black, thick] ([xshift=-3pt]C0.south) -- ([xshift=-3pt]C1.north) node[midway, left] {$h$};
\draw[->, black, thick] ([xshift=3pt]C1.north) -- ([xshift=3pt]C0.south) node[midway, right] {$k$};
\end{tikzpicture}
$$

In $\mathbf{Set}$ this recovers subsets, in a precise sense: every
subobject of a set $S$ contains exactly one genuine inclusion $I \subseteq S$
(the common image of all its members), and distinct subsets give distinct
subobjects. Subobjects are not literally subsets — no categorical definition
could be, since "the same element in both" violates the typing discipline — but
the two systems of data determine each other.

> **Worked example (A subobject in $\mathbf{Set}$).** Let $B = \{a, b, c\}$. The
> monos $m_1 : \{1, 2\} \to B$ with $m_1(1) = a$, $m_1(2) = b$ and
> $m_2 : \{x, y\} \to B$ with $m_2(x) = a$, $m_2(y) = b$ have the same image
> $\{a, b\}$. Each factors through the other: $m_1 = m_2 \circ h$ and
> $m_2 = m_1 \circ k$ with $h(1) = x$, $h(2) = y$ and $k = h^{-1}$, so
> $m_1 \sim m_2$. The relabelling $m_3 : \{1, 2\} \to B$, $m_3(1) = b$,
> $m_3(2) = a$, also has image $\{a, b\}$ and lies in the same class. That class is
> the subobject; it corresponds to the subset $\{a, b\}$, and the monos in it
> differ only by a bijection of the source.

The categorical attitude that results is strict typing with explicit coercions:
$\mathbb{Z}$ is a subobject of $\mathbb{R}$ not because an integer _is_ a real
number but because there is a canonical mono $\mathbb{Z} \to \mathbb{R}$,
regarded as an inclusion even when the underlying construction (Dedekind cuts,
Cauchy sequences) changes what the elements "really are." Barr & Wells press the
computing analogy: converting an `INT` to a `REAL` may change the representation
in memory; what matters is that the conversion map is monic and canonical. The
mono _is_ the type conversion.

## Duality

Nearly every definition here came in mirror pairs, and only one member of each
pair was ever proved: epi is mono in $\mathcal{A}^{\mathrm{op}}$, a retraction is a
section in $\mathcal{A}^{\mathrm{op}}$, and the composition and factor lemmas
dualize word for word ("if $g f$ is epic, so is $g$"). This is the duality
principle from
[the first lesson](/category-theory/foundations/what-is-a-category): one proof, two
theorems.
[Initial and terminal objects](/category-theory/universal-properties/universal-properties),
[products and coproducts](/category-theory/universal-properties/products-and-coproducts),
and equalizers and coequalizers are all dual pairs, and monos return there as the
arrows that equalizers produce.

[^bw-mono]: **Barr & Wells**, _Category Theory for Computing Science_, §2.8.1–2.8.2 — the definition of monomorphism and the reading of arbitrary arrows $T \to A$ as variable elements parametrized by $T$.
[^bw-monoset]: **Barr & Wells**, §2.8.3 — monic equals injective in $\mathbf{Set}$, using global elements $1 \to A$ for the converse direction.
[^bw-monmono]: **Barr & Wells**, §2.8.5 — monos in $\mathbf{Mon}$ are injective, proved by probing with the morphisms $k \mapsto x^k$ from $(\mathbb{N}, +, 0)$.
[^bw-epi]: **Barr & Wells**, §2.9.1–2.9.3 — epimorphisms, the two-function proof that epic equals surjective in $\mathbf{Set}$, and the proof that $\mathbb{N} \hookrightarrow \mathbb{Z}$ is a non-surjective epi in $\mathbf{Mon}$.
[^simmons-bimorph]: **Simmons**, _An Introduction to Category Theory_, §2.2, Definitions 2.2.1–2.2.5 and Exercises 2.2.5–2.2.8 — monics and epics by cancellation, bimorphisms, balanced categories, and the epic insertions $\mathbb{N} \to \mathbb{Z}$ in $\mathbf{Mon}$ and $\mathbb{Z} \to \mathbb{Q}$ in $\mathbf{Rng}$.
[^simmons-split]: **Simmons**, §2.2, Definition 2.2.3, the arrow hierarchy, and Exercise 2.2.1 — sections and retractions, split monic/epic terminology, and section + epic implies isomorphism.
[^bw-split]: **Barr & Wells**, §2.9.7 and Exercises — split monos and epis, the axiom of choice as "every surjection splits" in $\mathbf{Set}$, the non-split surjection $\mathbb{Z}_4 \to \mathbb{Z}_2$ in $\mathbf{Mon}$, and non-split monos out of $\emptyset$.
[^bw-subobj]: **Barr & Wells**, §2.8.8–2.8.14 — factorization of monos, the equivalence relation, subobjects as equivalence classes, the correspondence with subsets in $\mathbf{Set}$, and the strong-typing reading of inclusion maps.
