semimodule

A semimodule is a generalization of vector spaces to a scalar semiring. It consists of a scalar semiring α and an additive monoid of "vectors" β, connected by a "scalar multiplication" operation r • x : β (where r : α and x : β) with some natural associativity and distributivity axioms similar to those on a ring.

module

A module is a generalization of vector spaces to a scalar ring. It consists of a scalar ring α and an additive group of "vectors" β, connected by a "scalar multiplication" operation r • x : β (where r : α and x : β) with some natural associativity and distributivity axioms similar to those on a ring.

submodule

A submodule of a module is one which is closed under vector operations. This is a sufficient condition for the subset of vectors in the submodule to themselves form a module.

vector_space

A vector space is the same as a module, except the scalar ring is actually a field. (This adds commutativity of the multiplication and existence of inverses.) This is the traditional generalization of spaces like ℝ^n, which have a natural addition operation and a way to multiply them by real numbers, but no multiplication operation between vectors.

subspace

Subspace of a vector space. Defined to equal submodule.