----- > [!proposition] Proposition. ([[tensoring preserves isomorphisms and surjectivity, but perhaps not injectivity]]) > Let $f:M \to M'$ and $g:N \to N'$ be $R$-[[linear map|linear]] maps. Then: > 1. If $f$ and $g$ are $R$-[[module]] [[isomorphism|isomorphisms]], then so is their [[tensor functor|tensor product]] $f \otimes g$ > 2. If $f$ and $g$ are [[surjection|surjective]] then so is $f \otimes g$ > 3. *Even if* $f$ and $g$ are both [[injection|injective]], $f \otimes g$ *may not be injective*. This is related to the important notion of [[flat module|flatness]]. > [!proof]- Proof. ([[tensoring preserves isomorphisms and surjectivity, but perhaps not injectivity]]) > > **(1).** Claim: $f^{-1} \otimes g ^{-1}:M' \otimes_{R} N' \to M \otimes_{R} N$ is the inverse $R$-linear map. Indeed, > $(f \otimes g) \circ (f ^{-1} \otimes g^{-1})(m' \otimes n')=(f \otimes g)(f ^{-1}(m') \otimes g ^{-1}(n'))=f f ^{-1}(m') \otimes g g^{-1}(n')=m' \otimes n'$ > and similar for the other direction. > > **(2).** It suffices to check that the image of $f \otimes g$, an $R$-[[submodule]] of $M' \otimes_{R} N'$, contains all [[tensor product of modules|pure tensors]] $m' \otimes n'$ in $M' \otimes_{R}N'$. Since $m'=f(m)$ for some $m \in M$ and $n'=g(n)$ for some $n \in N$, this is clear. > > **(3).** Consider $f:\mathbb{Z} \to \mathbb{Z}$ given by $f(x)=px$, and the [[identity map]] $\id_{ \mathbb{Z} / p \mathbb{Z}}:\mathbb{Z}/p\mathbb{Z} \to \mathbb{Z} / p\mathbb{Z}$. Each is an injective $\mathbb{Z}$-linear map, but $(f \otimes \id_{\mathbb{Z} / p\mathbb{Z}})(a \otimes b)= (pa) \otimes b=a \otimes (pb)=a \otimes 0 = 0,$ > meaning that $f \otimes \mathbb{Z} / p\mathbb{Z}$ is the zero map — certainly not injective! ----- #### ---- #### References > [!backlink] > ```dataview > TABLE rows.file.link as "Further Reading" > FROM [[]] > FLATTEN file.tags as Tag > WHERE Tag = "#definition" OR Tag = "#theorem" OR Tag = "#MOC" OR Tag = "#proposition" OR Tag = "#axiom" > GROUP BY Tag > ``` > [!frontlink] > ```dataview > TABLE rows.file.link as "Further Reading" > FROM outgoing([[]]) > FLATTEN file.tags as Tag > WHERE Tag = "#definition" OR Tag = "#theorem" OR Tag = "#MOC" OR Tag = "#proposition" OR Tag = "#axiom" > GROUP BY Tag > ```