In mathematics, the **tensor product of modules** is a construction that allows arguments about bilinear maps (e.g. multiplication) to be carried out in terms of linear maps. The module construction is analogous to the construction of the tensor product of vector spaces, but can be carried out for a pair of modules over a commutative ring resulting in a third module, and also for a pair of a right-module and a left-module over any ring, with result an abelian group. Tensor products are important in areas of abstract algebra, homological algebra, algebraic topology, algebraic geometry, operator algebras and noncommutative geometry. The universal property of the tensor product of vector spaces extends to more general situations in abstract algebra. It allows the study of bilinear or multilinear operations via linear operations. The tensor product of an algebra and a module can be used for extension of scalars. For a commutative ring, the tensor product of modules can be iterated to form the tensor algebra of a module, allowing one to define multiplication in the module in a universal way.

## Balanced product

For a ring *R*, a right *R*-module *M*, a left *R*-module *N*, and an abelian group *G*, a map *φ*: *M* × *N* → *G* is said to be ** R-balanced**,

**or an**

*R*-middle-linear**if for all**

*R*-balanced product*m*,

*m*′ in

*M*,

*n*,

*n*′ in

*N*, and

*r*in

*R*the following hold:

^{[1]}

^{: 126 }

The set of all such balanced products over *R* from *M* × *N* to *G* is denoted by L_{R}(*M*, *N*; *G*).

If *φ*, *ψ* are balanced products, then each of the operations *φ* + *ψ* and −*φ* defined pointwise is a balanced product. This turns the set L_{R}(*M*, *N*; *G*) into an abelian group.

For *M* and *N* fixed, the map *G* ↦ L_{R}(*M*, *N*; *G*) is a functor from the category of abelian groups to itself. The morphism part is given by mapping a group homomorphism *g* : *G* → *G*′ to the function *φ* ↦ *g* ∘ *φ*, which goes from L_{R}(*M*, *N*; *G*) to L_{R}(*M*, *N*; *G*′).

- Remarks

- Properties (Dl) and (Dr) express biadditivity of
*φ*, which may be regarded as distributivity of*φ*over addition. - Property (A) resembles some associative property of
*φ*. - Every ring
*R*is an*R*-bimodule. So the ring multiplication (*r*,*r*′) ↦*r*⋅*r*′ in*R*is an*R*-balanced product*R*×*R*→*R*.

## Definition

For a ring *R*, a right *R*-module *M*, a left *R*-module *N*, the **tensor product** over *R*

is an abelian group together with a balanced product (as defined above)

which is universal in the following sense:^{[2]}

- For every abelian group
*G*and every balanced product - there is a
*unique*group homomorphism - such that

As with all universal properties, the above property defines the tensor product uniquely up to a unique isomorphism: any other abelian group and balanced product with the same properties will be isomorphic to *M* ⊗_{R} *N* and ⊗. Indeed, the mapping ⊗ is called *canonical*, or more explicitly: the canonical mapping (or balanced product) of the tensor product.^{[3]}

The definition does not prove the existence of *M* ⊗_{R} *N*; see below for a construction.

The tensor product can also be defined as a representing object for the functor *G* → L_{R}(*M*,*N*;*G*); explicitly, this means there is a natural isomorphism:

This is a succinct way of stating the universal mapping property given above. (if a priori one is given this is natural isomorphism, then can be recovered by taking and then mapping the identity map.)

Similarly, given the natural identification ,^{[4]} one can also define *M* ⊗_{R} *N* by the formula

This is known as the tensor-hom adjunction; see also § Properties.

For each *x* in *M*, *y* in *N*, one writes

*x*⊗*y*

for the image of (*x*, *y*) under the canonical map . It is often called a pure tensor. Strictly speaking, the correct notation would be *x* ⊗_{R} *y* but it is conventional to drop *R* here. Then, immediately from the definition, there are relations:

*x*⊗ (*y*+*y*′) =*x*⊗*y*+*x*⊗*y*′(Dl _{⊗})( *x*+*x*′) ⊗*y*=*x*⊗*y*+*x*′ ⊗*y*(Dr _{⊗})( *x*⋅*r*) ⊗*y*=*x*⊗ (*r*⋅*y*)(A _{⊗})

The universal property of a tensor product has the following important consequence:

**Proposition** — Every element of can be written, non-uniquely, as

