Solution (source code)

= Solution

An $R$-module $M$ is <Noetherian module>[Noetherian] when every <submodule> is finitely generated, equivalently when every ascending chain of submodules stabilizes.

A <free module> is an $R$-module with a <basis of a module>[basis]: every element has a unique expression as a finite linear combination of basis elements.

A <flat module> $M$ is one for which the <tensor product of modules>[tensor functor] $-\otimes_RM$ is exact. Since tensor products are always right exact, it is equivalent to require that tensoring with $M$ preserve injections.

A <projective module> $P$ has the lifting property: for every surjection $E\twoheadrightarrow F$ and every map $P\to F$, there is a map $P\to E$ making the resulting triangle commute. Equivalently, $P$ is a direct summand of a <free module>.