Functor
Covariance and contravariance

There are many constructions in mathematics that would be functors but for the fact that they "turn morphisms around" and "reverse composition". We then define a contravariant functor F from C to D as a mapping that

Variance of functor (composite)

Note that contravariant functors reverse the direction of composition.

Ordinary functors are also called covariant functors in order to distinguish them from contravariant ones. Note that one can also define a contravariant functor as a covariant functor on the opposite category C o p {\displaystyle C^{\mathrm {op} }}. Some authors prefer to write all expressions covariantly. That is, instead of saying F: C → D {\displaystyle F\colon C\to D} is a contravariant functor, they simply write F: C o p → D {\displaystyle F\colon C^{\mathrm {op} }\to D} (or sometimes F: C → D o p {\displaystyle F\colon C\to D^{\mathrm {op} }}) and call it a functor.

Contravariant functors are also occasionally called cofunctors.

There is a convention which refers to "vectors"—i.e., vector fields, elements of the space of sections Γ (T M) {\displaystyle \Gamma (TM)} of a tangent bundle T M {\displaystyle TM} —as "contravariant" and to "covectors"—i.e., 1-forms, elements of the space of sections Γ (T ∗ M) {\displaystyle \Gamma {\mathord {\left(T^{*}M\right)}}} of a cotangent bundle T ∗ M {\displaystyle T^{*}M} —as "covariant". This terminology originates in physics, and its rationale has to do with the position of the indices ("upstairs" and "downstairs") in expressions such as x ′ i = Λ j i x j {\displaystyle {x'}^{\,i}=\Lambda _{j}^{i}x^{j}} for x ′ = Λ x {\displaystyle \mathbf {x} '={\boldsymbol {\Lambda }}\mathbf {x} } or ω i ′ = Λ i j ω j {\displaystyle \omega '_{i}=\Lambda _{i}^{j}\omega _{j}} for ω ′ = ω Λ T. {\displaystyle {\boldsymbol {\omega }}'={\boldsymbol {\omega }}{\boldsymbol {\Lambda }}^{\textsf {T}}.} In this formalism it is observed that the coordinate transformation symbol Λ i j {\displaystyle \Lambda _{i}^{j}} (representing the matrix Λ T {\displaystyle {\boldsymbol {\Lambda }}^{\textsf {T}}}) acts on the "covector coordinates" "in the same way" as on the basis vectors: e i = Λ i j e j {\displaystyle \mathbf {e} _{i}=\Lambda _{i}^{j}\mathbf {e} _{j}} —whereas it acts "in the opposite way" on the "vector coordinates" (but "in the same way" as on the basis covectors: e i = Λ j i e j {\displaystyle \mathbf {e} ^{i}=\Lambda _{j}^{i}\mathbf {e} ^{j}}). This terminology is contrary to the one used in category theory because it is the covectors that have pullbacks in general and are thus contravariant, whereas vectors in general are covariant since they can be pushed forward. See also Covariance and contravariance of vectors.
oulipo:avoid_letter[o]