In other words, the image of generates . Furthermore, if *f* is a function defined on elements with values in an abelian group *G*, then *f* extends uniquely to the homomorphism defined on the whole if and only if is -bilinear in *x* and *y*.

Proof: For the first statement, let *L* be the subgroup of generated by elements of the form in question, and *q* the quotient map to *Q*. We have: as well as . Hence, by the uniqueness part of the universal property, *q* = 0. The second statement is because to define a module homomorphism, it is enough to define it on the generating set of the module.

## Application of the universal property of tensor products

### Determining whether a tensor product of modules is zero

In practice, it is sometimes more difficult to show that a tensor product of *R*-modules is nonzero than it is to show that it is 0. The universal property gives a convenient way for checking this.

To check that a tensor product is nonzero, one can construct an *R*-bilinear map to an abelian group such that . This works because if , then .

For example, to see that , is nonzero, take to be and . This says that the pure tensors as long as is nonzero in .

### For equivalent modules

The proposition says that one can work with explicit elements of the tensor products instead of invoking the universal property directly each time. This is very convenient in practice. For example, if *R* is commutative and the left and right actions by *R* on modules are considered to be equivalent, then can naturally be furnished with the *R*-scalar multiplication by extending

to the whole by the previous proposition (strictly speaking, what is needed is a bimodule structure not commutativity; see a paragraph below). Equipped with this *R*-module structure, satisfies a universal property similar to the above: for any *R*-module *G*, there is a natural isomorphism:

If *R* is not necessarily commutative but if *M* has a left action by a ring *S* (for example, *R*), then can be given the left *S*-module structure, like above, by the formula

Analogously, if *N* has a right action by a ring *S*, then becomes a right *S*-module.

### Tensor product of linear maps and a change of base ring

Given linear maps of right modules over a ring *R* and of left modules, there is a unique group homomorphism

The construction has a consequence that tensoring is a functor: each right *R*-module *M* determines the functor

from the category of left modules to the category of abelian groups that sends *N* to *M* ⊗ *N* and a module homomorphism *f* to the group homomorphism 1 ⊗ *f*.

If is a ring homomorphism and if *M* is a right *S*-module and *N* a left *S*-module, then there is the canonical *surjective* homomorphism:

induced by

^{[5]}

The resulting map is surjective since pure tensors *x* ⊗ *y* generate the whole module. In particular, taking *R* to be this shows every tensor product of modules is a quotient of a tensor product of abelian groups.

See also: Tensor product § Tensor product of linear maps.

### Several modules

(This section need to be updated. For now, see § Properties for the more general discussion.)

It is possible to extend the definition to a tensor product of any number of modules over the same commutative ring. For example, the universal property of

*M*_{1}⊗*M*_{2}⊗*M*_{3}

is that each trilinear map on

*M*_{1}×*M*_{2}×*M*_{3}→*Z*

corresponds to a unique linear map

*M*_{1}⊗*M*_{2}⊗*M*_{3}→*Z*.

The binary tensor product is associative: (*M*_{1} ⊗ *M*_{2}) ⊗ *M*_{3} is naturally isomorphic to *M*_{1} ⊗ (*M*_{2} ⊗ *M*_{3}). The tensor product of three modules defined by the universal property of trilinear maps is isomorphic to both of these iterated tensor products.

## Properties

### Modules over general rings

Let *R*_{1}, *R*_{2}, *R*_{3}, *R* be rings, not necessarily commutative.

- For an
*R*_{1}-*R*_{2}-bimodule*M*_{12}and a left*R*_{2}-module*M*_{20}, is a left*R*_{1}-module.

- For a right
*R*_{2}-module*M*_{02}and an*R*_{2}-*R*_{3}-bimodule*M*_{23}, is a right*R*_{3}-module.

- (associativity) For a right
*R*_{1}-module*M*_{01}, an*R*_{1}-*R*_{2}-bimodule*M*_{12}, and a left*R*_{2}-module*M*_{20}we have:^{[6]}

- Since
*R*is an*R*-*R*-bimodule, we have with the ring multiplication as its canonical balanced product.

### Modules over commutative rings

Let *R* be a commutative ring, and *M*, *N* and *P* be *R*-modules. Then

- (identity)

- (associativity)
^{[7]}Thus is well-defined.

- (symmetry) In fact, for any permutation
*σ*of the set {1, ...,*n*}, there is a unique isomorphism:

