-----
> [!proposition] Proposition. ([[sheaf morphism injectivity and surjectivity can be tested on stalks]])
> A [[morphism of (pre)sheaves|morphism of sheaves]] $\mathcal{F} \xrightarrow{f} \mathcal{G}$ is [[injection|injective]] if and only if the [[(pre)sheaf stalk|stalk map]] $f_{p}:\mathcal{F}_{p} \to \mathcal{G}_{p}$ is [[injection|injective]] for all $p$.
>
A [[morphism of (pre)sheaves|morphism of sheaves]] $\mathcal{F} \xrightarrow{f} \mathcal{G}$ is [[surjective sheaf morphism|surjective]] if and only if the [[(pre)sheaf stalk|stalk map]] $f_{p}:\mathcal{F}_{p} \to \mathcal{G}_{p}$ is [[surjection|surjective]] for all $p$.
^proposition
> [!proposition] Corollary.
> A [[morphism of (pre)sheaves|morphism of sheaves]] $\mathcal{F} \xrightarrow{f} \mathcal{G}$ is an [[isomorphism]] if and only if it is [[injective sheaf morphism|injective]] and [[surjective sheaf morphism|surjective]].
>
> Indeed, $f$ is an [[isomorphism]] [[sheaf isomorphism iff isomorphism on stalks|iff each]] $f_{p}$ is, iff each $f_{p}$ is injective and surjective,[^1] iff $f$ is injective and surjective.
^corollary
[^1]: Recall that we are assuming that data [[category]] is $\mathsf{Ab}$ or maybe $\mathsf{Ring}$ by default. So an injective + surjective morphism is an isomorphism.
> [!proof]- Proof. ([[sheaf morphism injectivity and surjectivity can be tested on stalks]])
> First,
>
> $\begin{align}
> f_{p} \text{ is injective} \ \fa p &\iff \ker f_{p} = 0 \ \fa p \\
> & \iff (\ker f)_{p} = 0 \ \fa p \\
> & \iff \ker f = 0,
> \end{align}$
> where in the penultimate step we used that [[(pre)sheaf kernel|taking stalks and kernels commute]], and in the last step we used the easy fact that [[sheaf triviality can be tested on stalks]].
>
>
> Second,
>
> $\begin{align}
> f_{p} \text{ is surjective } \fa p & \iff \im f_{p} = \mathcal{G}_{p} \ \fa p \\
> & \iff (\im f)_{p} = \mathcal{G}_{p} \ \fa p \\
> & \iff \im f = \mathcal{G}
> \end{align}$
> where in the penultimate step we used that [[sheaf image|taking stalks and images commute]], and in the last step we used the easy fact that [[equality of subsheaf and sheaf can be tested on stalks]].
>
> (Here we are identifying the [[sheaf image]] with a [[subsheaf]] of $\mathcal{G}$ in the natural way.)
-----
####
----
#### References
> [!backlink]
> ```dataview
> TABLE rows.file.link as "Further Reading"
> FROM [[]]
> FLATTEN file.tags as Tag
> WHERE Tag = "#definition" OR Tag = "#theorem" OR Tag = "#MOC" OR Tag = "#proposition" OR Tag = "#axiom"
> GROUP BY Tag
> ```
> [!frontlink]
> ```dataview
> TABLE rows.file.link as "Further Reading"
> FROM outgoing([[]])
> FLATTEN file.tags as Tag
> WHERE Tag = "#definition" OR Tag = "#theorem" OR Tag = "#MOC" OR Tag = "#proposition" OR Tag = "#axiom"
> GROUP BY Tag
> ```