The Stacks project

6.11 Stalks

Let $X$ be a topological space. Let $x \in X$ be a point. Let $\mathcal{F}$ be a presheaf of sets on $X$. The stalk of $\mathcal{F}$ at $x$ is the set

\[ \mathcal{F}_ x = \mathop{\mathrm{colim}}\nolimits _{x\in U} \mathcal{F}(U) \]

where the colimit is over the set of open neighbourhoods $U$ of $x$ in $X$. The set of open neighbourhoods is partially ordered by (reverse) inclusion: We say $U \geq U' \Leftrightarrow U \subset U'$. The transition maps in the system are given by the restriction maps of $\mathcal{F}$. See Categories, Section 4.21 for notation and terminology regarding (co)limits over systems. Note that the colimit is a directed colimit. Thus it is easy to describe $\mathcal{F}_ x$. Namely,

\[ \mathcal{F}_ x = \{ (U, s) \mid x\in U, s\in \mathcal{F}(U) \} /\sim \]

with equivalence relation given by $(U, s) \sim (U', s')$ if and only if there exists an open $U'' \subset U \cap U'$ with $x \in U''$ and $s|_{U''} = s'|_{U''}$. By abuse of notation we will often denote $(U, s)$, $s_ x$, or even $s$ the corresponding element in $\mathcal{F}_ x$. Also we will say $s = s'$ in $\mathcal{F}_ x$ for two local sections of $\mathcal{F}$ defined in an open neighbourhood of $x$ to denote that they have the same image in $\mathcal{F}_ x$.

An obvious consequence of this definition is that for any open $U \subset X$ there is a canonical map

\[ \mathcal{F}(U) \longrightarrow \prod \nolimits _{x \in U} \mathcal{F}_ x \]

defined by $s \mapsto \prod _{x \in U} (U, s)$. Think about it!

Lemma 6.11.1. Let $\mathcal{F}$ be a sheaf of sets on the topological space $X$. For every open $U \subset X$ the map

\[ \mathcal{F}(U) \longrightarrow \prod \nolimits _{x \in U} \mathcal{F}_ x \]

is injective.

Proof. Suppose that $s, s' \in \mathcal{F}(U)$ map to the same element in every stalk $\mathcal{F}_ x$ for all $x \in U$. This means that for every $x \in U$, there exists an open $V^ x \subset U$, $x \in V^ x$ such that $s|_{V^ x} = s'|_{V^ x}$. But then $U = \bigcup _{x \in U} V^ x$ is an open covering. Thus by the uniqueness in the sheaf condition we see that $s = s'$. $\square$

Definition 6.11.2. Let $X$ be a topological space. A presheaf of sets $\mathcal{F}$ on $X$ is separated if for every open $U \subset X$ the map $\mathcal{F}(U) \to \prod _{x \in U} \mathcal{F}_ x$ is injective.

Another observation is that the construction of the stalk $\mathcal{F}_ x$ is functorial in the presheaf $\mathcal{F}$. In other words, it gives a functor

\[ \textit{PSh}(X) \longrightarrow \textit{Sets}, \ \mathcal{F} \longmapsto \mathcal{F}_ x. \]

This functor is called the stalk functor. Namely, if $\varphi : \mathcal{F} \to \mathcal{G}$ is a morphism of presheaves, then we define $\varphi _ x : \mathcal{F}_ x \to \mathcal{G}_ x$ by the rule $(U, s) \mapsto (U, \varphi (s))$. To see that this works we have to check that if $(U, s) = (U', s')$ in $\mathcal{F}_ x$ then also $(U, \varphi (s)) = (U', \varphi (s'))$ in $\mathcal{G}_ x$. This is clear since $\varphi $ is compatible with the restriction mappings.

Example 6.11.3. Let $X$ be a topological space. Let $A$ be a set. Denote temporarily $A_ p$ the constant presheaf with value $A$ ($p$ for presheaf – not for point). There is a canonical map of presheaves $A_ p \to \underline{A}$ into the constant sheaf with value $A$. For every point we have canonical bijections $A = (A_ p)_ x = \underline{A}_ x$, where the second map is induced by functoriality from the map $A_ p \to \underline{A}$.

Example 6.11.4. Suppose $X = \mathbf{R}^ n$ with the Euclidean topology. Consider the presheaf of $\mathcal{C}^\infty $ functions on $X$, denoted $\mathcal{C}^\infty _{\mathbf{R}^ n}$. In other words, $\mathcal{C}^\infty _{\mathbf{R}^ n}(U)$ is the set of $\mathcal{C}^\infty $-functions $f : U \to \mathbf{R}$. As in Example 6.7.3 it is easy to show that this is a sheaf. In fact it is a sheaf of $\mathbf{R}$-vector spaces.

Next, let $x \in X = \mathbf{R}^ n$ be a point. How do we think of an element in the stalk $\mathcal{C}^\infty _{\mathbf{R}^ n, x}$? Such an element is given by a $\mathcal{C}^\infty $-function $f$ whose domain contains $x$. And a pair of such functions $f$, $g$ determine the same element of the stalk if they agree in a neighbourhood of $x$. In other words, an element if $\mathcal{C}^\infty _{\mathbf{R}^ n, x}$ is the same thing as what is sometimes called a germ of a $\mathcal{C}^\infty $-function at $x$.

Example 6.11.5. Let $X$ be a topological space. Let $A_ x$ be a set for each $x \in X$. Consider the sheaf $\mathcal{F} : U \mapsto \prod _{x\in U} A_ x$ of Example 6.7.5. We would just like to point out here that the stalk $\mathcal{F}_ x$ of $\mathcal{F}$ at $x$ is in general not equal to the set $A_ x$. Of course there is a map $\mathcal{F}_ x \to A_ x$, but that is in general the best you can say. For example, suppose $x = \mathop{\mathrm{lim}}\nolimits x_ n$ with $x_ n \not= x_ m$ for all $n \not= m$ and suppose that $A_ y = \{ 0, 1\} $ for all $y \in X$. Then $\mathcal{F}_ x$ maps onto the (infinite) set of tails of sequences of $0$s and $1$s. Namely, every open neighbourhood of $x$ contains almost all of the $x_ n$. On the other hand, if every neighbourhood of $x$ contains a point $y$ such that $A_ y = \emptyset $, then $\mathcal{F}_ x = \emptyset $.

Comments (2)

Comment #281 by Bas Edixhoven on

The description of the stalk of F at x is not correct, because the said equivalende relation needs not be transitive. It should read: there is a U'' contained in U and in U' such that the restrictions of s and s' to U'' are equal.

Post a comment

Your email address will not be published. Required fields are marked.

In your comment you can use Markdown and LaTeX style mathematics (enclose it like $\pi$). A preview option is available if you wish to see how it works out (just click on the eye in the toolbar).

Unfortunately JavaScript is disabled in your browser, so the comment preview function will not work.

All contributions are licensed under the GNU Free Documentation License.

In order to prevent bots from posting comments, we would like you to prove that you are human. You can do this by filling in the name of the current tag in the following input field. As a reminder, this is tag 0078. Beware of the difference between the letter 'O' and the digit '0'.