- (distributive property) In fact,

- for an index set
*I*of arbitrary cardinality.

- (commutes with finite product) for any finitely many ,

- (commutes with localization) for any multiplicatively closed subset
*S*of*R*,

- as -module. Since is an
*R*-algebra and , this is a special case of:

- (commutes with base extension) If
*S*is an*R*-algebra, writing ,

^{[8]}

- cf. § Extension of scalars.

- (commutes with direct limit) for any direct system of
*R*-modules*M*_{i},

- (tensoring is right exact) if

- is an exact sequence of
*R*-modules, then - is an exact sequence of
*R*-modules, where This is a consequence of:

- (adjoint relation) .

- (tensor-hom relation) there is a canonical
*R*-linear map:

- which is an isomorphism if either
*M*or*P*is a finitely generated projective module (see § As linearity-preserving maps for the non-commutative case);^{[9]}more generally, there is a canonical*R*-linear map: - which is an isomorphism if either or is a pair of finitely generated projective modules.

To give a practical example, suppose *M*, *N* are free modules with bases and . Then *M* is the direct sum
and the same for *N*. By the distributive property, one has:

- ;

i.e., are the *R*-basis of . Even if *M* is not free, a free presentation of *M* can be used to compute tensor products.

The tensor product, in general, does not commute with inverse limit: on the one hand,

(cf. "examples"). On the other hand,

where are the ring of p-adic integers and the field of p-adic numbers. See also "profinite integer" for an example in the similar spirit.

If *R* is not commutative, the order of tensor products could matter in the following way: we "use up" the right action of *M* and the left action of *N* to form the tensor product ; in particular, would not even be defined. If *M*, *N* are bi-modules, then has the left action coming from the left action of *M* and the right action coming from the right action of *N*; those actions need not be the same as the left and right actions of .

The associativity holds more generally for non-commutative rings: if *M* is a right *R*-module, *N* a (*R*, *S*)-module and *P* a left *S*-module, then

as abelian group.

The general form of adjoint relation of tensor products says: if *R* is not necessarily commutative, *M* is a right *R*-module, *N* is a (*R*, *S*)-module, *P* is a right *S*-module, then as abelian group

^{[10]}

where is given by See also: tensor-hom adjunction.

### Tensor product of an *R*-module with the fraction field

Let *R* be an integral domain with fraction field *K*.

- For any
*R*-module*M*, as*R*-modules, where is the torsion submodule of*M*.

- If
*M*is a torsion*R*-module then and if*M*is not a torsion module then .

- If
*N*is a submodule of*M*such that is a torsion module then as*R*-modules by .

- In , if and only if or . In particular, where .

- where is the localization of the module at the prime ideal (i.e., the localization with respect to the nonzero elements).

### Extension of scalars

The adjoint relation in the general form has an important special case: for any *R*-algebra *S*, *M* a right *R*-module, *P* a right *S*-module, using , we have the natural isomorphism:

This says that the functor is a left adjoint to the forgetful functor , which restricts an *S*-action to an *R*-action. Because of this, is often called the extension of scalars from *R* to *S*. In the representation theory, when *R*, *S* are group algebras, the above relation becomes the Frobenius reciprocity.

#### Examples

- for any
*R*-algebra*S*(i.e., a free module remains free after extending scalars.)

- For a commutative ring and a commutative
*R*-algebra*S*, we have:

- in fact, more generally,
- where is an ideal.

- Using the previous example and the Chinese remainder theorem, we have as rings

- This gives an example when a tensor product is a direct product.

## Examples

The structure of a tensor product of quite ordinary modules may be unpredictable.

Let *G* be an abelian group in which every element has finite order (that is *G* is a torsion abelian group; for example *G* can be a finite abelian group or ). Then:^{[11]}

Indeed, any is of the form

If is the order of , then we compute:

Similarly, one sees

Here are some identities useful for calculation: Let *R* be a commutative ring, *I*, *J* ideals, *M*, *N* *R*-modules. Then

- . If
*M*is flat, .^{[proof 1]} - (because tensoring commutes with base extensions)
- .
^{[proof 2]}

**Example:** If *G* is an abelian group, ; this follows from 1.

**Example:** ; this follows from 3. In particular, for distinct prime numbers *p*, *q*,

Tensor products can be applied to control the order of elements of groups. Let G be an abelian group. Then the multiples of 2 in

