Module (mathematics)In mathematics, a module is a generalization of the notion of vector space in which the field of scalars is replaced by a ring. The concept of module generalizes also the notion of abelian group, since the abelian groups are exactly the modules over the ring of integers. Like a vector space, a module is an additive abelian group, and scalar multiplication is distributive over the operation of addition between elements of the ring or module and is compatible with the ring multiplication.
Projective moduleIn mathematics, particularly in algebra, the class of projective modules enlarges the class of free modules (that is, modules with basis vectors) over a ring, by keeping some of the main properties of free modules. Various equivalent characterizations of these modules appear below. Every free module is a projective module, but the converse fails to hold over some rings, such as Dedekind rings that are not principal ideal domains.
Free moduleIn mathematics, a free module is a module that has a basis, that is, a generating set consisting of linearly independent elements. Every vector space is a free module, but, if the ring of the coefficients is not a division ring (not a field in the commutative case), then there exist non-free modules. Given any set S and ring R, there is a free R-module with basis S, which is called the free module on S or module of formal R-linear combinations of the elements of S. A free abelian group is precisely a free module over the ring Z of integers.
Finitely generated moduleIn mathematics, a finitely generated module is a module that has a finite generating set. A finitely generated module over a ring R may also be called a finite R-module, finite over R, or a module of finite type. Related concepts include finitely cogenerated modules, finitely presented modules, finitely related modules and coherent modules all of which are defined below. Over a Noetherian ring the concepts of finitely generated, finitely presented and coherent modules coincide.
Module homomorphismIn algebra, a module homomorphism is a function between modules that preserves the module structures. Explicitly, if M and N are left modules over a ring R, then a function is called an R-module homomorphism or an R-linear map if for any x, y in M and r in R, In other words, f is a group homomorphism (for the underlying additive groups) that commutes with scalar multiplication. If M, N are right R-modules, then the second condition is replaced with The of the zero element under f is called the kernel of f.
Flat moduleIn algebra, flat modules include free modules, projective modules, and, over a principal ideal domain, torsion free modules. Formally, a module M over a ring R is flat if taking the tensor product over R with M preserves exact sequences. A module is faithfully flat if taking the tensor product with a sequence produces an exact sequence if and only if the original sequence is exact. Flatness was introduced by in his paper Géometrie Algébrique et Géométrie Analytique.
SoftwareSoftware is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists of machine language instructions supported by an individual processor—typically a central processing unit (CPU) or a graphics processing unit (GPU). Machine language consists of groups of binary values signifying processor instructions that change the state of the computer from its preceding state.
Software architectureSoftware architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations. The architecture of a software system is a metaphor, analogous to the architecture of a building. It functions as the blueprints for the system and the development project, which project management can later use to extrapolate the tasks necessary to be executed by the teams and people involved.
Free softwareFree software or libre software or libreware is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, not price; all users are legally free to do what they want with their copies of a free software (including profiting from them) regardless of how much is paid to obtain the program.
Proprietary softwareProprietary software is software that, according to the free and open-source software community, grants its creator, publisher, or other rightsholder or rightsholder partner a legal monopoly by modern copyright and intellectual property law to exclude the recipient from freely sharing the software or modifying it, and—in some cases, as is the case with some patent-encumbered and EULA-bound software—from making use of the software on their own, thereby restricting their freedoms.