Injection/Surjection between sets of functions Consider three non-empty sets $A$, $B$ and $C$ and a function $ f_1:A \rightarrow B$. 
Further consider the following definitions $f_2:A^C→B^C : x \mapsto f∘x$ and
$ f_3 : C^B \rightarrow C^A: y↦y∘f $.
It can be proven: 
(a) that if $f_1$ is injective then $f_2$ is injective and $f_3$ is surjective and (b)  that if $f_1$ is surjective then $f_2$ is surjective and $f_3$ is injective.
Question:
I usually have no problems with proving functions are surjective or injective
or with function compositions but I am a little bit lost of what exactly the definitions are stating. 
Because "sets of all functions (e.g. from $C$ to $A$ etc.) are involved and because x and y appear on both sides of the functions definitions I am a little bit lost of what is being mapped to what here.
I reread the definitions many times but I still lack an intutitive picture
of the mapping chain.
If somebody could enlighten me with a small intuitive description or maybe 
a small graphical sketch of what is being mapped to what so I can understand the problem a little bit better before I start proving. 
Thank you.
 A: It's perfectly natural to be a little confused when encountering a question like this. In such a case, sticking to the definitions, and maybe imagining a small example, is the way to go if you ask me. In the particular case of your question, I don't really se any nice way of imagining what $f_2$ looks like, and I don't think it's all that useful to try.
Let's try to prove (a). Since it's an if then else statement, we can start by assuming that $f_1$ is injective.
Now we want to prove that $f_2$ is injective. We can do that by assuming that $f_2(x_1)=f_2(x_2)$ and concluding that $x_1=x_2$. So let's assume $f_2(x_1)=f_2(x_2)$.
Since $f_2$'s domain is $A^C$, we know that $x_1,x_2$ are both functions from $C$ to $A$, and we can prove they are equal if $x_1(c)=x_2(c)$ for all $c\in C$. So, we assume that $c\in C$, and we need to prove $x_1(c)=x_2(c)$.

OK, now, there was a lot of assuming done, let's just write down all assumptions and what we want to prove:
Assumptions:


*

*$f_1$ is injective

*$f_2(x)=f_1\circ x$

*$x_1,x_2\in A^C$

*$f_2(x_1)=f_2(x_2)$

*$c\in C$


Goal:


*

*We want to show that $x_1(c)=x_2(c)$.


Let's go. From (4), we have that $f_2(x_1)=f_2(x_2)$, meaning that $f_2(x_1)(c) = f_2(x_2)(c)$ (remember, $f_2(x)$ is a mapping from $C$ to $B$).
From the definition of $f_2$, we can rewrite this into $$(f_1\circ x_1)(c)=(f_1\circ x_2)(c)$$
by the definition of $\circ$, this becomes
$$f_1(x_1(c))=f_1(x_2(c))$$
Now, since $f_1$ is injective, we know that if $f_1(y_1)=f_1(y_2)$, then $y_1=y_2$, so, inserting $y_1=x_1(c)$ and $y_2=x_2(c)$, we can conclude that $$x_1(c)=x_2(c)$$
Since this is true, and $c$ is arbitrary, we can conclude $x_1=x_2$, and from there, conclude that $f_2$ is injective.

See? It's all definitions all the way up and down. As long as you are careful not to jump to conclusions, you'll be safe.
You can use a similar method to prove that $f_3$ is surjective. Write down what it means, and prove it:
$f_3$ is surjective if, for every $x\in C^A$, there exists some $y\in C^B$ such that $f_3(y)=x$.
So, let $x\in C^A$, and let's see what $y$ should look like. Since $y\in C^B$, we can define $y$ if we know what $y(b)$ should be for every $b\in B$. However, we only know what $f_3(y)$ must be for every $a\in A$. So let's start with that.
Assumptions:


*

*$f_1$ is injective

*$f_3(y) = y\circ f_1$

*$x\in C^A$.

*$a\in A$.


Goal:


*

*We want to define $y$ such that $f_3(y)=x$.


Let's rewrite the condition $f_3(y)=x$. Using (2), we get $y\circ f_1=x$, and on our particular $a$, that reduces to $y(f_1(a)) = x(a)$.
So, we know that if $b=f_1(a)$ for some $a$, then $y(b)$ must equal $x(a)$. For other values $b\in B$, we can define $y$ to be anything we want. Using injectivity of $f_1$, you can prove that such a definition of $y$ is OK in the sense that each $b\in B$ has a unique value $y(b)$.
