# Category Theory – When is a functor uniquely determined where to send objects?

Consider a functor $$F: C to D$$ , To let $$F_1$$ a map of the objects of his $$C$$ to the objects of $$D$$ and $$F_2$$ be a card on the arrows. Under which circumstances? $$F$$ clearly determined by $$F_1$$ ?

example 1

In a discussion with friends yesterday the list type constructor `[a]` in Haskell was educated as an example of an endofunctor $$G$$ of "Hask" (the category whose objects are Haskell types and morphisms are values). We suspected that there is exactly one way to send arrows with arrows $$G$$ Once you have selected where the types were sent. In other words, let us $$K$$ to be an endofunctor of $$text {Hask}$$ , If $$K_1 = G_1$$ , then $$K = G$$ ,

Example 1 without reference to programming. To let $$W$$ the category defined as follows:

The objects of $$W$$ are types in a typed lambda calculus with function types $$to$$, Products $$times$$ to hum $$+$$ and isorecurrent types $$mu alpha mathop {.} T$$ , The primitive types are $$0$$ (void) and $$1$$ (Unit). Note that recursive types exist, but parametric polymorphism does not exist.

The arrows of $$W$$ are the values ​​in the typed lambda calculus described above that are functions. For example, $$lambda x. pi_1 (x)$$ is an element of Homset $$(1 times 1)$$ to $$1$$ , The values ​​are considered only until equality of extension. So $$lambda x. x + x$$ and $$lambda x. 2 * x$$ denote the same arrow.

The list functor $$G$$ sends the object $$3$$ to $$mu alpha mathop {.} 1 + 3 times alpha$$ … that's a list of values ​​pulled from the type $$3$$ ,

I think it is the case that the functor laws are limited $$G$$ leaving an arrow $$f$$ is assigned to an arrow that applies the function $$f$$ once to each item in the list and then collate the list in the same order without duplicating or deleting items.

Counterexample 2

To let $$M$$ to be a free category with an object $$a$$ generated by the non-identity arrow $$f: a to a$$ , $$M$$ isomorphic to $$mathbb {N}$$ , The endofunctor $$J$$, defined as $$J_1 (x) = x$$ and $$J_2 (x) = 2x$$ assigns the objects trivially like the identity-function code, but is not the identity-function code.

Are there a number of decent conditions under which a functor, if satisfied, must be uniquely determined where to send objects?