§ Fundamental theorem of homological algebra [TODO ]
 Let $M$ be an $R$ module.
 A resolution of $M$ is an exact chain complex
... > M2 > M1 > M0 > M > 0
 A projective resolution of
P*
of M
is a resolution such that all the P*
are projective.
§ Fundamental theorem
 1. Every
R
module has projective resolution.  2. Let
P*
be a chain complex of proj. R modules. Let Q*
be a chain complex with vanishing homology in degree greater than zero. Let [P*, Q*]
be the group of chain homotopoloy classes of chain maps from P*
to Q*
. We are told that this set is in bijection with maps [H0(P*), H0(Q*)]
. That is, the map takes f*
to H0[f*]
is a bijection.
§ Corollary: two projective resolutions are chain homotopy equivalent
 Let
P1 > P0 > M
and ... > Q1 > Q0 > M
be two projective resolutions. 
H0(P*)
has an epi mono factorization P0 >> H0(P*)
and H0(P*) ~= M
.
§ Proof of existence of projective resolution
 Starting with
M
there always exists a free module P0
that is epi onto M
, given by taking the free module of all elements of M
. So we get P0 > M > 0
.  Next, we take the kernel, which gives us:
ker e

 e
vP0 > M > 0
 The next
P1
must be projective, and it must project onto ker e
for homology to vanish. So we choose the free module generated by elements of ker e
to be P1
!
ker e
^ 
 v e
P1 P0 > M > 0
 Composing these two maps gives us
P1 > P0 > M
. Iterate until your heart desires.
§ Chain homotopy classes of chain maps