# Ext functor

In mathematics, the **Ext functors** of homological algebra are derived functors of Hom functors. They were first used in algebraic topology, but are common in many areas of mathematics. The name "Ext" comes from the connection between the functors and extensions in abelian categories.

## Definition and computation

Let *R* be a ring and let Mod_{R} be the category of modules over *R*. Let *B* be in Mod_{R} and set *T*(*B*) = Hom_{R}(*A,B*), for fixed *A* in Mod_{R}. This is a left exact functor and thus has right derived functors *R ^{n}T*. The Ext functor is defined by

This can be calculated by taking any injective resolution

and computing

Then (*R ^{n}T*)(

*B*) is the homology of this complex. Note that Hom

_{R}(

*A,B*) is excluded from the complex.

An alternative definition is given using the functor *G*(*A*)=Hom_{R}(*A,B*). For a fixed module *B*, this is a contravariant left exact functor, and thus we also have right derived functors *R ^{n}G*, and can define

This can be calculated by choosing any projective resolution

and proceeding dually by computing

Then (*R ^{n}G*)(

*A*) is the homology of this complex. Again note that Hom

_{R}(

*A,B*) is excluded.

These two constructions turn out to yield isomorphic results, and so both may be used to calculate the Ext functor.

## Ext and extensions

### Equivalence of extensions

Ext functors derive their name from the relationship to extensions of modules. Given *R*-modules *A* and *B*, an **extension of A by B** is a short exact sequence of

*R*-modules

Two extensions

are said to be **equivalent** (as extensions of *A* by *B*) if there is a commutative diagram

Note that the Five Lemma implies that the middle arrow is an isomorphism. An extension of *A* by *B* is called **split** if it is equivalent to the **trivial extension**

There is a bijective correspondence between equivalence classes of extensions

of *A* by *B* and elements of

### The Baer sum of extensions

Given two extensions

we can construct the **Baer sum**, by forming the pullback over ,

We form the quotient

that is, we mod out by the relation . The extension

where the first arrow is and the second thus formed is called the Baer sum of the extensions *E* and *E'*.

Up to equivalence of extensions, the Baer sum is commutative and has the trivial extension as identity element. The extension 0 → *B* → *E* → *A* → 0 has for opposite the same extension with exactly one of the central arrows turned to their opposite *eg* the morphism *g* is replaced by *-g*.

The set of extensions up to equivalence is an abelian group that is a realization of the functor ExtTemplate:Su(*A*, *B*)

## Construction of Ext in abelian categories

The above identification enables us to define ExtTemplate:Su(*A*, *B*) even for abelian categories **Ab** without reference to projectives and injectives (even if the category has no projectives or injectives). We simply take ExtTemplate:Su(*A*, *B*) to be the set of equivalence classes of extensions of *A* by *B*, forming an abelian group under the Baer sum. Similarly, we can define higher Ext groups ExtTemplate:Su(*A*, *B*) as equivalence classes of *n-extensions*, which are exact sequences

under the equivalence relation generated by the relation that identifies two extensions

if there are maps *X _{m}* →

*X′*for all

_{m}*m*in {1, 2, ...,

*n*} so that every resulting square commutes, i.e. if there is a chain map

*X:→'*.

The Baer sum of the two *n*-extensions above is formed by letting *XTemplate:Su* be the pullback of *X _{1}* and

*XTemplate:Su*over

*A*, and

*XTemplate:Su*be the pushout of

*X*and

_{n}*XTemplate:Su*under

*B*quotiented by the skew diagonal copy of B; see Weibel, §3.4. Then we define the Baer sum of the extensions to be

## Further properties of Ext

The Ext functor exhibits some convenient properties, useful in computations.

- ExtTemplate:Su(
*A*,*B*) = 0 for*i*> 0 if either*B*is injective or*A*projective.

- A converse also holds: if ExtTemplate:Su(
*A*,*B*) = 0 for all*A*, then ExtTemplate:Su(*A*,*B*) = 0 for all*A*, and*B*is injective; if ExtTemplate:Su(*A*,*B*) = 0 for all*B*, then ExtTemplate:Su(*A*,*B*) = 0 for all*B*, and*A*is projective.

## Ring structure and module structure on specific Exts

One more very useful way to view the Ext functor is this: when an element of ExtTemplate:Su(*A*, *B*) = 0 is considered as an equivalence class of maps *f*: *P _{n}* →

*B*for a projective resolution

*P*

_{*}of

*A*; so, then we can pick a long exact sequence

*Q*

_{*}ending with

*B*and lift the map

*f*using the projectivity of the modules

*P*to a chain map

_{m}*f*

_{*}:

*P*

_{*}→

*Q*

_{*}of degree -n. It turns out that homotopy classes of such chain maps correspond precisely to the equivalence classes in the definition of Ext above.

Under sufficiently nice circumstances, such as when the ring *R* is a group ring over a field *k*, or an augmented *k*-algebra, we can impose a ring structure on ExtTemplate:Su(*k*, *k*). The multiplication has quite a few equivalent interpretations, corresponding to different interpretations of the elements of ExtTemplate:Su(*k*, *k*).

One interpretation is in terms of these homotopy classes of chain maps. Then the product of two elements is represented by the composition of the corresponding representatives. We can choose a single resolution of *k*, and do all the calculations inside Hom_{R}(*P*_{*},*P*_{*}), which is a differential graded algebra, with cohomology precisely Ext_{R}(*k,k*).

The Ext groups can also be interpreted in terms of exact sequences; this has the advantage that it does not rely on the existence of projective or injective modules. Then we take the viewpoint above that an element of ExtTemplate:Su(*A*, *B*) is a class, under a certain equivalence relation, of exact sequences of length *n* + 2 starting with *B* and ending with *A*. This can then be spliced with an element in ExtTemplate:Su(*C*, *A*), by replacing ... → *X*_{1} → *A* → 0 and 0 → *A* → *Y _{n}* → ... with:

where the middle arrow is the composition of the functions *X*_{1} → *A* and *A* → *Y _{n}*. This product is called the

*Yoneda splice*.

These viewpoints turn out to be equivalent whenever both make sense.

Using similar interpretations, we find that ExtTemplate:Su(*k*, *M*) is a module over ExtTemplate:Su(*k*, *k*), again for sufficiently nice situations.

## Interesting examples

If **Z**[*G*] is the integral group ring for a group *G*, then ExtTemplate:Su(**Z**, *M*) is the group cohomology H*(*G,M*) with coefficients in *M*.

For **F**_{p} the finite field on *p* elements, we also have that H*(*G,M*) = ExtTemplate:Su(**F**_{p}, *M*), and it turns out that the group cohomology doesn't depend on the base ring chosen.

If *A* is a *k*-algebra, then ExtTemplate:Su(*A*, *M*) is the Hochschild cohomology HH*(*A,M*) with coefficients in the *A*-bimodule *M*.

If *R* is chosen to be the universal enveloping algebra for a Lie algebra over a commutative ring *k*, then ExtTemplate:Su(*k*, *M*) is the Lie algebra cohomology with coefficients in the module *M*.

## See also

- Tor functor
- The Grothendieck group is a construction centered on extensions
- The universal coefficient theorem for cohomology is one notable use of the Ext functor

## References

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}