Prove: If $n \ge 0$, then $S^n$ is not a retract of $D^{n+1}$ using homology functors. 
Prove: If $n \ge 0$, then $S^n$ is not a retract of $D^{n+1}$ using
  homology functors.

The book I'm reading says: For each $n \ge 0$, there is a homology functor $H_n$ with the following properties: for each topological space $X$ there is an abelian group $H_n(X)$, and for each continuous function $f:X \rightarrow Y$ there is a homomorphism $H_n(f):H_n(X) \rightarrow H_n(Y)$, such that 

$H_n(g \circ f) = H_n(X) \circ H_n(Y)$
$H_n(S^n)\neq 0, n \ge 0$
$H_n(D^{n+1})=0, n \ge 0$
$H_n(1_X)$ is the identity function on $H_n(X)$

This is the only thing said so far about what a homology functor is, the book has developed no theory besides what it in the above box.
The book begins the proof by assuming there's a retraction, converting the commutative $1 = r \circ i$ ($i$ is the inclusion mapping) graph to homology functors, and then states that since $H_n(D^{n+1})=0$, then $H_n(1)=0$.  But $H_n(1)$ is the identity on $H_n(S^n)$, which contradicts the identity relationship because $H_n(S^n) \neq 0.$
What I don't understand is how does it follow that $H_n(1)=0$ and $H_n(D^{n+1})=0$?  What does it mean that a homomorphism is $0$, $H_n(f)=0$, and what does it mean for an abelian group to be $0$, $H_n(D^{n+1})=0$?  Is this both identity notation for group and homomorphisms, respectively?
 A: So suppose you have maps $i\colon S^n\to D^{n+1}$ and $r\colon D^{n+1}\to S^n$ such that $r\circ i=1\colon S^n\to S^n$. Since $H_n$ is a (covariant) functor it preserves composition of arrows, so you have $H_n(1)=H_n(r)\circ H_n(i)$. 
We have $H_n(i)\colon H_n(S^n)\to H_n(D^{n+1})$, a morphism of groups. But $H_n(D^{n+1})=0$, (the zero group), so necessarily $H_n(i)=0$, (the zero map), since the only possible image is $0$. Then $H_n(r)\circ H_n(i)=H_n(r)\circ 0=0$, the zero here being the $0$ map. The reason for this is because any group morphism composed with the $0$ morphism is the zero morphism, because $H_n(r)$ always sends the element $0$ to the element $0$, as a morphism of abelian groups. 
So
$$
H_n(1)=H_n(r)\circ H_n(i)=H_n(r)\circ 0=0\quad (\text{the zero map}).
$$
But this is a contradiction, since functors preserve identity arrows, so $H_n(1)\colon H_n(S^n)\to H_n(S^n)$ must be the identity map on these groups, so it must be nonzero since $H_n(S^n)\neq 0$, that is, $H_n(S^n)$ is not the zero group.
