---
title: Units, Counits, and the Triangle Identities
module: Adjunctions
moduleNumber: 5
lessonNumber: 2
order: 502
summary: >
  The whole hom-set bijection of an adjunction is generated by two natural
  transformations: the unit, obtained by transposing identity maps on one side,
  and the counit, by transposing them on the other. Two triangle identities are
  all they must satisfy, and any pair satisfying them determines a unique
  adjunction. The same correspondence specializes to order-preserving maps
  between posets and to free constructions.
topics: [Adjunctions]
sources:
  - book: Leinster
    ref: "§2.2 Adjunctions via units and counits"
  - book: Simmons
    ref: "Ch. 5 §5.4 The unit and the co-unit; §5.3 Adjunctions uncouple"
draft: false
---

The [hom-set definition](/category-theory/adjunctions/adjunctions) of an
adjunction carries one bijection for every pair of objects, plus naturality in
both variables. Transposing identity maps produces two natural
transformations, the **unit** and the **counit**; they satisfy two equations,
the **triangle identities**. The main theorem is that any pair of natural
transformations satisfying those equations arises from exactly one adjunction, so
the bijection can be discarded and rebuilt at will.

## The unit and the counit

Fix an adjunction $F \dashv G$ with $F \colon \mathcal{A} \to \mathcal{B}$ and
$G \colon \mathcal{B} \to \mathcal{A}$. The transpose bijection

$$
\mathcal{B}(F(A), B) \;\cong\; \mathcal{A}(A, G(B))
$$

accepts any map on either side. Feed it the maps that exist canonically:
identities. Taking $B = F(A)$, the identity $1_{F(A)}$ lives in the left-hand
set, and its transpose lives in the right-hand one; dually with $A = G(B)$.

> **Definition (Unit and counit).** For an adjunction $F \dashv G$, the **unit**
> $\eta$ and **counit** $\varepsilon$ have components
>
> $$
> \eta_A = \overline{1_{F(A)}} \colon A \to GF(A),
> \qquad
> \varepsilon_B = \overline{1_{G(B)}} \colon FG(B) \to B,
> $$
>
> one for each $A \in \mathcal{A}$ and $B \in \mathcal{B}$. They form natural
> transformations $\eta \colon 1_{\mathcal{A}} \Rightarrow G \circ F$ and
> $\varepsilon \colon F \circ G \Rightarrow 1_{\mathcal{B}}$.

$$
% caption: The unit component $u_A = \eta_A$ is the transpose of the identity on
% $F(A)$; the counit component $e_B = \varepsilon_B$ is the transpose of the
% identity on $G(B)$. Each lives one level down or up from an identity map.
\begin{tikzpicture}[>=stealth, font=\small]
  \definecolor{acc}{HTML}{4A6FA5}
  % left: unit
  \node (A)   at (0,1.1)    {$A$};
  \node (GFA) at (3.0,1.1)  {$GF(A)$};
  \node (FA1) at (0,-1.1)   {$F(A)$};
  \node (FA2) at (3.0,-1.1) {$F(A)$};
  \draw[->, acc, thick] (A) -- (GFA) node[midway, above] {$u_A$};
  \draw[->, thick] (FA1) -- (FA2) node[midway, below] {$1_{F(A)}$};
  \draw[<->, black, dashed] (1.5,0.75) -- (1.5,-0.75);
  % right: counit
  \begin{scope}[xshift=6.6cm]
    \node (GB1) at (0,1.1)   {$G(B)$};
    \node (GB2) at (3.0,1.1) {$G(B)$};
    \node (FGB) at (0,-1.1)  {$FG(B)$};
    \node (B)   at (3.0,-1.1) {$B$};
    \draw[->, thick] (GB1) -- (GB2) node[midway, above] {$1_{G(B)}$};
    \draw[->, acc, thick] (FGB) -- (B) node[midway, below] {$e_B$};
    \draw[<->, black, dashed] (1.5,0.75) -- (1.5,-0.75);
  \end{scope}
\end{tikzpicture}
$$

