---- > [!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 > ```