----
> [!definition] Definition. ([[contravariant functor]])
> Let $\mathsf{C}$ and $\mathsf{D}$ be two [[category|categories]]. A **contravariant functor** $\mathscr{G}: \mathsf{C} \to \mathsf{D}$
>
> is a [[covariant functor]] $\mathsf{C}^{\text{op}} \to \mathsf{D}$ from the [[opposite category]]. Notably, the fact that $\mathscr{G}$ respects compositions means that for all $A,B,C \in \text{Obj}(\mathsf{C})$, for all $\alpha \in \text{Hom}_{\mathsf{C}}(A,B)$, for all $\beta \in \text{Hom}_{\mathsf{C}}(B,C)$, $\mathscr{G}(\beta \circ \alpha)=\mathscr{G}(\alpha) \circ \mathscr{G}(\beta).$
> Pictorally,
>
>
> ```tikz
> \usepackage{tikz-cd}
> \usepackage{amsmath}
> \begin{document}
> % https://tikzcd.yichuanshen.de/#N4Igdg9gJgpgziAXAbVABwnAlgFyxMJZABgBpiBdUkANwEMAbAVxiRAEEQBfU9TXfIRQBGclVqMWbAELdeIDNjwEiAJjHV6zVohABhbuJhQA5vCKgAZgCcIAWyRkQOCElETtbADpfGaABZ0cla2DojuLkjqHlK6PgBGMDhBPCH2UdSRiE6JYFBIAMxOWrEgCUl0AAQ+AMZY1jXVvgwBKRRcQA
> \begin{tikzcd}
> A \arrow[r, "\alpha"] & B \arrow[r, "\beta"] & C \arrow[ll, "\beta \circ \alpha", bend left]
> \end{tikzcd}
> \end{document}
> ```
>
> is sent to
>
> ```tikz
> \usepackage{tikz-cd}
> \usepackage{amsmath}
> \usepackage{amsfonts}
> \usepackage[mathscr]{euscript}
> \begin{document}
> \begin{tikzcd}
> \mathscr{G}(A) & \mathscr{G}(B) \arrow[l, "\mathscr{G}(\alpha)"'] & \mathscr{G}(C) \arrow[l, "\mathscr{G}(\beta)"'] \arrow[ll, "\mathscr{G}(\beta \circ \alpha)", bend left]
> \end{tikzcd}
> \end{document}
> ```
>
> by a contravariant functor $\mathscr{G}$.
>
A contravariant functor into $\mathsf{Set}$ is sometimes called a **presheaf**. If $\mathsf{C}$ is the [[poset]] of open sets in a [[topological space]], this recovers the usual notion of a [[presheaf|presheaf on a topological space]].
----
####
----
#### 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
> ```