Naturality is not an extra hypothesis; it follows from the naturality of the
adjunction itself. For any $k \colon A' \to A$ in $\mathcal{A}$, applying the
transpose axioms to $1_{F(A)}$ and $F(k)$ gives
$GF(k) \circ \eta_{A'} = \eta_A \circ k$, the naturality square
for $\eta$; the counit is dual.[^simm-natural]

### The free vector space

Take the free–forgetful adjunction $F \dashv U$ between $\mathbf{Set}$ and
$\mathbf{Vect}_k$, where $F(S)$ is the vector space of formal $k$-linear
combinations of elements of $S$.[^lein-vect]

- **Unit** $\eta_S \colon S \to UF(S)$ sends an element $s$ to itself, viewed as
  a basis vector — the insertion of generators into the free object.
- **Counit** $\varepsilon_V \colon FU(V) \to V$ sends a formal linear combination
  $\sum_v \lambda_v\, v$ of _vectors of $V$_ to its actual value in $V$ — formal
  evaluation.

The two components are very different in size. The unit is a modest inclusion.
The counit's domain $FU(V)$ has one basis vector for _every_ element of $V$: for
$V = \mathbb{R}^2$ it is an uncountably infinite-dimensional space, collapsed by
$\varepsilon_V$ onto the plane.[^lein-vect] Units are typically embeddings of a
thing into its freely generated hull; counits typically evaluate or project.

### Recovering the bijection

The unit and counit are only the transposes of identities, yet they generate
the entire adjunction.

> **Lemma (Transposition through the unit and counit).** For an adjunction
> $F \dashv G$ with unit $\eta$ and counit $\varepsilon$,
>
> $$
> \bar{g} = G(g) \circ \eta_A
> \quad\text{for } g \colon F(A) \to B,
> \qquad
> \bar{f} = \varepsilon_B \circ F(f)
> \quad\text{for } f \colon A \to G(B).
> $$

By naturality, $\bar{g} = \overline{g \circ 1_{F(A)}} =
G(g) \circ \overline{1_{F(A)}} = G(g) \circ \eta_A$, and dually.[^lein-recover]
So the entire bijection is: _apply the functor, then compose with the unit (or
counit)_.

## The triangle identities

Since $\eta$ and $\varepsilon$ determine the transpositions, the equations
$\bar{\bar{f}} = f$ and $\bar{\bar{g}} = g$ must translate into equations on
$\eta$ and $\varepsilon$ alone. Specializing the lemma to $f = \eta_A$ and
$g = \varepsilon_B$ gives the translation.

> **Theorem (Triangle identities).** For any adjunction $F \dashv G$ with unit
> $\eta$ and counit $\varepsilon$, the composites
>
> $$
> \varepsilon_{F(A)} \circ F(\eta_A) = 1_{F(A)},
> \qquad
> G(\varepsilon_B) \circ \eta_{G(B)} = 1_{G(B)}
> $$
>
> hold for all $A \in \mathcal{A}$, $B \in \mathcal{B}$. Equivalently, as
> equations of natural transformations: $\varepsilon F \circ F\eta = 1_F$ and
> $G\varepsilon \circ \eta G = 1_G$.

$$
% caption: The two triangle identities: going up with $F(u_A)$ then down with
% $e_{F(A)}$ is the identity on $F(A)$, and symmetrically for $G$. Here $u$ is
% the unit $\eta$ and $e$ the counit $\varepsilon$.
\begin{tikzpicture}[>=stealth, font=\small]
  \definecolor{acc}{HTML}{4A6FA5}
  % left triangle
  \node (FA)   at (0,0)     {$F(A)$};
  \node (FGFA) at (3.4,0)   {$FGF(A)$};
  \node (FA2)  at (3.4,-2.2) {$F(A)$};
  \draw[->, acc, thick] (FA) -- (FGFA) node[midway, above] {$F(u_A)$};
  \draw[->, acc, thick] (FGFA) -- (FA2) node[midway, right] {$e_{F(A)}$};
  \draw[->, thick] (FA) -- (FA2) node[midway, below left] {$1_{F(A)}$};
  % right triangle
  \begin{scope}[xshift=7.2cm]
    \node (GB)   at (0,0)     {$G(B)$};
    \node (GFGB) at (3.4,0)   {$GFG(B)$};
    \node (GB2)  at (3.4,-2.2) {$G(B)$};
    \draw[->, acc, thick] (GB) -- (GFGB) node[midway, above] {$u_{G(B)}$};
    \draw[->, acc, thick] (GFGB) -- (GB2) node[midway, right] {$G(e_B)$};
    \draw[->, thick] (GB) -- (GB2) node[midway, below left] {$1_{G(B)}$};
  \end{scope}
\end{tikzpicture}
$$

For the proof, apply the recovery lemma to the definition of the unit:
$\eta_A = \overline{1_{F(A)}}$ transposes back to
$1_{F(A)} = \bar{\eta}_A = \varepsilon_{F(A)} \circ F(\eta_A)$, the first
triangle; the second is dual.[^lein-triangle] Simmons derives the same pair as a
corollary of the transposition formulas and calls them the identities that, "in
appropriate circumstances, determine the adjunction."[^simm-triangle]

> **Worked example (Triangle identities for the free monoid).** Take the
> free–forgetful adjunction $F \dashv U$ between $\mathbf{Set}$ and $\mathbf{Mon}$,
> where $F(X) = X^\ast$ is the monoid of words over $X$ under concatenation. Fix
> $X = \{a, b\}$.
>
> - **Unit** $\eta_X \colon X \to UF(X)$ sends $a \mapsto \langle a\rangle$ and
>   $b \mapsto \langle b\rangle$. Transposing a function $u \colon X \to U(M)$
>   evaluates a word: for $M = (\mathbb{N}, +, 0)$ with $u(a) = 1$, $u(b) = 2$, the
>   transpose gives $\bar{u}\langle abab\rangle = 1 + 2 + 1 + 2 = 6$.
> - **Counit** $\varepsilon_M \colon FU(M) \to M$ multiplies a word of elements
>   out: $\varepsilon_M\langle 3\; 5\rangle = 3 + 5 = 8$.
>
> First triangle, $\varepsilon_{F(X)} \circ F(\eta_X) = 1_{F(X)}$, on the word
> $\langle ab\rangle$: $F(\eta_X)$ replaces each letter by its one-letter word,
> producing the length-two word $\langle\, \langle a\rangle\; \langle b\rangle\,\rangle$
> in $FUF(X)$, and $\varepsilon_{F(X)}$ concatenates its entries back to
> $\langle a\rangle\langle b\rangle = \langle ab\rangle$. Second triangle,
> $U(\varepsilon_M) \circ \eta_{U(M)} = 1_{U(M)}$, on $m \in \mathbb{N}$: $\eta$
> forms the one-letter word $\langle m\rangle$ and $\varepsilon_M$ evaluates it to
> $m$. Both composites are the identity.

The identities are sometimes called the **zig-zag equations**, after their
string-diagram form. Drawing a functor as a vertical string, the unit as a cap
where an $F$-string and a $G$-string are born, and the counit as a cup where they
annihilate, each identity says a zig-zag in a string can be pulled
straight.[^lein-string]

$$
% caption: The zig-zag form of the first triangle identity: a bent $F$-string
% (born at a unit cap, absorbed at a counit cup) equals the straight string.
% Caps are units, cups are counits.
\begin{tikzpicture}[>=stealth, font=\footnotesize]
  \definecolor{acc}{HTML}{4A6FA5}
  % zigzag string
  \draw[acc, very thick] (0,2.4) -- (0,1.2);
  \draw[acc, very thick] (0,1.2) .. controls (0,0.4) and (1.2,0.4) .. (1.2,1.2);
  \draw[acc, very thick] (1.2,1.2) .. controls (1.2,2.0) and (2.4,2.0) .. (2.4,1.2);
  \draw[acc, very thick] (2.4,1.2) -- (2.4,0);
  \node[anchor=south] at (0,2.45) {$F$};
  \node[anchor=north] at (2.4,-0.05) {$F$};
  \node[black, anchor=west] at (1.35,2.0) {cap: unit};
  \node[black, anchor=north] at (0.6,0.35) {cup: counit};
  % equals
  \node at (3.8,1.2) {$=$};
  % straight string
  \draw[acc, very thick] (5.2,2.4) -- (5.2,0);
  \node[anchor=south] at (5.2,2.45) {$F$};
  \node[anchor=north] at (5.2,-0.05) {$F$};
  \node[black, anchor=west] at (5.6,1.2) {pulled straight};
\end{tikzpicture}
$$

## Adjunctions from a unit–counit pair

A unit–counit pair, subject only to the triangle identities, is a complete
presentation of the adjunction.

> **Theorem (Unit–counit characterization).** Let
> $F \colon \mathcal{A} \to \mathcal{B}$ and
> $G \colon \mathcal{B} \to \mathcal{A}$ be functors. There is a one-to-one
> correspondence between:
>
> - adjunctions between $F$ and $G$ (with $F$ on the left);
> - pairs of natural transformations $\eta \colon 1_{\mathcal{A}} \Rightarrow GF$
>   and $\varepsilon \colon FG \Rightarrow 1_{\mathcal{B}}$ satisfying the
>   triangle identities.
>
> In particular, $F \dashv G$ if and only if such a pair exists.

> **Proof.** One direction is done: every adjunction yields such a pair. For the
> converse, take $(\eta, \varepsilon)$ satisfying the triangles and _define_ the
> candidate transpositions by the recovery formulas,
>
> $$
> \bar{g} = G(g) \circ \eta_A, \qquad \bar{f} = \varepsilon_B \circ F(f).
> $$
>
> Uniqueness of the adjunction is immediate, since any adjunction with this unit
> and counit must transpose by these formulas. For existence, the point to check
> is that the two assignments are mutually inverse. Given $g \colon F(A) \to B$,
> compute $\bar{\bar{g}} = \varepsilon_B \circ F(G(g) \circ \eta_A) =
> \varepsilon_B \circ FG(g) \circ F(\eta_A)$, and chase the square:

$$
% caption: The inverse-pair check in the unit-counit theorem: naturality of the
% counit $e$ makes the square commute, and the first triangle identity collapses
% the left edge, giving the outer composite $= g$.
\begin{tikzpicture}[>=stealth, font=\small]
  \definecolor{acc}{HTML}{4A6FA5}
  \node (FA)   at (0,0)     {$F(A)$};
  \node (FGFA) at (4.0,0)   {$FGF(A)$};
  \node (FGB)  at (8.0,0)   {$FG(B)$};
  \node (FA2)  at (4.0,-2.4) {$F(A)$};
  \node (B)    at (8.0,-2.4) {$B$};
  \draw[->, acc, thick] (FA) -- (FGFA) node[midway, above] {$F(u_A)$};
  \draw[->, acc, thick] (FGFA) -- (FGB) node[midway, above] {$FG(g)$};
  \draw[->, thick] (FGFA) -- (FA2) node[midway, left] {$e_{F(A)}$};
  \draw[->, acc, thick] (FGB) -- (B) node[midway, right] {$e_B$};
  \draw[->, thick] (FA2) -- (B) node[midway, below] {$g$};
  \draw[->, thick] (FA) -- (FA2) node[midway, below left] {$1$};
\end{tikzpicture}
$$

> The square commutes by naturality of $\varepsilon$ applied to $g$, and the left
> triangle is the first triangle identity. Reading the outer boundary,
> $\varepsilon_B \circ FG(g) \circ F(\eta_A) = g \circ \varepsilon_{F(A)} \circ
> F(\eta_A) = g \circ 1 = g$. Dually $\bar{\bar{f}} = f$. Naturality of the
> resulting bijection in $A$ and $B$ follows from functoriality of $F$ and $G$
> together with naturality of $\eta$ and $\varepsilon$; and the unit of the
> resulting adjunction is $\overline{1_{F(A)}} = G(1_{F(A)}) \circ \eta_A =
> \eta_A$, as required.[^lein-thm][^simm-thm] $\blacksquare$
Simmons proves the same theorem by splitting the naturality axiom into four
one-variable fragments and showing various subsets suffice; the useful residue
of that analysis is that in practice one rarely verifies full two-variable
naturality — the unit–counit route replaces it with two equations between
composites of natural transformations.[^simm-uncouple]

### The data dictionary

Three packages of data now describe the same thing.

| Package | Data | Conditions | Best for |
| --- | --- | --- | --- |
| hom-set bijection | $\mathcal{B}(FA, B) \cong \mathcal{A}(A, GB)$ for all $A, B$ | naturality in $A$ and $B$ | recognizing adjunctions in examples |
| unit and counit | $\eta \colon 1 \Rightarrow GF$, $\;\varepsilon \colon FG \Rightarrow 1$ | two triangle identities | proving theorems, composing adjunctions |
| universal arrows | $\eta_A \colon A \to GF(A)$ initial for each $A$ | initiality in $(A \Rightarrow G)$ | building an adjoint objectwise |

The third package, [universal arrows](/category-theory/adjunctions/adjunctions-via-universal-arrows),
builds the adjoint one object at a time.
The middle package has a feature the others lack: it never mentions elements of
hom-sets, only functors and natural transformations, so it ports to any
2-categorical setting where "bijection of hom-sets" makes no sense.

## Order-theoretic adjunctions

Between posets, adjunctions collapse to something checkable at a glance. Let
$f \colon A \to B$ and $g \colon B \to A$ be order-preserving maps between
ordered sets, viewed as functors between thin categories. Each hom-set has at
most one element, so the bijection condition is a biconditional and naturality
is automatic:

$$
f \dashv g
\iff
\big(\, f(a) \le b \iff a \le g(b) \;\text{ for all } a, b \,\big).
$$

The unit and counit become inequalities, and the triangle identities become
vacuous (any two parallel maps in a poset are equal):[^lein-poset]

- **Unit.** $a \le g f(a)$ for all $a \in A$ — applying $f$ then $g$ can only
  move up.
- **Counit.** $f g(b) \le b$ for all $b \in B$ — applying $g$ then $f$ can only
  move down.

By the unit–counit theorem, the biconditional holds iff both inequalities hold,
a fact provable directly in three lines but now an instance of a theorem about
adjunctions in general.

For example, let $X$ be a topological space, $\mathcal{P}(X)$ its poset of
subsets and $\mathcal{C}(X)$ its poset of closed subsets, both ordered by
inclusion. Closure and inclusion form an adjunction
$\mathrm{Cl} \dashv i$:

$$
\mathrm{Cl}(A) \subseteq B \iff A \subseteq B
\qquad (A \subseteq X, \; B \text{ closed}).
$$

The unit is $A \subseteq \mathrm{Cl}(A)$ (a set sits inside its closure) and the
counit is $\mathrm{Cl}(B) \subseteq B$ (a closed set already contains its
closure — here equality).[^lein-poset] The closure operation, usually presented
by axioms, is an adjoint.

## Two cautions

### An equivalence's isomorphisms need not be its unit and counit

An
[equivalence of categories](/category-theory/foundations/natural-transformations)
$(F, G, \eta, \varepsilon)$ consists of natural _isomorphisms_
$\eta \colon 1 \Rightarrow GF$ and $\varepsilon \colon FG \Rightarrow 1$, with no
triangle condition. In any equivalence $F \dashv G$; but the
given $\eta$ and $\varepsilon$ need not be the unit and counit of that
adjunction, precisely because they may fail the triangles. They can always be
adjusted to a pair that satisfies them.[^lein-warning]

### The unit and counit need not be isomorphisms

How far they fail
measures how far the adjunction is from an equivalence. The failure is itself
structured:

- The right adjoint $G$ is **full and faithful** iff the counit $\varepsilon$ is
  a natural isomorphism. Such an adjunction is called a **reflection**; the
  abelianization adjunction $\mathbf{Ab} \rightleftarrows \mathbf{Grp}$ is one,
  with $\mathbf{Ab}$ a _reflective subcategory_ of $\mathbf{Grp}$.[^lein-refl]
- On the full subcategories where the unit (respectively counit) _is_ an
  isomorphism, every adjunction restricts to an equivalence — the fixed points
  of the adjunction.[^lein-fix]

For the free vector space adjunction, neither transformation is invertible: the
unit $S \to UF(S)$ is far from surjective ($UF(S)$ contains all formal sums),
and the counit collapses an enormous space. The adjunction relates
$\mathbf{Set}$ and $\mathbf{Vect}_k$ without identifying them.

The unit component
$\eta_A \colon A \to GF(A)$ has a universal property on its own, and a family
of such [universal arrows](/category-theory/adjunctions/adjunctions-via-universal-arrows)
rebuilds the left adjoint.

[^simm-natural]: **Simmons**, _An Introduction to Category Theory_, §5.4, Lemma 5.4.2 — naturality of the unit and counit, proved from the naturality fragment $([)$ of the adjunction axioms instantiated twice.
[^lein-vect]: **Leinster**, _Basic Category Theory_, §2.2, Example 2.2.1 — unit and counit of the free–forgetful adjunction for vector spaces; the counit evaluates formal sums, and $FU(V)$ is uncountably infinite-dimensional even for $V = \mathbb{R}^2$.
[^lein-recover]: **Leinster**, §2.2, Lemma 2.2.4 — $\bar{g} = G(g) \circ \eta_A$ and $\bar{f} = \varepsilon_B \circ F(f)$; the unit and counit "appear to know only the transposes of identities" yet determine the whole adjunction. Also Simmons §5.4, Lemma 5.4.3.
[^lein-triangle]: **Leinster**, §2.2, Lemma 2.2.2 and Remark 2.2.3 — the triangle identities as commuting diagrams in the functor categories $[\mathcal{A}, \mathcal{B}]$ and $[\mathcal{B}, \mathcal{A}]$, with the componentwise form (2.4).
[^simm-triangle]: **Simmons**, §5.4, Corollary 5.4.4 — the identities $\varepsilon_{FA} \circ F(\eta_A) = 1_{FA}$ and $G(\varepsilon_S) \circ \eta_{GS} = 1_{GS}$ obtained by specializing the transposition formulas to the unit and counit.
[^lein-string]: **Leinster**, §2.2, Remark 2.2.9 — string diagrams for natural transformations; the unit and counit as cap and cup, and the triangle identities as "pulling the string straight."
[^lein-thm]: **Leinster**, §2.2, Theorem 2.2.5 and Corollary 2.2.6 — one-to-one correspondence between adjunctions and unit–counit pairs satisfying the triangle identities; the commuting-square argument for $\bar{\bar{g}} = g$.
[^simm-thm]: **Simmons**, §5.4, Theorem 5.4.5 — a pair of natural transformations satisfying the Corollary 5.4.4 identities is the unit and counit of a unique adjunction, with the transpositions rebuilt by the recovery formulas.
[^simm-uncouple]: **Simmons**, §5.3 — the naturality requirement decomposed into the four one-variable fragments $(\sharp\uparrow), (\sharp\downarrow), (\flat\uparrow), (\flat\downarrow)$, and Lemma 5.3.2 listing which pairs of fragments suffice for an adjunction.
[^lein-poset]: **Leinster**, §2.2, Example 2.2.7 — adjunctions between ordered sets: the biconditional, the unit and counit as inequalities, the vacuous triangle identities, and topological closure as a left adjoint to inclusion of closed sets.
[^lein-warning]: **Leinster**, §2.2, Remark 2.2.8 with Exercise 2.3.10 — in any equivalence $(F, G, \eta, \varepsilon)$ the functor $F$ is left adjoint to $G$, but the given $\eta, \varepsilon$ need not satisfy the triangle identities, so they need not be the unit and counit.
[^lein-refl]: **Leinster**, §2.2, Exercise 2.2.12 — the right adjoint is full and faithful iff the counit is an isomorphism; such adjunctions are reflections, e.g. $\mathbf{Ab}$ reflective in $\mathbf{Grp}$ (Example 2.1.3(c)–(d)).
[^lein-fix]: **Leinster**, §2.2, Exercise 2.2.11 — every adjunction restricts canonically to an equivalence between the full subcategories on which the unit (resp. counit) is an isomorphism.
