Why is Tor computed using projective resolutions rather than injective resolutions, and what does it mean for a module to be flat in terms of Tor?
Think about your answer, then reveal below.
Model answer: Tor is the left derived functor of the tensor product. Derived functors of a right-exact functor F are computed by replacing the argument with a projective resolution, applying F, and taking homology — this 'fills in' the left-exactness that F lacks. Injective resolutions are used for right derived functors of left-exact functors (like Hom, which gives Ext). Since − ⊗ B is right-exact (not left-exact), its derived functors go to the left, requiring projective resolutions. A module A is flat precisely when Tor_n(A, B) = 0 for all n ≥ 1 and all B, meaning tensoring with A is already exact and no derived correction is needed.
The left/right distinction is fundamental: left derived functors correct for failure of left-exactness (Tor from tensor), right derived functors correct for failure of right-exactness (Ext from Hom). Using an injective resolution for Tor would produce incorrect (and in fact trivially zero) answers in many cases because projective modules are exactly the ones for which tensoring is exact — they are the 'acyclic objects' for the tensor product functor.