Draft lesson.
Injective objects in locally module stacks
Written by GPT-6.1 Sol (OpenAI), October 2026. Public domain (CC0).
An injective object permits extensions of morphisms along monomorphisms. Local module descriptions make kernels and cokernels easy to recognize, but being injective is a condition on global morphisms. We construct global injective embeddings by pulling back to the discrete space of points. The same adjunction proves that direct image preserves injectives, and gives a derived adjunction for bounded-below complexes. Finite spaces make both the construction and a nonzero higher direct image explicit.
Let \(X\) be any topological space, \(\mathcal R\) a sheaf of commutative rings, and \(\mathfrak M\) an \(\mathcal R\)-linear stack locally equivalent on an open covering \((U_i)\) to \(\operatorname{Mod}(\mathcal A_i)\), where the unital \(\mathcal R|_{U_i}\)-algebras \(\mathcal A_i\) may be noncommutative and vary with \(i\). Fix universes in which the covering, the diagrams considered and all Hom sets are small; use choice in those universes.
Noncommutative gluing by invertible bimodules, Sections 1–6, supplies coherent local descriptions and their equivalences. Relative pullback of locally module stacks, Sections 1–6, constructs the stack \(f^\boxtimes\mathfrak M\), the functor on objects \(f^{-1}\), its right adjoint \(f_*\), and extension by zero for an open inclusion. Here \(f^{-1}\) always means that functor on objects, with target \((f^\boxtimes\mathfrak M)(Y)\); it is not the ordinary inverse-image stack before enlarging its objects. Injective replacements and right derived functors, Sections 1–5 and Example 6.1, constructs bounded-below resolutions and proves the divisible-group extension theorem. Derived morphisms through quasi-isomorphism roofs, Section 5, proves the K-injective Hom test. We use these proved results with the hypotheses verified below.
1. The global abelian category
Proposition 1.1. The category \(\mathfrak M(X)\) is abelian. Restriction to an open subset is exact. A sequence is exact, or a morphism is monic or epic, if and only if it has that property in every local module description.
Proof. A zero object and finite biproducts in the module descriptions match on overlaps: every equivalence preserves their universal properties. The unique comparison maps obey the triple-overlap equations because both composites have the same universal property. Stack descent gives global zero objects and biproducts.
For a global morphism \(u:F\to G\), take its kernel and cokernel in each module description. An overlap equivalence sends these to the corresponding kernel and cokernel. Uniqueness again supplies coherent comparison maps, so descent gives global objects and arrows. A map into \(F\) killed by \(u\) factors uniquely through each local kernel; those factors agree on overlaps and glue. This proves the global kernel property. The same argument with arrows out of \(G\) proves the cokernel property. The coimage-to-image comparison is invertible locally, since module sheaves form abelian categories; its local inverses glue, proving the abelian axiom globally.
Restriction of module sheaves preserves kernels. It preserves cokernels because cokernels are the sheafification of the sectionwise quotient, and sheafification commutes with restriction to opens. Consequently the global constructions restrict to the local ones. The kernel and cokernel tests now give all the assertions. A global morphism is zero exactly when all its restrictions are zero, by descent for morphisms. Hom sets are small: they are subsets of the products of local Hom sets satisfying the overlap equations. \(\square\)
2. Colimits, filtered exactness and a generator
Proposition 2.1. The category \(\mathfrak M(X)\) has all small limits and colimits, exact filtered colimits, and a generator. In particular it is a Grothendieck abelian category.
Proof. In a module-sheaf category, limits are formed sectionwise and colimits by sheafifying sectionwise module colimits. For limits the sheaf condition follows from the fact that compatible section families can be matched in every diagram component and the resulting sections still satisfy the diagram equations. The colimit construction has its universal property since maps from a presheaf colimit to a sheaf extend uniquely through sheafification. Both constructions commute with restriction to opens.
Compute the limit or colimit of a global diagram in each \(\mathcal A_i\)-description. Every overlap equivalence preserves the universal property, hence provides unique coherent comparison maps. Descent produces the global object, and the universal maps in either direction glue uniquely. This proves the required universal properties for every small diagram.
For filtered colimits of module sheaves, stalks are filtered colimits of the stalk modules. Filtered colimits of modules preserve short exact sequences: an element that maps to zero does so at a later stage, where exactness supplies a preimage; an element represented in a kernel or an equality of two representatives is likewise tested at a later common stage. Surjectivity is represented at one stage. These element tests prove all three exactness assertions. Stalks detect sheaf exactness, so filtered colimits are exact in each local description and hence globally by Proposition 1.1.
For an open \(V\subseteq U_i\), write \(\mathcal A_i[V]\) for extension by zero of \(\mathcal A_i|_V\) to \(U_i\). The extension-by-zero adjunction identifies \[ \operatorname{Hom}_{\mathcal A_i}(\mathcal A_i[V],N)=N(V). \tag{2.1} \] Thus \(G_i=\bigoplus_{V\subseteq U_i\ {\rm open}}\mathcal A_i[V]\) is a generator locally: a nonzero morphism of sheaves is nonzero on some section on some \(V\), and the corresponding summand detects it. Transfer \(G_i\) to \(\mathfrak M(U_i)\). For \(j_i:U_i\hookrightarrow X\), the proved extension-by-zero construction gives \(j_{i!}\dashv j_i^{-1}\). Therefore \[ G=\bigoplus_i j_{i!}G_i \tag{2.2} \] detects any nonzero global morphism: it is nonzero on some \(U_i\), a map from \(G_i\) detects it there, adjunction extends that detector to \(j_{i!}G_i\), and a map from the coproduct can be chosen zero on its other summands. This is precisely the generator condition that \(\operatorname{Hom}(G,-)\) is faithful. Together with Proposition 1.1 and exact filtered colimits, it proves the assertion. We will construct injectives directly, rather than use an existence theorem about Grothendieck categories. \(\square\)
These statements do not say that an arbitrary inverse image preserves infinite products. Products above are computed before taking stalks; the counterexample in the relative-pullback lesson explains this distinction.
3. Injective embeddings over an arbitrary ring
Put \(E=\mathbb Q/\mathbb Z\). Example 6.1 of the injective-replacements lesson proves that divisible groups are injective, using extensions to maximal intermediate subgroups and then adjoining one element. It also proves that \(E\) detects every nonzero element of an abelian group: map its cyclic subgroup nontrivially to \(E\), then extend that character using injectivity.
For any unital ring \(A\), define the left \(A\)-module \[ D_A=\operatorname{Hom}_{\mathbb Z}(A,E),\qquad (a\lambda)(b)=\lambda(ba). \tag{3.1} \] Associativity holds because \(a(a'\lambda)(b)=\lambda(baa')=((aa')\lambda)(b)\), and the identity acts as identity.
Proposition 3.1. The module \(D_A\) is an injective cogenerator. Every left \(A\)-module \(M\) admits a monomorphism into an injective module.
Proof. The natural bijection \[ \operatorname{Hom}_A(M,D_A)\simeq \operatorname{Hom}_{\mathbb Z}(M,E) \tag{3.2} \] sends \(h\) to \(m\mapsto h(m)(1)\). Its inverse sends a character \(\chi\) to \(h_\chi(m)(b)=\chi(bm)\). Indeed \(h_\chi(am)(b)=\chi(bam)=(a h_\chi(m))(b)\). Conversely, \(h(bm)(1)=(b h(m))(1)=h(m)(b)\), which verifies the other inverse. Precomposing a module map commutes with both formulas.
An injection of \(A\)-modules is an injection of abelian groups. A map to \(D_A\) corresponds to a character; that character extends by injectivity of \(E\). Transposing back gives the module extension, proving injectivity. For \(m\ne0\), choose a character \(\chi\) nonzero at \(m\); evaluation at \(1\) shows \(h_\chi(m)\ne0\), proving the cogenerator assertion.
The map \[ j_M:M\longrightarrow J_A(M)= \prod_{h\in\operatorname{Hom}_A(M,D_A)}D_A,\qquad j_M(m)=(h(m))_h \tag{3.3} \] is consequently monic. A product of injective modules is injective: extend a map from a submodule in each coordinate, choose all the extensions, and collect them into a map to the product. Thus its target is injective. For completeness, this embedding is functorial: for \(t:M\to N\), the \(h\)-coordinate of \(J_A(t)(z)\), for \(h:N\to D_A\), is \(z_{ht}\). This rule respects identities and composition and gives \(J_A(t)j_M=j_Nt\). No additivity of the functor \(J_A\) is asserted. \(\square\)
4. Pull back to the discrete space of points
Let \(X_d\) be the set \(X\) with discrete topology and \(p:X_d\to X\) the identity on underlying points. At \(x\), choose a local model containing \(x\) and put \(B_x=(\mathcal A_i)_x\). The pullback-stack construction and singleton descent give \[ (p^\boxtimes\mathfrak M)(X_d)\simeq \prod_{x\in X}\operatorname{Mod}(B_x). \tag{4.1} \] Indeed a sheaf on a singleton is its module of sections over the stalk ring, and on a discrete space the singleton covering has no nonempty distinct overlaps. Every module family therefore descends, and morphisms are exactly coordinate maps. A different local model at \(x\) changes this description by the stalk of the invertible Morita bimodule. It is an equivalence, so changes no categorical assertion.
Under (4.1), \(L=p^{-1}\) takes local stalks. Stalks are exact by the neighborhood-colimit construction proved in the relative-pullback lesson. They detect zero module sheaves and zero sheaf morphisms: a section with all germs zero vanishes on a neighborhood of each point and hence vanishes by the sheaf axiom. Together with local descent, this proves that \(L\) is exact and faithful. In particular it reflects monomorphisms, by applying it to the kernel.
The category in (4.1) has enough injectives. Apply (3.3) in every coordinate. A family of injective modules is injective in the product category, because extensions along a coordinatewise monomorphism can be chosen independently. This proves enough injectives on the discrete pullback, including for infinite point sets.
5. Descend an actual global injective embedding
We first isolate the exactness needed for an adjunction \(L:\mathcal C\to\mathcal D\) with right adjoint \(G:\mathcal D\to\mathcal C\) between abelian categories.
Lemma 5.1. If \(L\) is exact, then its right adjoint \(G\) preserves injective objects and is left exact. If \(L\) is also faithful, the adjunction unit \(\eta_F:F\to GLF\) is monic.
Proof. For an injective \(I\in\mathcal D\), a map \(N\to GI\) corresponds to \(LN\to I\). A monomorphism \(N\hookrightarrow N'\) remains monic under \(L\), so the latter map extends to \(LN'\to I\). Its transpose extends the original map, proving injectivity of \(GI\).
Right adjoints preserve kernels: applying the adjunction to a candidate kernel identifies maps to it with maps killed by the corresponding arrow. They also preserve finite products and zero objects by their universal properties. Here the right adjoint is additive, since the adjunction is between additive functors in the module descriptions; equivalently its maps preserve addition under those natural Hom bijections. Thus it is left exact.
The triangle identity says \(\epsilon_{LF}L\eta_F=1_{LF}\). Hence \(L\eta_F\) is split monic. Exactness gives \(L(\ker\eta_F)=0\). Faithfulness implies an object sent to zero is zero, since its identity must then be zero. Therefore \(\ker\eta_F=0\), as required. \(\square\)
Theorem 5.2. For every topological space \(X\), the category \(\mathfrak M(X)\) has enough injectives.
Proof. For \(F\), choose a monomorphism \(a:LF\hookrightarrow I\) in (4.1) with \(I\) injective. The proved pullback adjunction supplies \(G=p_*\). Lemma 5.1 gives a monic unit, a monomorphism \(Ga\) by left exactness, and an injective target \(GI\). Their composite \[ F\xrightarrow{\eta_F}p_*p^{-1}F \xrightarrow{p_*a}p_*I \tag{5.1} \] is the promised embedding. This uses exactness of \(p^{-1}\) and preservation of injectives by \(p_*\); left exactness of \(p_*\) alone would not prove that its target is injective. No separation assumption on \(X\) was used. \(\square\)
In a single algebra model the target has sections \(\prod_{x\in U}I_x\), with the section algebra acting through its germs. A section maps to its family of embedded germs. For a general locally module stack, (5.1) supplies the coherent version without choosing one algebra on all of \(X\). It does not identify the stalk of this product sheaf with its one coordinate at \(x\).
6. Exact inverse image and injective-preserving direct image
Let \(f:Y\to X\) be continuous and let \(\mathfrak M_Y=f^\boxtimes\mathfrak M\). Its inverse image on objects is locally the ordinary inverse image of \(\mathcal A_i\)-module sheaves with target ring \(f^{-1}\mathcal A_i\); no additional extension of scalars is being taken. The stalk at \(y\) is the original stalk at \(f(y)\). Exactness therefore follows from exactness on stalks and Proposition 1.1.
Its right adjoint \(f_*:\mathfrak M_Y(Y)\to\mathfrak M(X)\) is additive and left exact and takes injective objects to injective objects, by Lemma 5.1. Morita changes of local description are exact equivalences. They preserve injectives too: an extension problem transfers through an exact quasi-inverse, is solved in the other category, and transfers back. Thus the statements are independent of the chosen local algebras.
For \(g:Z\to Y\), identify \(g^\boxtimes\mathfrak M_Y\) with \((fg)^\boxtimes\mathfrak M\) by the established pullback composition comparison. The natural isomorphism \(g^{-1}f^{-1}\simeq(fg)^{-1}\) induces the right-adjoint comparison \[ f_*g_*\simeq(fg)_*. \tag{6.1} \] It is determined by the composite Hom adjunction, hence is natural and coherent for three maps. This assertion concerns injective preservation, not exactness of direct image; Solution 8.4 computes its failure of exactness.
7. Bounded-below derived adjunction and composition
Write \(\mathcal C_X=\mathfrak M(X)\), \(\mathcal C_Y=\mathfrak M_Y(Y)\). Both have enough injectives by Theorem 5.2. The injective-replacements lesson therefore supplies a bounded-below injective replacement \(B\to I_B\) for every \(B\in D^+(\mathcal C_Y)\), and \[ Rf_*B=f_*I_B\quad\hbox{in }D^+(\mathcal C_X). \tag{7.1} \] Because \(f_*\) preserves injectives, the representing complex on the right is itself bounded below and injective term by term.
Theorem 7.1. Exact inverse image induces an adjunction \(f^{-1}\dashv Rf_*\) on these bounded-below derived categories. For composable continuous maps as in Section 6 there is a natural coherent isomorphism \(Rf_*Rg_*\simeq R(fg)_*\).
Proof. An exact additive functor preserves cohomology and quasi-isomorphisms, so applying \(f^{-1}\) term by term defines its functor on \(D^+\). For bounded-below representatives \(A,B\), the ordinary degreewise adjunction gives a bijection of chain maps \[ \operatorname{Hom}_{\mathrm{Ch}}(f^{-1}A,I_B) \simeq\operatorname{Hom}_{\mathrm{Ch}}(A,f_*I_B). \tag{7.2} \] Naturality with respect to differentials makes the chain equations equivalent. A homotopy \(h^n:(f^{-1}A)^n\to I_B^{n-1}\) transposes degreewise to \(\bar h^n:A^n\to(f_*I_B)^{n-1}\); naturality and additivity turn \(u-v=dh+hd\) into the same equation for the transposes. Thus (7.2) descends to homotopy classes.
The two target complexes \(I_B\) and \(f_*I_B\) are K-injective by the bounded-below theorem in the roofs lesson. Its Hom test identifies both homotopy Hom groups with derived Hom groups. Composing with \(B\simeq I_B\) gives naturally \[ \operatorname{Hom}_{D^+(\mathcal C_Y)}(f^{-1}A,B) \simeq \operatorname{Hom}_{D^+(\mathcal C_X)}(A,Rf_*B). \tag{7.3} \] Naturality includes derived arrows: into these targets every roof has its unique homotopy representative, and precomposition with a quasi-isomorphism is bijective. The identity arrows under this bijection give the unit and counit; the two triangle identities follow from naturality and the fact that the bijections are inverse. Thus this is a full adjunction.
For composition choose a bounded-below injective complex \(I\) on \(Z\). The complex \(g_*I\) is already a bounded-below injective complex on \(Y\); in deriving \(f_*\) it needs no further replacement. Both \(Rf_*Rg_*\) and \(R(fg)_*\) are consequently represented by \(f_*g_*I\simeq(fg)_*I\), with comparison (6.1). On arrows they apply the same functors to the unique homotopy comparison maps between replacements. This proves naturality. Changes of resolutions are compatible by the uniqueness proved in the injective-replacements lesson, Section 5. For three maps the ordinary right-adjoint comparisons already obey the coherence equation, so the comparisons on the same injective complex do as well. \(\square\)
The theorem imposes a lower bound on complexes, not an upper bound on their derived cohomology. It proves no finite injective dimension for a general algebra or space.
8. Four graded exercises with complete solutions
Exercise 8.1 — The point embedding on a two-point space (introductory)
Let \(X=\{0,1\}\) have opens \(\varnothing,\{1\},X\), and use the constant field sheaf \(k\). Describe \(p_*\) from the discrete point space, compute its unit on a sheaf, and construct an injective resolution of length at most one.
Solution. A sheaf is an arrow \(r:V\to W\), with sections \(V\) on \(X\) and \(W\) on \(\{1\}\). There is no additional sheaf equation: a cover of \(X\) must contain \(X\), and a nonempty cover of \(\{1\}\) contains that open. A morphism is a pair \((a,b)\) with \(br=r'a\). Kernels and cokernels are componentwise.
For a pair of point modules \((I_0,I_1)\), \[ p_*(I_0,I_1)=(I_0\oplus I_1\xrightarrow{\operatorname{pr}_2}I_1). \tag{8.1} \] In fact a map from \((V\xrightarrow rW)\) to (8.1) is uniquely a pair \(a:V\to I_0,\ b:W\to I_1\): its first component is \(v\mapsto(a(v),b(r(v)))\) and its second component is \(b\). This gives the adjunction with the point functor \((V,W)\), with inverse obtained by taking the first projection and the second component.
The unit has components \(v\mapsto(v,r(v))\) and \(1_W\). Its cokernel is \((W\to0)\), since the quotient of \(V\oplus W\) by that graph is \(W\), by \((v,w)\mapsto w-r(v)\). Thus \[ 0\to(V\xrightarrow rW)\to (V\oplus W\xrightarrow{\operatorname{pr}_2}W) \to(W\to0)\to0 \tag{8.2} \] is exact, with the displayed quotient map in the first component and zero in the second. Every vector space is injective: extend a linear map from a subspace by choosing a basis complement and setting it zero there. The middle object is \(p_*(V,W)\), and the final object is \(p_*(W,0)\), so both are injective by Lemma 5.1. They give the claimed resolution in degrees zero and one, including when the spaces are infinite-dimensional. \(\square\)
Exercise 8.2 — Classify injective arrows (intermediate)
In the category of Exercise 8.1, characterize injective objects and exhibit a sheaf with injective stalks that is not injective.
Solution. An arrow \(r:V\to W\) is injective as an object if and only if \(r\) is surjective. To prove necessity, consider the monomorphism \[ (0\to W)\hookrightarrow(W\xrightarrow1W). \tag{8.3} \] The map from its source to \((V\xrightarrow rW)\) has first component zero and second component identity. An extension must have second component identity, so its first component \(s:W\to V\) must satisfy \(rs=1_W\). Hence \(r\) is surjective.
Conversely, if \(r\) is surjective, choose a linear right inverse \(s\). The map \(\ker r\oplus W\to V\), \((z,w)\mapsto z+s(w)\), is invertible, with inverse \(v\mapsto(v-sr(v),r(v))\). It identifies the arrow with \(p_*(\ker r,W)\), which is injective. In particular \((k\to0)\) is injective whereas \((0\to k)\) is not. The stalks at \(0,1\) of the latter are \(0,k\), both injective vector spaces. Its failed extension along (8.3), with \(W=k\), shows exactly why stalkwise injectivity does not imply global injectivity. \(\square\)
Exercise 8.3 — An explicit torsion example over the integers (advanced)
Use the same two-point topology with the constant ring sheaf \(\mathbb Z\). For \(F=(\mathbb Z\xrightarrow{\bmod 2}\mathbb Z/2)\), give an injective embedding, compute its cokernel with its restriction map, and show that the cokernel is injective.
Solution. Put \(E=\mathbb Q/\mathbb Z\). Both \(\mathbb Q\) and \(E\) are injective abelian groups by the divisible-group proof. The object \[ I=(\mathbb Q\oplus E\xrightarrow{\operatorname{pr}_2}E) =p_*(\mathbb Q,E) \tag{8.4} \] is injective. Define \(F\to I\) by \[ n\longmapsto(n,n/2+\mathbb Z),\qquad \bar n\longmapsto n/2+\mathbb Z. \tag{8.5} \] The second map is well-defined and monic, the first is monic by its rational coordinate, and the restriction square commutes.
The cokernel in the second component is \(E/\langle1/2+\mathbb Z\rangle\), which identifies with \(E\) by multiplication by two: that map is surjective and its kernel is exactly the displayed order-two subgroup. The first component identifies with \(E\oplus E\) by \[ [(q,z)]\longmapsto (a,w)=(q+\mathbb Z,\ z-q/2+\mathbb Z). \tag{8.6} \] The relation \((q,z)\sim(q+n,z+n/2)\) leaves both coordinates unchanged. Conversely zero coordinates mean \(q=n\in\mathbb Z\) and \(z=n/2+\mathbb Z\), precisely an element of the embedded subgroup. Given \(a,w\), choose a rational representative \(q\) of \(a\) and take \(z=w+q/2+\mathbb Z\), proving surjectivity.
Its restriction map is \(2z=a+2w\), so the cokernel is \[ C=(E\oplus E\xrightarrow{(a,w)\mapsto a+2w}E). \tag{8.7} \] The invertible coordinate change \((a,w)\mapsto(w,a+2w)\), with inverse \((u,v)\mapsto(v-2u,u)\), identifies \(C\) with \(p_*(E,E)\). Thus it is injective too. Sequence \(0\to F\to I\to C\to0\), with quotient maps (8.6) and multiplication by two, is an explicit injective resolution of \(F\). This proves a length-one bound for this object; it asserts no such bound for every module-sheaf category. \(\square\)
Exercise 8.4 — A nonzero higher direct image on three points (advanced)
Let \(X=\{a,b,c\}\) have opens \(\varnothing,\{c\},\{a,c\},\{b,c\},X\), and let \(f:X\to\{*\}\). Work over a field \(k\). For the sheaf \(K\) with point values \(K_a=K_b=0,\ K_c=k\) and zero restriction maps toward \(c\), compute all \(R^nf_*K\) and exhibit failure of exactness of \(f_*\).
Solution. A sheaf is a diagram \((V_a\to V_c\leftarrow V_b)\). Its sections on \(X\) are the pairs whose images in \(V_c\) agree: \[ \Gamma F=V_a\times_{V_c}V_b. \tag{8.8} \] To check that every such diagram gives a sheaf, set its sections on the three proper nonempty opens to \(V_c,V_a,V_b\). The only additional nontrivial cover is \(X=\{a,c\}\cup\{b,c\}\); its gluing condition is exactly (8.8), and its refinements satisfy the same condition. Thus this describes the full category, with componentwise exactness.
For a point family \((J_a,J_b,J_c)\), its direct image from the discrete space has diagram \[ (J_a\oplus J_c\xrightarrow{\operatorname{pr}_2}J_c \xleftarrow{\operatorname{pr}_2}J_b\oplus J_c). \tag{8.9} \] One may either compute its sections as the product of the point modules on each open, or check the adjunction: maps from a diagram are freely determined by maps \(V_x\to J_x\), and their other coordinates are obtained by composing the restrictions toward \(c\).
For \(J=(0,0,k)\), (8.9) is \(I^0=(k\xrightarrow1k\xleftarrow1k)\). The point unit embeds \(K\) into it by zero at \(a,b\) and identity at \(c\). Its cokernel is \(I^1=(k\to0\leftarrow k)\), the direct image of \((k,k,0)\). Both are injective by Lemma 5.1, so \[ 0\to K\to I^0\xrightarrow d I^1\to0 \tag{8.10} \] is an injective resolution, with \(d_a=d_b=1_k,\ d_c=0\). Direct image to the point is global sections; applying (8.8) gives the complex \[ k\xrightarrow{t\mapsto(t,t)}k\oplus k \tag{8.11} \] in degrees zero and one. Its kernel is zero, and its cokernel is \(k\), identified by \((u,v)\mapsto v-u\), whose kernel is the diagonal. Consequently \[ R^0f_*K=0,\qquad R^1f_*K\simeq k,\qquad R^nf_*K=0\quad(n\ne1). \tag{8.12} \] In particular \(I^0\to I^1\) is epic as a sheaf morphism, but its direct image is the nonsurjective diagonal map \(k\to k^2\). This is the promised failure of exactness. The same functor nevertheless preserves injectives, because its inverse image is exact. These assertions concern different properties and are fully compatible. \(\square\)
9. Further reading
Andrea D'Agnolo and Pietro Polesello, Stacks of twisted modules and integral transforms, Section 2.6, Lemma 2.18, gives the discrete-point method for locally module stacks. The proof above spells out the ring injectives and the adjunction steps used in that construction.
The Stacks Project, injective abelian groups, injective modules, and enough injectives for module sheaves on a ringed space, provides related algebraic and sheaf constructions. The last reference treats the single-ring-sheaf case.