are zero.

**Example:** Let be the group of *n*-th roots of unity. It is a cyclic group and cyclic groups are classified by orders. Thus, non-canonically, and thus, when *g* is the gcd of *n* and *m*,

**Example:** Consider Since is obtained from by imposing -linearity on the middle, we have the surjection

whose kernel is generated by elements of the form
where *r*, *s*, *x*, *u* are integers and *s* is nonzero. Since

the kernel actually vanishes; hence,

However, consider and . As -vector space, has dimension 4, but has dimension 2.

Thus, and are not isomorphic.

**Example:** We propose to compare and . Like in the previous example, we have: as abelian group and thus as -vector space (any -linear map between -vector spaces is -linear). As -vector space, has dimension (cardinality of a basis) of continuum. Hence, has a -basis indexed by a product of continuums; thus its -dimension is continuum. Hence, for dimension reason, there is a non-canonical isomorphism of -vector spaces:

- .

Consider the modules for irreducible polynomials such that Then,

Another useful family of examples comes from changing the scalars. Notice that

Good examples of this phenomenon to look at are when

## Construction

The construction of *M* ⊗ *N* takes a quotient of a free abelian group with basis the symbols *m* ∗ *n*, used here to denote the ordered pair (*m*, *n*), for *m* in *M* and *n* in *N* by the subgroup generated by all elements of the form

- −
*m*∗ (*n*+*n*′) +*m*∗*n*+*m*∗*n*′ - −(
*m*+*m*′) ∗*n*+*m*∗*n*+*m*′ ∗*n* - (
*m*·*r*) ∗*n*−*m*∗ (*r*·*n*)

where *m*, *m*′ in *M*, *n*, *n*′ in *N*, and *r* in *R*. The quotient map which takes *m* ∗ *n* =(*m*, *n*) to the coset containing *m* ∗ *n*; that is,

is balanced, and the subgroup has been chosen minimally so that this map is balanced. The universal property of ⊗ follows from the universal properties of a free abelian group and a quotient.

More category-theoretically, let σ be the given right action of *R* on *M*; i.e., σ(*m*, *r*) = *m* · *r* and τ the left action of *R* of *N*. Then the tensor product of *M* and *N* over *R* can be defined as the coequalizer:

together with the requirements

If *S* is a subring of a ring *R*, then is the quotient group of by the subgroup generated by , where is the image of under In particular, any tensor product of *R*-modules can be constructed, if so desired, as a quotient of a tensor product of abelian groups by imposing the *R*-balanced product property.

In the construction of the tensor product over a commutative ring *R*, the *R*-module structure can be built in from the start by forming the quotient of a free *R*-module by the submodule generated by the elements given above for the general construction, augmented by the elements *r* ⋅ (*m* ∗ *n*) − *m* ∗ (*r* ⋅ *n*). Alternately, the general construction can be given a Z(*R*)-module structure by defining the scalar action by *r* ⋅ (*m* ⊗ *n*) = *m* ⊗ (*r* ⋅ *n*) when this is well-defined, which is precisely when *r* ∈ Z(*R*), the centre of *R*.

The direct product of *M* and *N* is rarely isomorphic to the tensor product of *M* and *N*. When *R* is not commutative, then the tensor product requires that *M* and *N* be modules on opposite sides, while the direct product requires they be modules on the same side. In all cases the only function from *M* × *N* to *G* that is both linear and bilinear is the zero map.

## As linear maps

In the general case, not all the properties of a tensor product of vector spaces extend to modules. Yet, some useful properties of the tensor product, considered as module homomorphisms, remain.

### Dual module

The **dual module** of a right *R*-module *E*, is defined as Hom_{R}(*E*, *R*) with the canonical left *R*-module structure, and is denoted *E*^{∗}.^{[12]} The canonical structure is the pointwise operations of addition and scalar multiplication. Thus, *E*^{∗} is the set of all *R*-linear maps *E* → *R* (also called *linear forms*), with operations

The dual of a left *R*-module is defined analogously, with the same notation.

There is always a canonical homomorphism *E* → *E*^{∗∗} from *E* to its second dual. It is an isomorphism if *E* is a free module of finite rank. In general, *E* is called a reflexive module if the canonical homomorphism is an isomorphism.

### Duality pairing

