---- > [!definition] Definition. ([[free module]]) > Let $R$ be a [[ring]]. The **free $R$-module** on a set $A$ is is the 'universal [[module]] $F^{R}(A)$ generated by the set $A, in the sense that it satisfies the following [[universal property]]: There is a set-function $j: A \to F^{R}(A)$ such that any function $f:A \to M$, $M$ an $R$-[[module]], factors through $F^{R}(A)$ as $f=\varphi \circ j$ via a unique $R$-[[linear map]] $\varphi$. In other words, the diagram > ```tikz > \usepackage{tikz-cd} > \usepackage{amsmath} > \begin{document} > % https://tikzcd.yichuanshen.de/#N4Igdg9gJgpgziAXAbVABwnAlgFyxMJZABgBpiBdUkANwEMAbAVxiRADEA9AJQAoBBAJQgAvqXSZc+QigCM5KrUYs2AWVHiQGbHgJEysxfWatEIfqMUwoAc3hFQAMwBOEALZIATNRwQkZJRM2ACsNJ1cPRADfJHlAlTMAHUSYAA8sOBw4AAIAQmzk+mc0AAssMJAXdy8fP0Q44wTKkGoGOgAjGAYABUldGRBnLBsSnEsRIA > \begin{tikzcd} > F^R(A) \arrow[r, "\exists ! \varphi"] & M \\ > A \arrow[u, "j"] \arrow[ru, "f"'] & > \end{tikzcd} > \end{document} > ``` > > commutes. [[terminal objects are unique up to a unique isomorphism|This defines]] $F^{R}(A)$ [[isomorphism|up to]] [[module isomorphism|isomorphism]], if it exists. > Indeed, it always exists: proceeding in analog to the [[free abelian group]] discussion (that is, the special case $R=\mathbb{Z}$), we have $F^{R}(A) \cong R^{\oplus A}$ where $R^{\oplus A}$ denotes the [[direct sum of modules]] $R^{\oplus A}=\bigoplus_{a \in A}R = \big\{ \alpha: A \to R \text{ s.t. } \alpha(a) \neq 0 \text{ for only finitely many }a \in A \big\}.$ > $R^{\oplus A}$ is sometimes called **coordinate $A$-space**. The set $\{ j(a): a \in A \}$ is called the **standard basis** of $R^{\oplus A}$ [^1]. ^b805e4 [^1]: It should be clear that this cleanly generalizes, e.g., the standard basis $(1,0), (0,1)$ of $\mathbb{R}^2$, and that it is a [[basis]] in the linear-algebraic sense. > [!equivalence] > [[Module is free iff admits basis]]. Taken along with the 'justification' below, we have every element $m \in M$ may be written uniquely as a [[linear combination]] $m=\sum_{b \in B} r_{b} b$ > for $B$ a [[basis]] of $M$. (As below, only finitely many coefficients in this sum are nonzero.) ^equivalence > [!justification] Justification. > Define the function $j: A \to R^{\oplus A}$ to be given by $j(a) := (A \xrightarrow{j_{a}}R), \text{ where }j_{a}(x):=\begin{cases} > 0 & x \neq a; \\ > 1 & x=a. > \end{cases}$ > Now notice that any element in $R^{\oplus A}$ may be written uniquely as a *finite* (in the sense that only finitely many $r_{a}$ are nonzero) sum $(r_{a})_{a \in A}= \sum_{a \in A}r_{a} \ j(a);$ > since $j$ is an [[injection]] ([[free group|as always for free groups]]) and hence an [[module isomorphism|isomorphism]] onto its image, it is unambiguous to write this as $\sum_{a \in A} r_{a} \ a.$ > ([[basis|Remind of anything?]]). Just like for [[abelian group|abelian groups]], if it exists then $\varphi$ is determined by commutativity ($\varphi \circ j(a)=f(a)$) and the [[linear map]] definition: > > $\varphi\big( (r_{a})_{a \in A} \big)=\varphi\left( \sum_{a \in A} r_{a}j(a) \right)=\sum_{a \in A}r_{a} \varphi \circ j(a)=\sum_{a \in A}r_{a}f(a).$ > But *does* it exist? Just like in [[free abelian group]], all that needs to be checked is that $\varphi$ is a [[linear map]]: for homogeneity, $\begin{align} > \varphi\big( (sr_{a})_{a \in A} \big) = & \sum_{a \in A} sr_{a}f(a) \\ > = & s \sum_{a \in A} r_{a} f(a) \\ > = & s \varphi\left( \sum_{a \in A} r_{a} j(a)\right) \\ > = & s \varphi\big( (sr_{a})_{a \in A} \big) > \end{align}$ > whereas additivity follows an argument totally analogous to that in [[free abelian group]]. ^ad5645 ---- #### ---- #### 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 > ```