Choose sets X and Y with between two and four elements each, and choose a function \$$f: X \rightarrow Y \$$.

1. Choose two different subsets \$$B_1 , B_2 \subseteq Y \$$ and find \$$f^{−1}(B_1) \$$ and \$$f^{-1}(B_2) \$$.
2. Choose two different subsets \$$A_1 , A_2 \subseteq X \$$ and find \$$f_!( A_1 ) \$$ and \$$f_! (A_2) \$$.
3. With the same \$$A_1 , A_2 \subseteq X \$$, find \$$f_* (A_1) \$$ and \$$f_* (A_2 ) \$$.

**Example 1.101**.

Let \$$f : X \rightarrow Y \$$ be a function between sets.
We can imagine X as a set of balls, \$$Y \$$ as a set of buckets, and \$$f \$$ as putting each ball in a bucket.
Then we have the monotone map \$$f^*: \mathbb{P} Y \rightarrow \mathbb{P} X \$$ that category theorists call “pullback along f ”.
This map takes a subset \$$B \subseteq Y \$$ to its preimage \$$f^{−1} B \subseteq X: \$$ that is,
it takes a collection \$$B \$$ of buckets, and tells you all the balls that lie in them.
This operation is monotonic (more buckets means more balls) and it has both a left and a right adjoint.
The left adjoint \$$f_! (A) \$$ is given by the direct image: it maps a subset \$$A \subseteq X \$$ to

$f_{!} (A) := \\{ y \in Y | \exists a \in A \text{ such that } f(a) = y \\}$

This map hence takes a set \$$A \$$ of balls, and tells you all the buckets that contain at least one of these balls.
The right adjoint \$$f_* \$$ maps a subset \$$A \subseteq X \$$ to

$f_* (A) := \\{ y \in Y | \forall a \text{ such that } f(a) = y \text{ we have } a \in A \\}$