----
- [ ] [[TODO]] general homological-algebraic setting for this definition
> [!definition] Definition. ([[exact sequence]])
> Take $\mathsf{C}=\mathsf{Grp}$. A (say, finite) sequence of [[group|groups]] $G_{0} \xrightarrow{f_{1}} G_{1} \xrightarrow{f_{2}} G_{2} \xrightarrow{f_{3}} \dots \xrightarrow{f_{n}}G_{n}$ is said to be **exact at $G_{i}$** if $\im f_{i}= \ker f_{i+1}$. It is said to be **exact** if it is exact at every $i$.
> [!definition] Definition. ([[exact sequence of modules]])
> Let $R$ be a [[ring]]. A [[chain complex of modules|chain complex]] of $R$-[[module|modules]] $(M_{\bullet}, d_{\bullet})$ is **exact at $M_{i}$** if it has no homology there: $\text{im }d_{i+1} = \text{ker }d_{i}$.
>
> The whole [[chain complex of modules|complex]] is called **exact** if it is exact at $M_{i}$ for all $i$.
^definition
> [!definition] (Exact sequence of sheaves)
> A cochain complex of [[sheaf|sheaves]] $\cdots \to \mathcal{F}^{i-1} \to \mathcal{F}^{i} \to \mathcal{F}^{i+1} \to \cdots$
> is **exact at $i$** if $\im f^{i}= \ker f^{i+1}$.
^definition
> [!basicexample] Examples for Modules.
> - If $M_{i}=(0)$ is trivial then the [[chain complex of modules|complex]] is necessarily exact at $M_{i}$.
> - A [[chain complex of modules|complex]] $\cdots \xrightarrow{} 0 \xrightarrow{ } L \xrightarrow{\alpha} M \xrightarrow{} \cdots$ is exact at $L$ iff $\alpha$ is a [[monomorphism]]. For $\text{ker }\alpha = (0)$ and a [[module homomorphism is injective iff kernel is trivial iff is a monomorphism]].
> - A [[chain complex of modules|complex]] $\cdots M \xrightarrow{\beta} N \xrightarrow{}0 \to \cdots$ is exact at $N$ iff $\beta$ is an [[epimorphism]]. For $\text{im }\beta=\text{ker }(N \xrightarrow{\text{trivial}}0)=N$, making $\beta$ into a [[surjection]], and [[module homomorphism is surjective iff cokernel is trivial iff is an epimorphism]].
^basic-example
----
####
----
#### 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
> ```