-----
> [!proposition] Proposition. ([[exact functor iff preserves exactness of short exact sequences]])
> A (conditions) [[covariant functor|functor]] $\mathscr{F}$ is [[exact functor|exact]] if and only if it sends any [[short exact sequence|short]] [[exact sequence|exact sequence]] $0 \to A \xrightarrow{f} B \xrightarrow{g} C \to 0$
> to a [[short exact sequence]] $0 \to A \xrightarrow{\mathscr{F}(f)} B \xrightarrow{\mathscr{F}(g)} C \to 0.$
> Equivalently phrased $\mathscr{F}$ is exact iff it preserves exactness of exact sequences of the form[^1] $A \xrightarrow{f} B \xrightarrow{g} C.$
>
> [!proof]+ Proof. ([[exact functor iff preserves exactness of short exact sequences]])
> Obviously an exact functor in particular preserves SES exactness.
>
> Suppose $\mathscr{F}$ preserves short exact sequences. Any [[exact sequence]] $(M_{\bullet}, d_{\bullet})$ breaks up into [[short exact sequence|short exact sequences]] as follows (the diagonals are SES)
>
> ```tikz
> \usepackage{tikz-cd}
> \usepackage{amsmath}
> \begin{document}
> \begin{tikzcd}
> & & 0 \arrow[rd, hook] & & 0 & & \\
> & & & \text{im } d_{i+1} = \text{ker }d_{i} \arrow[ru, two heads] \arrow[rd, hook] & & & \\
> M_{i+2} \arrow[rd, two heads] \arrow[rr, "d_{i+2}"] & & M_{i+1} \arrow[rr, "d_{i+1}"'] \arrow[ru, two heads] & & M_i \arrow[rr, "d_i"] \arrow[rd, two heads] & & M_{i-1} \\
> & \text{im } d_{i+2} = \text{ker }d_{i+1} \arrow[ru, hook] \arrow[rd, two heads] & & & & \text{im } d_{i} = \text{ker }d_{i-1} \arrow[rd, two heads] \arrow[ru, hook] & \\
> 0 \arrow[ru, hook] & & 0 & & 0 \arrow[ru, hook] & & 0
> \end{tikzcd}
> \end{document}
> ```
>
> Apply $\mathscr{F}$:
> ```tikz
> \usepackage{tikz-cd}
> \usepackage{amsmath}
> \usepackage[mathscr]{euscript}
> \begin{document}
> \begin{tikzcd}
> & & 0 \arrow[rd, hook] & & 0 & & \\
> & & & \mathscr{F}(\text{im } d_{i+1}) = \mathscr{F}(\text{ker }d_{i}) \arrow[ru, two heads] \arrow[rd, hook] & & & \\
> \mathscr{F}(M_{i+2}) \arrow[rd, two heads] \arrow[rr, "\mathscr{F}(d_{i+2})"] & & \mathscr{F}(M_{i+1}) \arrow[rr, "\mathscr{F}(d_{i+1})"'] \arrow[ru, two heads] & & \mathscr{F}(M_i) \arrow[rr, "\mathscr{F}(d_i)"] \arrow[rd, two heads] & & \mathscr{F}(M_{i-1}) \\
> & \mathscr{F}(\text{im } d_{i+2}) = \mathscr{F}(\text{ker }d_{i+1}) \arrow[ru, hook] \arrow[rd, two heads] & & & & \mathscr{F}(\text{im } d_{i}) = \mathscr{F}(\text{ker }d_{i-1}) \arrow[rd, two heads] \arrow[ru, hook] & \\
> 0 \arrow[ru, hook] & & 0 & & 0 \arrow[ru, hook] & & 0
> \end{tikzcd}
> \end{document}
> ```
> Now, since the diagonal sequences are short-exact, we can see for example $\mathscr{F}(\ker d_{i+1})=\ker \mathscr{F}(d_{i+1})$ and $\mathscr{F}(\im d_{i+1})=\im \mathscr{F}(d_{i+1})$. This is the result.
-----
####
[^1]: Since [[chain complex of modules|chain complexes]] are always implicitly zero-padded.
----
#### 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
> ```