JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

Free, Projective, Injective, Flat: Four Kinds of Good Behavior

Bases can fail over a ring, so we measure how close a module comes to having one. Free is best; projective, injective and flat are the three weaker virtues, each defined by a lifting, extending, or exactness property.

Free modules: bases when you can get them

A free module is one with a basis: a generating set that is also R-linearly independent. Equivalently F ≅ ⨁ᵢ R, a direct sum of copies of R. Free modules are the closest thing to vector spaces, and they enjoy the universal property that defines bases everywhere: a map out of a free module is determined freely by where the basis goes. Over a field every module is free (that's just the basis theorem), but over Z the module Z/2Z is not free — it has torsion, and free modules over a domain are torsion-free.

Projective and injective: lifting and extending

P is projective if every surjection onto P splits — equivalently, every map out of P lifts along any surjection: given M ↠ N and P → N, there is P → M making the triangle commute. The cleanest characterization: P is projective iff it is a direct summand of a free module. Every free module is projective; the converse can fail. Over a PID (or any local ring) projective and free coincide, which is why projectivity rarely surfaces in a first course — it needs rings rougher than Z.

Dualize every arrow and you get injective: I is injective if every map into I extends — given an injection A ↪ B and a map A → I, it extends to B → I. The dual of “summand of a free” is harder to picture, but Baer's criterion makes injectivity testable: I is injective iff every map from an ideal a → I extends to R → I. Over Z, injective = divisible: Q and Q/Z are the standard injective Z-modules.

Flat: tensoring without damage

The functor M ⊗_R – (see the tensor product) always preserves surjections but can destroy injections. M is flat if tensoring with M preserves injections too — i.e., M ⊗_R – is exact. Free ⟹ projective ⟹ flat, and none of the arrows reverses in general. Over a PID, flat ⟺ torsion-free, which gives a one-line test.

Why Z/2Z is NOT flat over Z — a tensor that kills an injection.

Start with the injection  f : Z -> Z,  f(x) = 2x.  (multiplication by 2)
It is injective: 2x = 0 in Z forces x = 0.

Apply  - (x)_Z  Z/2Z  to the whole map. Using  Z (x) Z/2Z = Z/2Z:
  f (x) id : Z/2Z -> Z/2Z   becomes  [a] |-> [2a] = [0].
So the tensored map is the ZERO map on Z/2Z.

But the original f was INJECTIVE and the tensored map is NOT
(its kernel is all of Z/2Z). Tensoring with Z/2Z broke injectivity
=> Z/2Z is not flat. Consistent with: over a PID, flat = torsion-free,
and Z/2Z is all torsion.

Meanwhile Q IS flat over Z (it is torsion-free); tensoring with Q
is exact -- this is just "localization," passing to rational scalars.
Tensoring with Z/2Z destroys an injection, so Z/2Z is not flat.