# Bifunctor

A mapping $T: \mathfrak A \times \mathfrak B \rightarrow \mathfrak C$, defined on the Cartesian product of two categories $\mathfrak A$ and $\mathfrak B$ with values in $\mathfrak C$, which assigns to each pair of objects $A \in \mathfrak A$, $B \in \mathfrak B$ some object $C \in \mathfrak C$, and to each pair of morphisms

$$\alpha : A \rightarrow A ^ \prime ,\ \ \beta : B \rightarrow B ^ \prime$$

the morphism

$$\tag{1 } T( \alpha , \beta ) : \ T(A ^ \prime , B) \rightarrow \ T(A, B ^ \prime ).$$

The following conditions

$$\tag{2 } T(1 _ {A} , 1 _ {B} ) = \ 1 _ {T (A, B) } ,$$

$$T ( \alpha ^ \prime \circ \alpha , \beta ^ \prime \circ \beta ) = T ( \alpha , \beta ^ \prime ) \circ T ( \alpha ^ \prime , \beta ),$$

must also be met. In such a case one says that the functor $T$ is contravariant with respect to the first argument and covariant with respect to the second.

$$\tag{1'} T ( \alpha , \beta ): \ T (A, B) \rightarrow \ T (A ^ \prime , B ^ \prime ),$$
$$\tag{2'} T ( \alpha ^ \prime \alpha , \beta ^ \prime \beta ) = T ( \alpha ^ \prime , \beta ^ \prime ) \circ T ( \alpha , \beta ).$$