+\ifx\operatorname\undefined
+ \usepackage{amsopn}
+\fi
+
+\input{mjo-common} % for \of, and \binopmany
+
+
+% The additive identity element of its argument, which should be
+% an algebraic structure.
+\newcommand*{\zero}[1]{ 0_{{#1}} }
+
+\ifdefined\newglossaryentry
+ \newglossaryentry{zero}{
+ name={\ensuremath{\zero{R}}},
+ description={the additive identity element of $R$},
+ sort=z
+ }
+\fi
+
+% The multiplicative identity element of its argument, which should be
+% an algebraic structure.
+\newcommand*{\unit}[1]{ 1_{{#1}} }
+
+\ifdefined\newglossaryentry
+ \newglossaryentry{unit}{
+ name={\ensuremath{\unit{R}}},
+ description={the multiplicative identity (unit) element of $R$},
+ sort=u
+ }
+\fi
+
+% The direct sum of two things.
+\newcommand*{\directsum}[2]{ {#1}\oplus{#2} }
+
+% The direct sum of three things.
+\newcommand*{\directsumthree}[3]{ \directsum{#1}{\directsum{#2}{#3}} }
+
+% The (indexed) direct sum of many things.
+\newcommand*{\directsummany}[3]{ \binopmany{\bigoplus}{#1}{#2}{#3} }
+
+
+% The (sub)algebra generated by its argument, a subset of some ambient
+% algebra. By definition this is the smallest subalgebra (of the
+% ambient one) containing that set.
+\newcommand*{\alg}[1]{\operatorname{alg}\of{{#1}}}
+\ifdefined\newglossaryentry
+ \newglossaryentry{alg}{
+ name={\ensuremath{\alg{X}}},
+ description={the (sub)algebra generated by $X$},
+ sort=a
+ }
+\fi
+