Hom, tensor and the exactness of module limits
Written and self-checked by GPT-6.1 Sol (OpenAI), Ultra reasoning effort, October 2026. Original text: CC0.
The existence of a limit does not say that it preserves an exact sequence. Modules distinguish three situations: Hom preserves kernels, tensor preserves cokernels, and a filtered colimit preserves both. Products and direct sums preserve exactness too, but an inverse limit over a countable tower can already fail to preserve a surjection. We will keep these indexing conditions explicit.
Fix a universe. Rings are unital and modules and indexing categories are small in that universe. Let \(k\) be a commutative unital ring and \(R\) an associative unital \(k\)-algebra with central scalars. Left \(R\)-modules form \(\operatorname{Mod}(R)\); right modules form \(\operatorname{Mod}(R^{op})\). Use choice for vector-space bases and families of lifts. Retain Ring actions and tensor–Hom, §§3–5, Kernels and cokernels, §§1–2 and §5, and Splittings, Theorem 1.1, with their complete proofs. The following constructions specialize or extend their exact interfaces.
1. Hom and tensor keep different ends of a sequence
For left modules \(M,X\), \(\operatorname{Hom}_R(M,X)\) is a \(k\)-module by pointwise scalars. The complete internal-Hom construction in Ring actions, Theorem 5.2, specializes to this object for \(\mathcal C=\operatorname{Mod}(k)\). Its product and coproduct hypotheses hold by the independent coordinate construction in §2 and the retained module-colimit proof. To check the identification, its represented maps correspond by currying: \[ \begin{gathered} \operatorname{Hom}_k(Y,\operatorname{Hom}_R(M,X))\\ \simeq\operatorname{Hom}_R(M,\operatorname{Hom}_k(Y,X)),\\ F(y)(m)=G(m)(y). \end{gathered} \tag{1.1} \] Each direction is linear on both inputs, and the \(R\)-linearity equation is exactly the same equation after evaluation at every \(y\). The inverse formulas agree pointwise. They commute with precomposition and postcomposition, so the identification is natural, with the specified contravariance in \(M\).
Thus the complete left-exactness proof of that theorem supplies left exactness in each variable, valued in \(\operatorname{Mod}(k)\). In the first variable it sends a right-exact row to a left-exact row with arrows reversed. In the second it preserves the kernel and its inclusion. This also follows from the full universal Hom tests in Kernels, §1; all maps on Homs are \(k\)-linear, so those kernel identifications are identifications in \(\operatorname{Mod}(k)\), not only of sets.
For a right module \(N\) and a left module \(X\), retain Ring actions, Theorem 5.1, for \(N\otimes_R X\). Its represented maps are exactly the \(k\)-bilinear functions \(b:N\times X\to Y\) satisfying \[ b(nr,x)=b(n,rx). \tag{1.2} \] Indeed the corresponding right-linear map is \(n\mapsto(x\mapsto b(n,x))\), with the right action on \(\operatorname{Hom}_k(X,Y)\) given by precomposition with \(x\mapsto rx\). Evaluation is the inverse. This checks the ordinary balanced tensor interpretation, including the order of multiplication and the central \(k\)-action. The theorem's complete two-variable cokernel proofs therefore give right exactness in each variable. No commutativity of \(R\) is used.
When \(R\) is a field, these two bifunctors are exact in each variable. The complete basis-extension proof in Locally nilpotent operators, §1, specialized with ground field \(R\), shows that every \(R\)-vector space is injective. Retain the full splitting interface and additive-preservation proof in Extending maps, §§2 and 5: every short exact vector-space row splits, and every additive functor takes a split row to a split exact row. The opposite row splits too. Both Hom functors and both tensor functors are additive by the retained constructions, even when their output is considered as a \(k\)-module. Hence each is exact. The choices of splittings are not asserted to be natural.
2. Small products give every small limit
For a small family of left \(R\)-modules, the Cartesian product has coordinatewise addition and scalar multiplication. Its projections are linear; a family of linear maps from a module \(T\) has the unique linear factor sending \(t\) to its tuple of images. The empty product is the zero module. This proves all small product universal properties. All small coproducts and all small module colimits are already supplied, with their full element and relation proofs, in Kernels, §5; retain them.
Here is the additional general abelian-category assertion. Let \(\mathcal A\) be abelian and possess all small products. For any small diagram \(D:I\to\mathcal A\), form \[ \begin{gathered} V=\prod_{i\in\operatorname{Ob}I}D_i,\\ W=\prod_{a:i\to j}D_j,\\ \pi_a\Delta=D(a)\pi_i-\pi_j,\\ L=\ker\Delta. \end{gathered} \tag{2.1} \] The products and their universal properties define the unique \(\Delta\). A map \(T\to V\) is a family of maps \(x_i:T\to D_i\). It is killed by \(\Delta\) exactly when \(D(a)x_i=x_j\) for every arrow. The kernel universal property therefore gives a unique factor through \(L\) exactly for each cone. Composing the kernel inclusion with the projections gives a cone, and this equivalence proves its full universal property. For an empty diagram it gives zero. Thus \(\mathcal A\) has all small limits.
Conversely products are the limits of discrete diagrams, so having all small limits implies having all small products. Applying this complete argument in \(\mathcal A^{op}\), which is abelian and exchanges products with coproducts and kernels with cokernels, proves the full dual: all small colimits exist exactly when all small coproducts exist. This includes the empty diagram. The construction extends the retained finite formula by using actual small products; it does not infer infinite products from additivity. In particular, \(\operatorname{Mod}(R)\) has all small limits and colimits for every unital \(R\).
3. Finite relations become equations at one filtered stage
An index category \(I\) is filtered when it is nonempty, any two objects map to a common object, and any two parallel arrows become equal after postcomposition with one arrow. Both of the latter requirements matter.
First, any finite graph of objects and specified arrows in \(I\) admits a cocone. For an empty graph choose any object, using nonemptiness. Otherwise repeated common targets give an object receiving arrows from all the finitely many vertices. For a graph arrow \(a:i\to j\), its two resulting composites from \(i\) to that target are parallel. Equalize them by postcomposition. Repeat this for each of the finitely many graph arrows. Previously imposed equations survive postcomposition, so the final maps form the required cocone. This proof requires no assumption that the graph is acyclic.
Let \(M:I\to\operatorname{Mod}(R)\). Retain its complete direct-sum/relations colimit construction from Kernels, §5, and denote the structural maps by \(\phi_i\). Every element of the colimit has a representative in one \(M_i\): its representative in the direct sum has finite support, and a common target turns that finite sum into a single element.
The precise equality test is \[ \begin{gathered} \phi_i(x)=\phi_j(y)\\ \Longleftrightarrow\quad M(a)x=M(b)y\\ \text{for some }a:i\to t,\ b:j\to t. \end{gathered} \tag{3.1} \] The reverse implication is one of the defining colimit relations. For the forward implication, the difference of the two direct-sum representatives lies in the relation submodule. Write it as a finite sum of left scalar multiples of the generating differences attached to diagram arrows. Absorb those scalar multiples into their elements, using left linearity. Take the finite graph containing their sources, targets and arrows, and also \(i,j\). Its cocone defines a linear map from the sum of these finitely many modules to \(M_t\). It kills every generating difference in that expression, and sends the two original elements to \(M(a)x\) and \(M(b)y\). Their images are equal. This proves (3.1) for arbitrary, possibly noncommutative, \(R\).
The same argument with zero at the same vertex yields the sharper test \[ \begin{gathered} \phi_i(x)=0 \\ \Longleftrightarrow M(a)x=0 \\ \text{for some }a:i\to t. \end{gathered} \tag{3.2} \] All these statements concern the already constructed module colimit, so its module laws and universal property remain the retained complete foundation. The finite-graph argument supplies the residual representative and equality proof for a general filtered category.
4. Filtered colimits preserve homology and exactness
The AI-integrated Stacks baseline, Algebra, lemma-directed-colimit-exact, contains the complete directed-set homology proof. Retain that stronger homology assertion. Its representative lemma has an omitted proof, and its displayed indexing hypothesis is a directed set. Section 3 supplies the complete missing representative interface for all small filtered categories and arbitrary left modules. Here are the full checks needed for that broader assertion.
Let \(L_i\xrightarrow{f_i}M_i\xrightarrow{g_i}N_i\) be a natural diagram of complexes over filtered \(I\). The transitions preserve kernels and images by their commuting squares, so they induce a diagram \[ H_i=\ker g_i/\operatorname{im}f_i. \tag{4.1} \] The colimit maps compose to zero, because they do so after every structural map. Sending a cycle to its colimit class defines compatible linear maps \(H_i\to H\), where \(H\) is the homology of the colimit complex. They give the canonical map \[ \operatorname{colim}_iH_i\longrightarrow H. \tag{4.2} \] It is surjective. A homology class is represented by a cycle in \(\operatorname{colim}M_i\), hence by some \(m\in M_i\). Its image in \(\operatorname{colim}N_i\) is zero. By (3.2), an arrow \(i\to j\) makes its image an actual cycle in \(M_j\), whose class maps to the given class.
It is injective. Represent an element of \(\operatorname{colim}H_i\) by a class of a cycle \(m\in M_i\). If its image in \(H\) is zero, the colimit class of \(m\) is the image of some element of \(\operatorname{colim}L_i\). Represent the latter by \(l\in L_j\). Apply (3.1) in the \(M\)-diagram to \(m\) and \(f_j(l)\). At the common target \(t\), naturality gives \[ M(a)m=f_t(L(b)l). \tag{4.3} \] The resulting cycle class in \(H_t\) is zero, so its colimit class is zero. This proves injectivity. The construction of (4.2) commutes with morphisms of diagrams of complexes, since each map sends the class of a cycle to the class of its image. Thus it is the natural homology isomorphism, with the specified structural maps.
Apply it to every position of a pointwise exact row, including a zero endpoint. Each stage homology vanishes, so the colimit row is exact. Colimits of zero diagrams are zero by the universal property. Hence the functor \(\operatorname{colim}:\operatorname{Mod}(R)^I\to\operatorname{Mod}(R)\) is exact. Its additivity follows either from the direct-sum/relations model or by checking sums of induced maps after every jointly generating \(\phi_i\). The full pointwise abelian and exactness proof in Pointwise abelian structure, §2 supplies the source category's exactness convention. No derived assertion or assumption about inverse limits enters the argument.
5. Discrete diagrams preserve exactness at both ends
For a small family of short exact sequences of modules, taking the direct sum is exact. A finite-support element of the kernel has finitely many component preimages under the left inclusions; these form a finite-support preimage. Componentwise injectivity gives injectivity of the first map. An element of the target direct sum has finite support, so lifting its finitely many components proves surjectivity of the last map.
Taking the product is exact as well. Its first map is injective componentwise. An element of the middle kernel has unique preimages under the component inclusions, giving its preimage tuple. For the last map, choose a preimage of every component of a target tuple; choice yields a tuple in the product. No finite-support restriction applies here. The empty family gives the zero short exact sequence in both cases. Addition of maps is componentwise, so both functors are additive and exact for every small discrete index category. This product assertion uses choice; it is not a claim that every inverse-limit functor is exact.
6. Four graded exercises with full solutions
Exercise 1 (introductory: opposite failures over dual numbers). Let \(K\) be a field, \(R=K[\varepsilon]/(\varepsilon^2)\), and \(S=R/(\varepsilon)\). Apply \(\operatorname{Hom}_R(-,S)\) and \(S\otimes_R-\) to \(0\to\varepsilon R\to R\to S\to0\). Compute the arrows that prevent exactness at the missing end. Regard \(S\) as a right module for the tensor calculation.
Solution. The module \(\varepsilon R\) is isomorphic to \(S\), by \(\bar a\mapsto a\varepsilon\). Each of the three Hom modules is \(S\). A map \(R\to S\) is determined by the image of \(1\), and kills \(\varepsilon\), so restriction to \(\varepsilon R\) is zero. Precomposition with \(R\to S\) is the identity under these identifications. Thus the Hom row is \(0\to S\xrightarrow{1}S\xrightarrow0S\); its last map is not surjective since \(S\ne0\).
For any left \(M\), there is a compatible isomorphism \(S\otimes_RM\simeq M/\varepsilon M\). Send \(\bar a\otimes m\) to \(am\) modulo \(\varepsilon M\); balancing and independence of \(a\) hold in that quotient. The inverse sends \([m]\) to \(\bar1\otimes m\): it kills \(\varepsilon m\) by balancing, and the two composites are identities on generators. Hence all three tensors are \(S\). The induced map from \(\varepsilon R\) to \(R\) becomes zero modulo \(\varepsilon R\); the quotient map induces the identity. The tensor row is \(S\xrightarrow0S\xrightarrow1S\to0\). Its first map is not injective. These computations retain exactly left exactness for Hom and right exactness for tensor.
Exercise 2 (intermediate: common targets alone are insufficient). Let \(R\ne0\) be any unital ring. Let \(I\) have two objects \(0,1\), two distinct arrows \(u,v:0\to1\), and identities. Set \(B_0=R\), \(B_1=R\oplus R\), with \(B(u)r=(r,0)\) and \(B(v)r=(0,r)\). Let \(A_0=0\), \(A_1=R\oplus R\), included naturally in \(B\), and let \(C=B/A\). Compute the colimits of the pointwise short exact row and exhibit its failure.
Solution. Here \(C_0=R\), \(C_1=0\), with zero transition maps. The colimit of \(A\) is \(R\oplus R\), since its only nonzero vertex has no relations. The colimit of \(B\) identifies \((r,0)\) with \((0,r)\), so is the quotient of \(R\oplus R\) by \(\{(r,-r):r\in R\}\). Addition of coordinates induces an isomorphism of this quotient with \(R\): its inverse is \(r\mapsto[(r,0)]\), and subtracting \((0,b)\) from \((b,0)\) is exactly the defining relation. These maps are left linear even when \(R\) is noncommutative. The colimit of \(C\) is zero, because both arrows kill the entire nonzero vertex. Thus the first induced map is \((a,b)\mapsto a+b\), and kills the nonzero tuple \((1,-1)\). The row loses injectivity. Every pair of objects has common target \(1\), but no arrow out of \(1\) equalizes \(u,v\). The parallel-arrow axiom of filteredness is essential.
Exercise 3 (hard: a tower whose inverse limit loses surjectivity). Put \(R=K[x]\) for a field \(K\). For \(n\ge1\), use \(0\to x^nR\to R\to R/x^nR\to0\), with transition maps from \(n+1\) to \(n\) given by inclusion, identity and quotient. Identify its inverse-limit row and give an explicit compatible target family which has no lift.
Solution. A compatible tuple in the middle constant tower is one polynomial, so that limit is \(R\). In the first tower it must be one polynomial belonging to every \(x^nR\). A nonzero polynomial has a finite least nonzero coefficient and cannot belong to all these ideals; thus the first limit is zero.
Each class in \(R/x^nR\) has a unique polynomial representative of degree less than \(n\). Compatibility says exactly that their coefficients agree whenever both occur. Hence the last limit is the module of all sequences \((a_0,a_1,\ldots)\in K^{\mathbb N}\), with \(x\) acting by the right shift with initial zero; a polynomial acts by its finite linear combination of these shifts. Sending a sequence to its truncated polynomials and reading off coefficients are inverse \(R\)-linear maps. This defines the usual formal power-series module without an analytic convergence assertion. The map from \(R\) sends a polynomial to its coefficient sequence. It is injective and its image consists of sequences with finite support. The compatible family represented at level \(n\) by \(1+x+\cdots+x^{n-1}\) has all coefficients equal to \(1\), so has no polynomial lift. Therefore the inverse-limit row \(0\to0\to R\to K^{\mathbb N}\) is not right exact. The index is cofiltered, and Section 4 concerns filtered colimits instead.
Exercise 4 (advanced: an infinite Hom probe sees the stages). For any nonzero unital \(R\), let \(F_n=\bigoplus_{j=1}^nR\) with its standard inclusions, and \(H=\bigoplus_{j\ge1}R\). Identify the map \(\operatorname{colim}_n\operatorname{Hom}_R(H,F_n)\to\operatorname{Hom}_R(H,H)\), prove it is injective and not surjective, and describe its image. Explain why this is compatible with Section 1.
Solution. The retained finite-support coproduct proof identifies \(\operatorname{colim}F_n\) with \(H\): every finite-support vector occurs in a stage, and compatible maps out of the stages specify exactly the maps out of \(H\). A linear endomorphism of \(H\) is specified by the finite-support image of each basis vector. Equivalently it is a matrix whose columns have finite support, without a common bound on their row indices. The maps factoring through one \(F_n\) are exactly those matrices whose nonzero entries all lie in their first \(n\) rows. The transition maps on Homs are injective, because the inclusions \(F_n\to H\) are injective. If two stage maps give the same endomorphism, move to the larger stage; injectivity of its inclusion makes them equal there. The colimit map is therefore injective, and its image consists precisely of endomorphisms with such a uniform finite row bound. The identity has a nonzero entry in row \(j\) of column \(j\) for every \(j\), so is outside this image. Left exactness of \(\operatorname{Hom}_R(H,-)\) preserves kernels and finite limits; it does not assert preservation of this filtered colimit. The example distinguishes those two properties directly.
7. References
- Pierre Schapira, An Introduction to Categories and Homological Algebra, lecture notes, version of 1 March 2026, Sections 1.2 and 5.2, for modules, tensor products and exact functors.
- The exact complete programme sections linked above. Their original statements, proofs and stronger interfaces remain in place; this lesson supplies the ordinary-module specialization and residual arbitrary-small-index constructions.
- The AI-integrated Stacks baseline, Algebra, directed colimits,
lemma-directed-colimit-exact, including its full homology proof. The source retains GFDL 1.2. Its directed-set assertion is distinguished from the general filtered-category proof in §§3–4, which fills the representative obligation and records the noncommutative left-module interface. No source text is copied.