2020 James B. Wilson
Colorado State University
Algebra is the study of equations, e.g.
\[x^2+1=0\]
Abstract algebra is when we see every symbol in an equation as a variable, including +, and =.
We are engaged in replacing "=".
\(x=y\) if, and only if, no property can tell them apart.
I.e. for any sentence \(P(z)\), with a variable \(z\)
\(P(x)\) is true if, and only if, \(P(y)\) is true.
So x=y means:
\[(\forall P)(P(x)\Leftrightarrow P(y))\]
\(x\equiv y\) if, and only if, after possibly transforming x and y, no property can tell them apart.
\[(\exists f)(\forall P)(P(f(x))\Leftrightarrow P(f(y)))\]
In fact, given \(f\) just define an equivalence:
\[\begin{aligned} x \equiv y\pmod{f} & \Longleftrightarrow (\forall P)(P(f(x))\Leftrightarrow P(g(y))) \\ & \Longleftrightarrow f(x)=f(y).\end{aligned}\]
\(f\) hides the differences we want to ignore.
Theorem (Division Algorithm).
For \(m,n\in\mathbb{N}\), \(m>0\) \(\exists q,r\in \mathbb{N}\),\[n=qm+r\qquad r<m.\]
Define \(res_m(n):=r\).
Claim
\[a\equiv b\pmod{n}\Leftrightarrow (\forall P)(P(res_n(a))\Leftrightarrow P(res_n(b))).\]
Let \(f:A\to B\). Define for \(x,y:A\)
\[x\equiv_f y \Longleftrightarrow f(x)=_B f(y)\]
Algebra= Set/Type+Operations
Congruence= Equivalence + Respect Operations
Homomorphism = Function + Respect Operations
Let \(f:A\to B\). Define for \(x,y:A\)
\[x\equiv_f y \Longleftrightarrow f(x)=_B f(y)\]
If \(A\) has an operator, say \(*:A^2\to A\), we want to preserve \(*\):
\[\begin{array}{rcl} x_1&\equiv_f & y_1\\ x_2 & \equiv_f & y_2 \\ \hline x_1*x_2 &\equiv_f & y_1*y_2\end{array}\]
I.e.:
\[\begin{array}{rcl} f(x_1)& = & f(y_1)\\ f(x_2) & = & f(y_2) \\ \hline f(x_1*x_2 )& = & f(y_1*y_2)\end{array}\]
Apply our theme: let congruence from "=".
(binary operations)
Let \(A,B\) be have binary operators \(*:A^2\to A\) and \([,]:B^2\to B\) respectively.
A function \(f:A\to B\) is a homomorphism of these operations if
\[f(x*y) = [f(x),f(y)]\]
\[\begin{array}{rccc} * : & A & \rightarrow & A & \rightarrow & A\\ & \downarrow f & & \downarrow f & & \downarrow f \\ [,]: &B & \rightarrow & B & \rightarrow & B \end{array}\]
\[\begin{array}{rccc} * : & (x:A) & \rightarrow & (y:A) & \rightarrow & (x*y:A)\\ & \downarrow f & & \downarrow f & & \downarrow f \\ [,]: & (f(x):B) & \rightarrow & (f(y):B) & \rightarrow & ([f(x),f(y)]:B) \end{array}\]
\[\begin{array}{rccc} * : & (x:A) & \rightarrow & (y:A) & \rightarrow & (x*y:A)\\ & \downarrow f & & \downarrow f & & \downarrow f \\ [,]: & (f(x):B) & \rightarrow & (f(y):B) & \rightarrow & (f(x*y):B) \end{array}\]
Go down then over...
Go over then down...
To be consistent requires \([f(x),f(y)]=f(x*y)\).
Let \(f:A\to B\). Define for \(x,y:A\)
\[x\equiv_f y \Longleftrightarrow f(x)=_B f(y)\]
\[\begin{array}{rcl} f(x_1) & =_B & f(y_1)\\ f(x_2) & =_B & f(y_2)\\ \hline f(x_1*x_2) & =_B & f(y_1*y_2)\end{array}\]
\[\begin{array}{rcl} f(x_1) & =_B & f(y_1)\\ f(x_2) & =_B & f(y_2)\\ \hline [f(x_1),f(x_2)] & =_B & [f(y_1),f(y_2)]\end{array}\]
\[\begin{array}{rcl} x_1&\equiv_f & y_1\\ x_2 & \equiv_f & y_2 \\ \hline x_1*x_2 &\equiv_f & y_1*y_2\end{array}\]
Assume both \(A\) and \(B\) have binary operations \(*:A^2\to A\) and \([,]:B^2\to B\). Equals is always congruence (why?), so if \(f:A\to B\) is a homomorphism we lift that fact to \(\equiv_f\)
The congruence created by a homomorphism If \(f:A\to B\) of algebraic structures is called the kernel of f. I.e.
\[a\equiv a' \pmod{\ker~f} \Leftrightarrow f(a)=_B f(a')\]
Often abbreviated to
\[a\equiv a' \quad (\ker f)\]
Shortcut Warning: In special contexts like groups we can move everything to one side and define this congruence by \(a\equiv 1\quad (\ker f)\), i.e. \(f(a)=f(1_A)=1_B\). This is so common that many algebraist have come to define kernels as the sets \(\{a\mid f(a)=1\}\). Nevertheless, the above definition is correct for all algebras while the latter applies only in special (but important) cases.
(Unary Operator)
Let \(A,B\) be have unary operators \(\texttt{++}:A\to A\) and \(\#:B\to B\) respectively.
A function \(f:A\to B\) is a homomorphism of these operations if
\[f(\texttt{++}x) = \# f(x)\]
\[\begin{array}{rccc} \texttt{++} : & A & \rightarrow & A\\ & \downarrow f & & \downarrow f & \\ \#: &B & \rightarrow & B \end{array}\]
(Nullary Operator)
Let \(A,B\) be have unary operators \(\hat{0}:A^0\to A\) and \(\hat{1}:B^0\to B\) respectively. As usual replace with constants
\[0:=\hat{0}(\bot)\qquad 1:=\hat{1}(\bot).\]
A function \(f:A\to B\) is a homomorphism of these operations if
\[f(0) = 1\]
To put it into the pattern of before
\[f(0)=f(\hat{0}(\bot))=\hat{1}(\bot)=1\]
E.g. \(f(x)=2^x\) sends \(f(0)=2^0=1\).
\[\begin{array}{rccc} \hat{0} : & A^0 & \rightarrow & A\\ & \downarrow \hat{\bot} & & \downarrow f & \\ \hat{1}: &B^0 & \rightarrow & B \end{array}\]
\(\hat{\bot}:\{\bot\}\to \{\bot\}\) can only do \(\bot\mapsto \bot\).
\[\begin{array}{rcccc} \langle \ldots \rangle : & A & \cdots & \rightarrow & A & \rightarrow & A\\ & \downarrow f & & & \downarrow f & & \downarrow f \\ [\ldots ]: &B & \cdots & \rightarrow & B & \rightarrow & B \end{array}\]
\[f(\langle x_1,\ldots,x_n\rangle)=[f(x_1),\ldots,f(x_n)]\]
Fix a signature \(\sigma\) and \(\sigma\)-algebraic structures \(A\) and \(B\).
For \(o\in \sigma\), let \(\langle\ldots\rangle_o:A^{|o|}\to A\) be the \(A\)-operator for \(o\)
and \([\ldots ]_o:B^{|o|}\to B\) be the \(B\)-operator for \(o\).
A homomorphism is function \(f:A\to B\) where for each \(o\in \sigma\)
\[f(\langle x_1,\ldots,x_{|o|}\rangle_o)=[f(x_1),\ldots,f(x_{|o|})]_o.\]