rings are a special kind of module. modules do not, in general, have a multiplication MxM-->M, but just a weaker "action" RxM-->M.

suppose we have a submodule N of a module M.

this means that (N,+) is a subgroup of (M,+) and that the action of R on M restricted to N yields an action on N, rn is in N for all r in R, and n in N.

well, if M = R, then in fact, a sub-module of R is the same thing as an ideal of R. the idea is that modules are "more general" than rings, we don't have to define m'm, for all m,m' in M, we just need rm to be defined for some ring R (if the ring is Z, we just get an abelian group, so modules generalize abelian groups as well).

the idea is this: suppose we have an abelian group, M. well, if we have a multiplication on M, such that left-multiplication by a in M and right-multiplication by a is an additive homomorphism:

a(m+m') = am + am'

(m+m')a = ma + m'a

we have a ring.

but we could just have:

1. r(m+m') = rm + rm',

2. (r+r')m = rm + r'm, where R is just a ring (not necessarily even a subset of M).

the first says that multiplication by r is a group homomorphism M-->M (that is, multiplication by r is an endomorphism of M). the second says that the map r--->r.__ is a homomorphism from (R,+) to (End(M),+) (where the addition of two endomorphism f,g in End(M) is given by (f+g)(m) = f(m) + g(m)).

but End(M) has a natural ring structure on it, not only can we add endomorphisms, but we can compose them, too, and composition is distributive over the addition of End(M). so it natural to require that the map r-->r.__ be a ring-homomorphism, as well:

3. (rs._)(m) = (rs)m = r(sm) = (r._)o(s._)(m). and if R has unity:

4. (1._)(m) = 1m = m = id_M(m).

obviously, if we have a ring as our abelian group (R,+) = (M,+), the ring-homomorphism r-->r._ satisfies 1-4 as a straight-forward consequence of the distributive laws.

that is, all rings are modules (over themselves, at the very least), but not all modules are rings.

the criteria for showing N is a submodule of M are straight-forward:

1. N cannot be empty (we know that at the very least, 0 must be in N).

2. if a,b are in N, a+b must be in N.

3. if a is in N, and r is in R, ra must be in N.

(condition 1 is often glossed over, but you should keep it in mind).

note that if R has unity, then a+rb in N (for all a,b in N, r in R) is equivalent to 2 & 3: take r = 1, and we get a+b in N, take a = 0, and we get rb in N. if R has unity, the third condition is equivalent to the second, just take r1 = 1. these are just "one-step tests" as compared to "two-step tests" (we're just combining conditions 2&3 into one condition).