We denote the natural pairing of its dual *E*^{∗} and a right *R*-module *E*, or of a left *R*-module *F* and its dual *F*^{∗} as

The pairing is left *R*-linear in its left argument, and right *R*-linear in its right argument:

### An element as a (bi)linear map

In the general case, each element of the tensor product of modules gives rise to a left *R*-linear map, to a right *R*-linear map, and to an *R*-bilinear form. Unlike the commutative case, in the general case the tensor product is not an *R*-module, and thus does not support scalar multiplication.

- Given right
*R*-module*E*and right*R*-module*F*, there is a canonical homomorphism*θ*:*F*⊗_{R}*E*^{∗}→ Hom_{R}(*E*,*F*) such that*θ*(*f*⊗*e*′) is the map*e*↦*f*⋅ ⟨*e*′,*e*⟩.^{[13]}

- Given left
*R*-module*E*and right*R*-module*F*, there is a canonical homomorphism*θ*:*F*⊗_{R}*E*→ Hom_{R}(*E*^{∗},*F*) such that*θ*(*f*⊗*e*) is the map*e*′ ↦*f*⋅ ⟨*e*,*e*′⟩.^{[14]}

Both cases hold for general modules, and become isomorphisms if the modules *E* and *F* are restricted to being finitely generated projective modules (in particular free modules of finite ranks). Thus, an element of a tensor product of modules over a ring *R* maps canonically onto an *R*-linear map, though as with vector spaces, constraints apply to the modules for this to be equivalent to the full space of such linear maps.

- Given right
*R*-module*E*and left*R*-module*F*, there is a canonical homomorphism*θ*:*F*^{∗}⊗_{R}*E*^{∗}→ L_{R}(*F*×*E*,*R*) such that*θ*(*f*′ ⊗*e*′) is the map (*f*,*e*) ↦ ⟨*f*,*f*′⟩ ⋅ ⟨*e*′,*e*⟩.^{[citation needed]}Thus, an element of a tensor product*ξ*∈*F*^{∗}⊗_{R}*E*^{∗}may be thought of giving rise to or acting as an*R*-bilinear map*F*×*E*→*R*.

### Trace

Let *R* be a commutative ring and *E* an *R*-module. Then there is a canonical *R*-linear map:

induced through linearity by ; it is the unique *R*-linear map corresponding to the natural pairing.

If *E* is a finitely generated projective *R*-module, then one can identify through the canonical homomorphism mentioned above and then the above is the **trace map**:

When *R* is a field, this is the usual trace of a linear transformation.

## Example from differential geometry: tensor field

The most prominent example of a tensor product of modules in differential geometry is the tensor product of the spaces of vector fields and differential forms. More precisely, if *R* is the (commutative) ring of smooth functions on a smooth manifold *M*, then one puts

where Γ means the space of sections and the superscript means tensoring *p* times over *R*. By definition, an element of is a tensor field of type (*p*, *q*).

As *R*-modules, is the dual module of ^{[15]}

To lighten the notation, put and so .^{[16]} When *p*, *q* ≥ 1, for each (*k*, *l*) with 1 ≤ *k* ≤ *p*, 1 ≤ *l* ≤ *q*, there is an *R*-multilinear map:

where means and the hat means a term is omitted. By the universal property, it corresponds to a unique *R*-linear map:

It is called the contraction of tensors in the index (*k*, *l*). Unwinding what the universal property says one sees:

**Remark**: The preceding discussion is standard in textbooks on differential geometry (e.g., Helgason). In a way, the sheaf-theoretic construction (i.e., the language of sheaf of modules) is more natural and increasingly more common; for that, see the section § Tensor product of sheaves of modules.

## Relationship to flat modules

In general,

is a bifunctor which accepts a right and a left *R* module pair as input, and assigns them to the tensor product in the category of abelian groups.

By fixing a right *R* module *M*, a functor

arises, and symmetrically a left *R* module *N* could be fixed to create a functor

Unlike the Hom bifunctor the tensor functor is covariant in both inputs.

It can be shown that and are always right exact functors, but not necessarily left exact ( where the first map is multiplication by , is exact but not after taking the tensor with ). By definition, a module *T* is a flat module if is an exact functor.

If and are generating sets for *M* and *N*, respectively, then will be a generating set for Because the tensor functor sometimes fails to be left exact, this may not be a minimal generating set, even if the original generating sets are minimal. If *M* is a flat module, the functor is exact by the very definition of a flat module. If the tensor products are taken over a field *F*, we are in the case of vector spaces as above. Since all *F* modules are flat, the bifunctor is exact in both positions, and the two given generating sets are bases, then indeed forms a basis for

## Additional structure

If *S* and *T* are commutative *R*-algebras, then *S* ⊗_{R} *T* will be a commutative *R*-algebra as well, with the multiplication map defined by (*m*_{1} ⊗ *m*_{2}) (*n*_{1} ⊗ *n*_{2}) = (*m*_{1}*n*_{1} ⊗ *m*_{2}*n*_{2}) and extended by linearity. In this setting, the tensor product become a fibered coproduct in the category of *R*-algebras.

If *M* and *N* are both *R*-modules over a commutative ring, then their tensor product is again an *R*-module. If *R* is a ring, * _{R}M* is a left

*R*-module, and the commutator

*rs*−*sr*

of any two elements *r* and *s* of *R* is in the annihilator of *M*, then we can make *M* into a right *R* module by setting

*mr*=*rm*.

The action of *R* on *M* factors through an action of a quotient commutative ring. In this case the tensor product of *M* with itself over *R* is again an *R*-module. This is a very common technique in commutative algebra.

## Generalization

### Tensor product of complexes of modules

If *X*, *Y* are complexes of *R*-modules (*R* a commutative ring), then their tensor product is the complex given by

with the differential given by: for *x* in *X*_{i} and *y* in *Y*_{j},

^{[17]}

For example, if *C* is a chain complex of flat abelian groups and if *G* is an abelian group, then the homology group of is the homology group of *C* with coefficients in *G* (see also: universal coefficient theorem.)

### Tensor product of sheaves of modules

In this setup, for example, one can define a tensor field on a smooth manifold *M* as a (global or local) section of the tensor product (called **tensor bundle**)

where *O* is the sheaf of rings of smooth functions on *M* and the bundles are viewed as locally free sheaves on *M*.^{[18]}

The **exterior bundle** on *M* is the subbundle of the tensor bundle consisting of all antisymmetric covariant tensors. Sections of the exterior bundle are differential forms on *M*.

One important case when one forms a tensor product over a sheaf of non-commutative rings appears in theory of *D*-modules; that is, tensor products over the sheaf of differential operators.

## See also

## Notes

**^**Nathan Jacobson (2009),*Basic Algebra II*(2nd ed.), Dover Publications**^**Hazewinkel, et al. (2004), p. 95, Prop. 4.5.1**^**Bourbaki, ch. II §3.1**^**First, if then the claimed identification is given by with . In general, has the structure of a right*R*-module by . Thus, for any -bilinear map*f*,*f*′ is*R*-linear**^**Bourbaki, ch. II §3.2.**^**Bourbaki, ch. II §3.8**^**The first three properties (plus identities on morphisms) say that the category of*R*-modules, with*R*commutative, forms a symmetric monoidal category.**^**Proof: (using associativity in a general form)**^**Bourbaki, ch. II §4.4**^**Bourbaki, ch.II §4.1 Proposition 1**^**Example 3.6 of http://www.math.uconn.edu/~kconrad/blurbs/linmultialg/tensorprod.pdf**^**Bourbaki, ch. II §2.3**^**Bourbaki, ch. II §4.2 eq. (11)**^**Bourbaki, ch. II §4.2 eq. (15)**^**Helgason, Lemma 2.3'**^**This is actually the*definition*of differential one-forms, global sections of , in Helgason, but is equivalent to the usual definition that does not use module theory.**^**May & ch. 12 §3**^**See also Encyclopedia of Mathematics - Tensor bundle

## References

- Bourbaki,
*Algebra* - Helgason, Sigurdur (1978),
*Differential geometry, Lie groups and symmetric spaces*, Academic Press, ISBN 0-12-338460-5 - Northcott, D.G. (1984),
*Multilinear Algebra*, Cambridge University Press, ISBN 613-0-04808-4. - Hazewinkel, Michiel; Gubareni, Nadezhda Mikhaĭlovna; Gubareni, Nadiya; Kirichenko, Vladimir V. (2004),
*Algebras, rings and modules*, Springer, ISBN 978-1-4020-2690-4. - Peter May (1999),
*A concise course in algebraic topology*, University of Chicago Press.