\documentclass{mc}
%%%%% journal  info -- DO NOT CHANGE %%%%%%%%%
\setcounter{page}{23}
\renewcommand\thisnumber{20}
\renewcommand\thisyear {2015}
\renewcommand\thismonth{xxx}
\renewcommand\thisvolume{20}
\renewcommand\datereceived{June 19, 2014}
\renewcommand\dateaccepted{October 29, 2014}
%%%%%%%%   end journal info   %%%%%%%%%%%%%
\usepackage[displaymath,mathlines,pagewise]{lineno}
%Rad zaprimljen dana:  19.06.2014.
%Rad prihvacen dana:  29.10.2014.

%%%%% author macros %%%%%%%%%
% place your own macros HERE
%%%%% end %%%%%%%%%

%%%%%%%%%    already loaded packages -- DO NOT RELOAD  %%%%%
% \usepackage{amssymb}
% \usepackage{amsmath,amsthm}
% \usepackage{latexsym}
% \usepackage{amsfonts}
% \usepackage{amsbsyt}
% \usepackage{graphicx}
%%%%%%    end   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}
%\begin{linenumbers}
%%%%% title and author(s):
% \markboth{Author(s)}{Short Title}
% \title{Title}

\markboth{M.\,G\"uzeltepe and O.\,Heden}{On perfect 1-$\mathcal E$-error-correcting codes}
\title[How to use the {\sf mc.cls} class file]{On perfect 1-$\mathcal E$-error-correcting codes\thanks{The work of the second author was supported by Sakarya University Research funds as a Research Project with project number 2013-02-00-002.}}

% single author:
% \author[AUTHOR]{AUTHOR}
% \address{address of AUTHOR}
% \email{{\tt email address of AUTHOR} (AUTHOR)}

%\author[D. Juki\'c]{Dragan Juki\'c\corrauth}
%\address{Department of Mathematics, University of Osijek, Trg Ljudevita Gaja 6, HR-31 000 Osijek, Croatia}
%\email{{\tt jukicd@mathos.hr} (D. Juki\'c)}


% multiple authors:
% Please mark \corrauth after the name of the corresponding author.
% different addresses:
\author[O. Heden, M G\"uzeltepe]{Olof Heden\affil{1}\comma\corrauth and Murat G\"uzeltepe\affil{2}}
\address{\affilnum{1}\ Department of Mathematics, KTH, S-10\,044 Stockholm, Sweden\\   \affilnum{2}\ Department of Mathematics, Sakarya University, TR--54\,187 Sakarya, Turkey}
%
%same address:
%\author[AUTHOR1, AUTHOR2 and AUTHOR3]{AUTHOR1, AUTHOR2\corrauth and AUTHOR3}
%\address{address of AUTHOR1, AUTHOR2 and AUTHOR3}
%
\emails{{\tt olohed@math.kth.se}\,\,(O.\,Heden), {\tt mguzeltepe@sakarya.edu.tr} (M.\,G\"uzeltepe)}
%




%%%%% Begin Abstract %%%%%%%%%%%
\begin{abstract}
We generalize the concept of perfect Lee-error-correcting codes, and present constructions of this new class of perfect codes that are called perfect 1-$\mathcal{E}$-error-correcting codes. We also show that in some cases such codes contain quite a few perfect 1-error-correcting $q$-ary Hamming codes as subsets.
\end{abstract}
%%%%% end %%%%%%%%%%%

%%%%% Keywords %%%%%%%%%%%
\keywords{perfect codes}

%%%% AMS subject classifications %%%%
\ams{94B60}

%%%% maketitle %%%%%
\maketitle


%%%% Start %%%%%%
\section{Introduction}
The first perfect 1-error-correcting codes were constructed by Hamming \cite{hamming}. They were binary and, as being null-spaces of matrices $\bf H$, subspaces of vector spaces $Z_2^n$ of dimension $n$ over the finite field with two elements. Hamming's construction was generalized to perfect codes over alphabets of any size equal to a power of a prime number (see Section~\ref{sec:6}). In that case, the errors also appear in coordinate positions, and any word can  be uniquely corrected to a word in the perfect code $C$ by changing at most one coordinate position. More precisely: \emph{Let $S=\mathrm{GF}(q)^n$ be the direct product of $n$ copies of the finite field $\mathrm{GF}(q)$ with $q$ elements. A subset $C$ of $S$ is a perfect 1-error-correcting code in the Hamming metric if to every word $\bar x=(x_1,\ldots,x_n)$ in $S$ there is a unique word $\bar e=(0,\ldots,0,\epsilon_i,0,\ldots,0)$ of weight one and with $\epsilon_i\in\mathrm{GF}(q)$ such that}
\[
\bar x+\bar e\in C.
\]

There are important, useful, and well-known generalizations of the error-correcting model introduced by Hamming to the cases when the error $e_i$ belongs to a subset $\mathcal{E}$ of the alphabet used to form the  codewords. A well-studied example is when the alphabet is the ring $\mathbb{Z}_n$ and $\mathcal{E}=\{1,-1\}$. Such codes are recognized as \emph{perfect 1-error-correcting codes in the Lee metric} \cite{lee}. They are important for many reasons, such as serving as models for codes correcting synchronization errors, to use phaseshift keying (PSK) modulation, see e.g.
[23, pp. 298 -- 333] or \cite{33}, and getting nice so called tilings of the real $n$-dimensional space $R^n$, see e.g. \cite{golomb}. In the most general case, when $\mathcal E$ can be any given subset of the alphabet in use, we call this kind of codes \emph{perfect 1-$\mathcal E$-error-correcting codes}.
\pagebreak
Fan and Gao gave a construction of a certain class of perfect 1-$\mathcal E$-error-correcting codes.
They proved the following theorem in Section D of \cite{fan}.
\begin{theorem}\label{thm:1}
To every subgroup $\mathcal{E}$ of the multiplicative group $\mathrm{GF}(q)^\star$ of a finite field $\mathrm{GF}(q)$ with $q$ elements, there is a  perfect 1-$\mathcal E$-error-correcting code $C$ over the alphabet $\mathrm{GF}(q)$. The code $C$ has length $n=(q-1)/|\mathcal{E}|$ and is linear of dimension $n-1$ over $\mathrm{GF}(q)$.
\end{theorem}
Simply, Fan and Gao define the code $C$ to be the null-space of a matrix
\begin{equation}\label{eq:HH}
{\bf H}=\left(\begin{array}{cccc}d_1&d_2&\cdots&d_t\end{array}\right),
\end{equation}
where $d_1$, $d_2$, ..., $d_t$ are coset representatives to $\mathcal E$ in the multiplicative group of $\mathrm{GF}(q)$.

In Section \ref{sec:2}, we present a general result, which gives necessary and sufficient conditions for a construction similar to that of Fan and Gao, to result in a perfect code. In that section, we also present perfect codes, such that both the error set $\mathcal E$ and the alphabets can differ in distinct coordinate positions. We call these codes \emph{perfect 1-$\overline{\mathcal E}$-error correcting codes}.

In Section \ref{sec:3}, we show how perfect 1-$\mathcal{E}$-error-correcting codes can be combined to obtain new 1-$\mathcal{E}$-error-correcting codes, both linear and non-linear. Thereby, perfect codes in the Hamming metric are used to describe the combining process. In Section \ref{sec:4}, we generalize Theorem \ref{thm:1} by showing how to construct 1-$\mathcal{E}$-error-correcting codes of length $n(k)$ and dimension $n(k)-k$, for any positive integer $k$. Finally, in Section \ref{sec:5}, we show that if $t=\log_p(|\mathcal{E}|+1)$ divides $\log_p(q)$, then there are linear 1-$\mathcal{E}$-error-correcting codes $C$ of length $n$ and dimension $n-1$ that contain $n!$ distinct Hamming codes of length $n$ over~$\mathrm{GF}(p^t)$.

\section{Basic definitions and results}\label{sec:2}

The original purpose of this study was to investigate how far the construction of Fan and Gao could be strengthened. Therefore, let us begin with the following observation:

Assume that we consider words in some kind of algebraic context, and assume that the error-correcting code $C$ is the null-space of a matrix $\bf H$ on the form (\ref{eq:HH}). For using the technique with syndromes when correcting errors occurring during transmissions of codewords, it is necessary that the distributive rule holds. That is,
\begin{equation}\label{eq:syndrome}
{\bf H}\bar x^T={\bf H}(\bar c^T+\bar \epsilon^T)={\bf H}\bar c^T+{\bf H}\bar \epsilon^T={\bf H}\bar\epsilon^T\,.
\end{equation}
Here, $\bar c$ is the codeword, $\bar \epsilon$ is an error vector, $\bar x$ is the received word, and ${\bf H}\bar x^T$ is the \emph{syndrome} of the word $\bar x$. The received word $\bar x=\bar c+\bar \epsilon$ is corrected to the sent codeword~$\bar x-\bar\epsilon$.

Consequently, if we consider words in a direct product $S=G_1\times G_2\times\cdots \times G_n$ of alphabets $G_i$, for $i\in[n]$, and codes as null-spaces of a matrix $\bf H$ on the form (\ref{eq:HH}), and an error-correcting procedure using syndromes, then, presuming some algebraic structure, it is necessary that the following two conditions are satisfied:

\begin{itemize}
\item[(i)] the alphabets $G_i$, for $i\in[n]$, are subgroups of an Abelian group $G$,
\item[(ii)] for each $i\in[n]$, the subgroup $G_i$ is a left module over a ring $R_i$ such that the matrix entry $d_i$ of $\bf H$ belongs to $R_i$.
\end{itemize}


Thus, in this note, we will always assume that a \emph{code} is a subset $C$ of a direct product $S=G_1\times\cdots\times G_n$ of a family of $n$ finite left modules $G_i$, for $i\in[n]$, over rings $R_i$. We also assume that these modules $G_i$ are subgroups of the same Abelian group $G$.

By $\bar e_{i,\epsilon}$ we denote the word that has weight one with its only non-zero entry $\epsilon_i\in G_i$ in position $i$. If, for $i\in[n]$ $\mathcal{E}_i$, is a subset of the module $G_i$, then by $\overline{\mathcal E}$ we denote the set
\begin{equation}\label{eq:E}
\overline{\mathcal E}=\{\bar e_{i,\epsilon}\mid i\in[n],\;\;\epsilon\in\mathcal{E}_i\}.
\end{equation}

A code $C$ is a \emph{perfect 1-$\overline{\mathcal E}$-error-correcting code in $S$} if to every word $\bar x\in S\setminus C$ there is a unique  codeword $\bar c\in C$ such that
\[
\bar x=\bar c+\bar e_{i,\epsilon}\,,
\]
for a unique coordinate position $i\in[n]$ and a unique $\epsilon\in\mathcal{E}_i$. We denote and define an \emph{$\overline{\mathcal E}$-sphere} centered at a word $\bar c$ by
\[
\mathrm{S}_{\overline{\mathcal E}}(\bar c)=\{\bar c+\bar e_{i,\epsilon}\mid i\in[n],\;\epsilon\in\mathcal{E}_i\}.
\]
The next proposition is an immediate consequence of the definitions above.
\begin{proposition}\label{pro:2}
If $C$ is a perfect 1-$\overline{\mathcal{E}}$-error-correcting code in the direct product $G_1\times\cdots\times G_n$ of Abelian groups, then every code in the family of codes
\[
\mathcal{F}=\{C+\bar e_{i,\epsilon}\mid i\in[n],\;\epsilon\in\mathcal{E}_i\}\cup\{C\}
\]
is a perfect 1-$\overline{\mathcal{E}}$-error-correcting code. The codes in $\mathcal F$ are pairwise disjoint and
\[
\bigcup_{C\in\mathcal{F}} C=G_1\times\cdots\times G_n.
\]
\end{proposition}

We say that the codes in $\mathcal F$ constitute \emph{a perfect partition or a tiling of  $G_1\times\cdots\times G_n$ into 1-$\overline{\mathcal{E}}$-error-correcting codes}. Such partitions are one of the main ingredients in the combining construction of perfect 1-$\overline{\mathcal E}$-error-correcting codes given in the next section.

The \emph{sum} of a family of subgroups $G_i$, $i\in[n]$, of an Abelian group $G$ is defined here and denoted as follows:
\[
G_1+G_2+\cdots+G_n=\{g_1+g_2+\cdots+g_n\in G\mid g_i\in G_i,\; i\in[n]\}.
\]

Now we are ready to state the main theorem of this section the proof of which consists of trivial verifications.

\begin{theorem}\label{thm:2ss}
Assume that the groups $G_i$, for $i\in[n]$, are subgroups of the same Abelian group $G$. For $i\in[n]$, let $\mathcal{E}_i$ be any subset of $G_i$ and let $\varphi_i$ be any automorphism of $G_i$. Define the code $C$ in the direct product $S=G_1\times G_2\times\cdots\times G_n$ to be the set
\[
C=\{(x_1,\ldots,x_n)\in S\mid \varphi_1(x_1)+\cdots+\varphi_n(x_n)=0\}.
\]
Then $C$ is a perfect 1-$\overline{\mathcal E}$-error-correcting code in $S$ if and only if the following two conditions are satisfied:
\begin{alignat}{2}
\label{eq:1aa}
\{0\}\cup \varphi_1(\mathcal{E}_1)\cup\ldots\cup \varphi_n(\mathcal{E}_n)&=G_1+G_2+\cdots+ G_n,
\\ \label{eq:2aa}
i\neq j\qquad&\Longrightarrow\qquad \varphi_i(\mathcal{E}_i)\cap \varphi_j(\mathcal{E}_j)=\emptyset.
\end{alignat}
The code $C$ is a subgroup of $S$.
\end{theorem}

The theorem above generalizes a construction of perfect codes given by Herzog and Sch\"onheim \cite{herzog}. They considered partitions of the set of non-zero elements of Abelian groups $G$ into the set of non-zero elements of a family of subgroups $G_i$, $i\in[n]$, of $G$:
\[
G=G_1\cup G_2\cup\ldots \cup G_n,\quad\textrm{with}\quad G_i\cap G_j=\{0\}\quad\textrm{if}\quad i\neq j.
\]
Simply, if in Theorem \ref{thm:2ss}, for $i\in[n]$, we let $\varphi_i$ be the identity map and $\mathcal{E}_i=G_i\setminus\{0\}$, then we get the construction of Herzog and Sch\"onheim.
Their construction is a generalization of the construction of Hamming \cite{hamming}. For details, see Section \ref{sec:2.1}.

In our constructions of perfect codes below, we mainly use the following corollary of Theorem \ref{thm:2ss}.
\begin{theorem} \label{thm:2s}
Assume that, for $i\in[n]$, each of the subgroups $G_i$ of the Abelian group $G$ is a left module over a ring $R_i$. Let ${\bf H}=\left(\begin{array}{cccc}d_1&\cdots&d_n\end{array}\right)$, where the entries $d_i$, for $i\in[n]$, belong to $R_i$. Let $C$ consist of the elements $\bar x=(x_1, \ldots,x_n)$ in the direct product $S=G_1\times\cdots \times G_n$ such that
\[
{\bf H}\bar x^T=\bar 0^T,
\]
that is, $C$ is the null-space in $S$ of $\bf H$. Let $\overline{\mathcal E}$ be defined as in (\ref{eq:E}).

Then, $C$ is a perfect 1-$\overline{\mathcal E}$-error-correcting code if and only if the following three conditions are satisfied:
\begin{alignat}{2}\label{eq:1a}
\{0\}\cup d_1\mathcal{E}_1\cup\ldots\cup d_n\mathcal{E}_n&=\{{\bf H}\bar x^T\mid \bar x\in S\},
\\
\label{eq:2a}
i\neq j\qquad&\Longrightarrow\qquad d_i\mathcal{E}_i\cap d_j\mathcal{E}_j=\emptyset,
\\ \label{eq:3sa}
|d_i\mathcal{E}_i|&=|\mathcal{E}_i|\qquad i=1,2,\ldots,n.
\end{alignat}
The size of $C$ is
\[
|C|=\frac{|G_1|\cdot\;\cdots\;\cdot|G_n|}{1+|\mathcal{E}_1|+\cdots+|\mathcal{E}_n|}\;.
\]
The code $C$ is a subgroup of the group $S$. If the rings $R_i$, for $i\in[n]$, are the same commutative ring $R$, then $C$ is also a left module over $R$.
\end{theorem}

The theorem above follows from Theorem \ref{thm:2ss}, as for each $d_i$, $i\in[n]$, the map
\[
\varphi_i:\;x_i\quad\mapsto\quad d_ix_i,\qquad i=1,2,\ldots,n,
\]
is a homomorphism of the left module $G_i$ over the ring $R_i$.

\medskip
The next example shows how we can use Theorem \ref{thm:2s} to construct perfect 1-$\mathcal E$-error-correcting codes over mixed alphabets and with mixed error sets.

\begin{example}
 Let $F$ be any finite field and let $F_1$ and $F_2$ be two distinct non-trivial subfields of $F$. Assume that $F_2\subseteq F_1$, and let $\mathcal{E}_2$ denote the multiplicative group of $F_2$. Let $\mathcal{E}_1$ be any subgroup of the multiplicative group of $F_1$ such that $\mathcal{E}_1$ contains $\mathcal{E}_2$. Let $\mathcal{E}_3$ be any subgroup of $\mathcal{E}_2$.

Then
\[
F=\{0\}\cup d_1\mathcal{E}_1\cup\ldots\cup d_t\mathcal{E}_1,\qquad \mathcal{E}_1=f_1\mathcal{E}_2\cup\ldots\cup f_s\mathcal{E}_2,\qquad \mathcal{E}_2=g_1\mathcal{E}_3\cup\ldots\cup g_r\mathcal{E}_3
\]
for families of coset representatives $d_i\in F$, for $i\in[t]$, $f_i\in F_1$, for $i\in[s]$, and $g_i\in F_2$, for $i\in[r]$, where $t=(|F|-1)/|\mathcal{E}_1|$, $s=|\mathcal{E}_1|/|\mathcal{E}_2|$ and $r=|\mathcal{E}_2|/|\mathcal{E}_3|$. We can split each coset $d_i\mathcal{E}_1$ into cosets of $\mathcal{E}_2$ and each coset $f_i\mathcal{E}_2$ into cosets of $\mathcal{E}_3$. For example: if $d_1\mathcal{E}_1=\mathcal{E}_1$ and $f_1\mathcal{E}_2=\mathcal{E}_2$, then we get the following partition of the non-zero elements of $F$:
\begin{equation}\label{eq:split}
F\setminus\{0\}=g_1\mathcal{E}_3\cup\ldots\cup g_r\mathcal{E}_3\cup f_2\mathcal{E}_2\cup\ldots \cup f_s\mathcal{E}_2\cup d_2\mathcal{E}_1\cup\ldots\cup d_t\mathcal{E}_1.
\end{equation}
\end{example}
Thus we have many possibilities to construct perfect 1-$\overline{\mathcal E}$-error-correcting codes. For example, using the split of $F\setminus\{0\}$ in (\ref{eq:split}) we get a perfect 1-$\overline{\mathcal E}$-error-correcting code $C$ in the direct product $S=F_2^r\times F_1^{s-1}\times F^{t-1}$, by letting $C$ be the null-space of the matrix
\[
{\bf H}=\left(\begin{array}{ccccccccc}g_1&\cdots&g_r&f_2&\cdots&f_s&d_2&\cdots&d_t\end{array}\right).
\]
As $F$, $F_1$ and $F_2$ are fields, the necessary conditions of Theorem \ref{thm:2s} are satisfied. Hence, $C$ is a perfect 1-$\overline{\mathcal E}$-error-correcting code.


\medskip
In most cases of applications,  in Theorem \ref{thm:2s} we can assume that $R_i=R$, for $i\in[n]$. For the reader's convenience and for the future need of references we state the theorem in that case:
\begin{theorem}\label{pro:1}
Let $R$ be a finite ring. Assume that $\mathcal E$ is a subset of $R$ and that $d_1%=1
$, $d_2$, ..., $d_n$ are elements in $R$ such that
\begin{equation}\label{eq:1}
R=\{0\}\cup d_1\mathcal{E}\cup\ldots\cup d_n\mathcal{E},
\end{equation}
\begin{equation}\label{eq:2}
i\neq j\qquad\Longrightarrow\qquad d_i\mathcal{E}\cap d_j\mathcal{E}=\emptyset,
\end{equation}
and
\begin{equation}\label{eq:3s}
|\mathcal{E}|=|d_2\mathcal{E}|=|d_3\mathcal{E}|=\cdots=|d_n\mathcal{E}|.
\end{equation}
Then the null-space $C$ of the $1\times n$-matrix
\begin{equation}\label{eq:H}
{\bf H}=\left(\begin{array}{cccc}d_1&d_2&\cdots&d_n\end{array}\right),
\end{equation}
is a perfect 1-$\mathcal E$-error-correcting code in the direct product $R^n$. The size of $C$ is $|C|=|R|^{n-1}$.
\end{theorem}

We note that if each of the elements $d_i$, for $i\in[n]$, commutes with every element in~$R$, then the code $C$ in the theorem is a left ideal in the ring $R^n$. The code $C$ is always a right ideal in $R^n$.

\medskip
In a special case, the construction above coincides with the construction provided by Fan and Gao, see the next example.

\begin{example}[Fan and Gao, \cite{fan}]\label{E1}
Let $\mathcal{E}$ be any subgroup of the multiplicative group $G$ of the finite field $\mathrm{GF}(q)$, and let $d_1$, $d_2$,..., $d_n$, where $n=|G|/|\mathcal{E}|$, be any family of coset representatives to $\mathcal E$ in $G$. Then we can apply Theorem \ref{pro:1}, as (\ref{eq:1}), (\ref{eq:2}) and (\ref{eq:3s}) hold.

The multiplicative group of a finite field with $q$ elements is cyclic, and, for every divisor $h$ of $q-1$, it has a unique subgroup $H$ of size $h$, see e.g. \cite{lang}. Every such subgroup $H$ is also cyclic. Thus we may use Theorem \ref{pro:1} to construct many perfect 1-$\mathcal{E}$-error-correcting codes. They are linear codes of dimension $n-1$ and length $n$, where $n=(q-1)/h$.

If $h=2$, then the subgroup $\mathcal E$ consists of the elements $\{1,-1\}$, and the code constructed in this way is a perfect 1-error-correcting code in the Lee metric.

\end{example}
Note that we can change the roles of the error set $\mathcal E$ and its coset representatives, as shown in the next example.

\begin{example}\label{E2}The multiplicative group of the finite field $\mathbb{Z}_{13}$ has the non-trivial subgroups $H_2=\{1,-1\}$, $H_3=\{1,3,9\}$, $H_4=\{1,5,8,-1\}$ and $H_6=\{1,4,3,-1,9,10\}$. As for instance,
\[
\mathbb{Z}_{13}\setminus\{0\}=H_6\cup 2H_6,\qquad\hbox{and}\qquad H_6\cap 2H_6=\emptyset,
\]
we get that with $\mathcal{E}=\{1,2\}$ and $\{d_i\mid i\in[6]\}=H_6$, the conditions in (\ref{eq:1}), (\ref{eq:2}) and (\ref{eq:3s}) are fulfilled. Hence, by Theorem \ref{pro:1} there is a perfect 1-$\{1,2\}$-error-correcting code in $\mathbb{Z}_{13}^6$.

If we use $H_2$ instead, we get a perfect 1-$\{1,2,3,4,5,6\}$-error-correcting code in $\mathbb{Z}_{13}^2$ consisting of the words $(a,a)$, for $a\in \mathbb{Z}_{13}$.

\end{example}
\subsection{Mixed perfect codes and vector space partitions}\label{sec:2.1}

A \emph{subspace partition} of the finite vector space $V(n,q)$ of dimension $n$ over the finite field $\mathrm{GF}(q)$ is a collection of subspaces $U_1$, $U_2$, ..., $U_t$ satisfying the two conditions
\begin{equation}\label{eq:0}
V(n,q)=\bigcup_{i=1}^tU_i\qquad\hbox{and}\qquad U_i\cap U_j=\{\bar 0\},\quad\hbox{if $i\neq j$}.
\end{equation}
Herzog and Sch\"onheim \cite{herzog} observed that the kernel of the map $f$
\begin{equation}\label{eq:1b}
f:\;(u_1,u_2,\ldots,u_t)\quad\mapsto\quad u_1+u_2+\cdots+u_t
\end{equation}
from the direct product $S=U_1\times U_2\times\cdots\times U_t$ to $V(n,q)$, is a perfect 1-error-correcting code in $S$ equipped with the Hamming metric. If the dimensions of the subspaces $U_i$, $i\in[n]$, are not equal, then this kind of codes is called \emph{mixed perfect 1-error-correcting codes}.  Such codes are used in some of the examples below in order to demonstrate the combining construction of perfect 1-$\mathcal{E}$-error-correcting codes described in the next section.

In just a very limited number of vector spaces $V=V(n,q)$, it is completely clarified which possibilities there are for the dimensions that appear in a subspace partition of $V$. For a survey of the known results in this area, see \cite{Hesur}.


\section{Combining codes}\label{sec:3}

We consider a direct product $S=S_1\times\cdots\times S_t$ of direct products $S_i=R_{i,1}\times\cdots\times R_{i,t_i}$, where $R_{i,j}$, for $j\in[t_i]$ and $i\in[t]$, are Abelian groups. We assume that the error sets $\mathcal{E}_i$, for $i\in [t]$, are subsets of $R_{i_j}$, for $j\in[t_i]$.

The construction below has been presented for special cases partly independently by several authors, like Zinoviev \cite{victor88}, Solov'eva \cite{sol89} and Etzion \cite{etzion11}.\footnote{The authors rediscovered this construction inspired by the construction in \cite{heden77}. There, the first known variant of this construction appears, although in a very special case.}

There are two fundamental ingredients in this construction of perfect 1-$\overline{\mathcal E}$-error-correcting codes. One is a family of partitions of the direct products $S_i$, for each $i\in[t]$, into perfect 1-${\mathcal E}_i$-error-correcting codes $C(i,\mu)$, for $\mu=0,1,\ldots,p_i-1$, where
\[
p_i=\frac{|S_i|}{|C(i,\mu)|}={1+t_i|\mathcal{E}_i|}.
\]

As the other ingredient we can take any (mixed) perfect 1-error-correcting code $M$ in the direct product
\[
\mathcal{A}_1\times\cdots\times\mathcal{A}_t
\]
equipped with the Hamming metric, where $|\mathcal{A}_i|=p_i$, for $i\in[t]$.

With the notation as above, we have the following theorem:
\begin{theorem}\label{thm:2}
The following union of codes
\[
C=\bigcup_{(d_1\ldots,d_t)\in M}\{(\bar c_1|\bar c_2|\ldots|\bar c_t)\mid \bar c_{i}\in C(i,d_i)\;\;\hbox{for}\;\; i\in[t] \},
\]
is a perfect 1-$\overline{\mathcal{E}}$-error-correcting code in the direct product $S$.
\end{theorem}

\begin{proof}
Consider any word $\bar x=(\bar x_1|\bar x_2|\ldots|\bar x_t)$ of $S$. Then there are elements $d_i\in\mathcal{A}_i$, for $i\in[t]$, such that
\[
\bar x_i\in C(i,d_i).
\]
If $\bar d=(d_1,d_2,\ldots,d_t)$ belongs to $M$, then $\bar x$ belongs to $C$. Else, $\bar d$ differs in a unique coordinate position from one and only one word in $M$. Let $i$ denote that position, and assume that $(d_1,\ldots,d_{i-1},d_i',d_{i+1}\ldots,d_t)$ belongs to $M$. Then for a unique word $\bar x_i'\in C(i,d_i')$,
\[
\bar x_i=\bar x_i'+\bar e_{j,\epsilon}\,,
\]
where $j\in[t_i]$ and $\epsilon\in\mathcal{E}_i$, and where $\bar e_{j,\epsilon}$ is defined as in the previous section. Hence, every word in $S\setminus C$ belongs to at least one $\overline{\mathcal E}$-sphere centered at a word of $C$.

Simple counting arguments show that
\[
|C|+\sum_{\bar c\in C}|S_{\overline{\mathcal{E}}}(\bar c)|=|S|.
\]
Hence, two $\overline{\mathcal{E}}$-spheres centered at  codewords cannot intersect, as otherwise there would exist a word of $S\setminus C$ not belonging to an $\overline{\mathcal E}$-sphere centered at a word of $C$.

The conclusion is that $C$ must be a perfect 1-$\overline{\mathcal{E}}$-error-correcting code.
\end{proof}


The construction described above is called the \emph{combining construction}. The perfect code $M$ is said to be the \emph{outer code} in this construction.


\subsection{Non-linear perfect 1-$\mathcal E$-error-correcting codes}

Shapiro and Slotnic \cite{shapiro} conjectured that every perfect code in the Hamming metric is linear. A few years later, the first non-linear perfect code in the Hamming metric was found by Vasil'ev \cite{vasiliev}. By using the combining construction, we are now able to construct non-linear perfect 1-$\mathcal{E}$-error-correcting codes. In fact, the original purpose of the combining construction was to produce non-linear perfect 1-error-correcting codes in the Hamming metric.


By taking a non-linear perfect 1-error-correcting code in the Hamming metric as the outer code $M$, we almost always get a non-linear perfect 1-$\mathcal{E}$-error-correcting code. (There are quite a few non-linear perfect 1-error-correcting codes in the Hamming metric, see the references in Section \ref{sec:6}.)

Now consider the situation when all rings $R_{i,j}$ are equal to the same ring $R$, the error sets $\mathcal{E}_i$ can be distinct in distinct coordinate positions. Then $p_{i,j}=q=|R|$, for all $i\in[t]$ and $j\in [t_i]$. For $i\in[t]$, the components $C(i,\mu)$ in the partition of $S_i$ are the sets
\[
C(i,\mu)=\{\bar x\in R^{t_i}\mid {\bf H}\bar x^T=\mu\},
\]
for $\mu\in R$ and some $1\times t_i$-matrix ${\bf H}=\left(\begin{array}{ccc}d_{i_1}&\cdots&d_{i_{t_i}}\end{array}\right)$. Then
\[
C(i,\mu)+C(i,\mu')=C(i,\mu+\mu').
\]
Consequently, if the outer code $M$ is linear, the obtained code  is linear.

There are many ways to destroy this linearity. For instance, we can choose the outer code $M$ to be non-linear. Another possibility is to make some permutation of the components $C(i,\mu)$. The easiest way to obtain a non-linear code might be to switch in $S_1$ to a ``new'' partition into perfect 1-$\mathcal E$-error-correcting codes:
\[
\mathcal{F}'=\{C(1,\mu)'\mid \mu\in R\},
\]
where, for $\mu\in R$,
\[
C(1,\mu)'=C(1,\pi(\mu)),
\]
for some permutation $\pi$ of the elements of $R$ such that $\pi(0)=0$.

\subsection{Some examples}

We give three examples that show the applicability of the combining construction.

\begin{example}\label{E3}(Mixed perfect 1-error-correcting codes in the Lee-metric) Let $\mathcal{E}=\{1,-1\}$, and let $R=\mathbb{Z}_{25}$. Then the conditions of Theorem~\ref{pro:1} are satisfied with $d_i=i$, for $i\in[12]$, as well as in the case $R=\mathbb{Z}_5$ with $d_1=1$ and $d_2=2$. Thus there are perfect 1-error-correcting codes in $\mathbb{Z}_{25}^{12}$ and $\mathbb{Z}_5^2$, respectively, equipped with the Lee metric.

From a construction of Herzog and Sch\"onheim \cite{herzog}, and independently Beutelspacher \cite{Be2} and Bu \cite{Bu}, we know that the vector space $V(3,5)$ of dimension 3 over the finite field with five elements admits a subspace partition into one subspace of dimension 2 and 25 subspaces of dimension 1. From Section \ref{sec:2.1}, we thus get that there is a mixed perfect 1-error-correcting code $M$ in the direct product $\mathrm{GF}(25)\times \mathrm{GF}(5)^{25}$.

By combining Proposition \ref{pro:2} and Theorem \ref{thm:2}, whereby we use the code $M$ as the outer code, we obtain a perfect 1-error-correcting mixed code $C$ in the direct product
\[
\mathbb{Z}_{25}^{12}\times \mathbb{Z}_{5}^{50}
\]
equipped with the Lee metric. Note that this code $C$ is not linear, as the additive groups of $\mathrm{GF(25)}$ and $\mathbb{Z}_{25}$ are not isomorphic.

\end{example}


Observe that linear perfect 1-error-correcting mixed codes in the Lee metric are considered by AIBdaiwi et al. in~\cite{horat}. However, they do not mention the word ``mixed''.

From \cite{heden75} we know that if there is a mixed perfect 1-error-correcting code in a direct product $S_1\times S_2\times \cdots \times S_n$ equipped with the Hamming metric, and the prime number $p$ divides one of the cardinalities of the sets $S_i$, then $p$ divides the size of every $S_i$, $i\in[n]$. This fact limits the number of possibilities to use the combining construction in order to produce mixed perfect 1-error-correcting Lee codes.


\begin{example}\label{E4} (Lipschitz metric) The Lipschitz metric was introduced by Martinez et al. in \cite{martinez}. In short: Consider the ring $H(\mathbb{Z})$ consisting of the ``integer\\ quaternions''
\[
H(\mathbb{Z})=\{a_0+a_1e_1+a_2e_2+a_3e_3\mid a_0,a_1,a_2,a_3\in \mathbb{Z}\}\,,
\]
where $e_i^2=-1$, $e_1e_2=-e_2e_1=e_3$, $e_3e_2=-e_2e_3=-e_1$, $e_1e_3=-e_3e_1=-e_2$. Let $\pi$ be a Lipschitz prime, that is,
\[
\pi=a_0+a_1e_1+a_2e_2+a_3e_3,
\]
where $N(\pi)=a_0^2+a_1^2+a_2^2+a_3^2$ is a prime number. The equivalence relation $x\sim y$ if $x-y=\lambda\pi$, for some $\lambda\in H(\mathbb{Z})$, gives rise to a set of $N(\pi)^2$ equivalence classes, that constitute an Abelian group $H(\mathbb{Z})_\pi$, see \cite{martinez}. Let
\[
\mathcal{E}=\{\pm1,\pm e_1,\pm e_2, \pm e_3\}.
\]
In \cite{guzeltepe}, constructions of many perfect 1-$\mathcal E$-error-correcting codes
in direct products of these Abelian groups $H(\mathbb{Z})_\pi$ are presented. For example, with $\pi=2+e_1+e_2+e_3$, an 1-$\mathcal{E}$-error-correcting code in the direct product $H(\mathbb{Z})_\pi^6$ is constructed. Now we can further construct  such codes by combining Proposition \ref{pro:2} with Theorem \ref{thm:2}, whereby we use any perfect 1-error-correcting code over an alphabet with 49 symbols as an outer code.
\end{example}

\begin{example}\label{E5} (Both Lipschitz and Hurwitz metrics.) The Hurwitz metric is introduced in~\cite{guzeltepe}. In short, if we define an equivalence relation on the ring of Hurwitz integers $\mathcal{H}=H(\mathbb{Z})\cup H(\frac{1}{2}+\mathbb{Z})$ similarly to the equivalence relation we defined in the previous example, then the number of equivalence classes will be the same as in $H(\mathbb{Z})$, see \cite{guzeltepe}. Let
\[
\mathcal{E}'=\{\pm1,\pm e_1,\pm e_2, \pm e_3,\frac{1}{2}(\pm1\pm e_1\pm e_2\pm e_3)\}.
\]
Let $\pi=2+e_1+e_2+e_3$, and let $\mathcal{H}_\pi$ denote the set of equivalence classes that occur under  the equivalence relation  induced by $\pi$. Then $|\mathcal{H}_\pi|=49$. In \cite{guzeltepe}, a perfect 1-$\mathcal{E}'$-error-correcting code in $\mathcal{H}_\pi^2$ is presented. If as an outer code we  use any perfect 1-error-correcting code in the Hamming metric over an alphabet with 49 symbols, then we may construct perfect 1-$\{\mathcal{E},\mathcal{E}'\}$-error-correcting codes. With such a code,  in some coordinate positions we can correct errors belonging to the set $\mathcal E$, and, in other coordinate positions, correct errors belonging to the set $\mathcal{E}'$.

\end{example}
Indeed, the number of possibilities to construct codes by combining Proposition \ref{pro:2} \linebreak and Theorem \ref{thm:2} is large. However, one restriction is the existence of perfect 1-error-correcting codes in the Hamming metric.  For a survey of these codes see Section \ref{sec:6}.\linebreak



\section{Linear perfect 1-$\mathcal E$\!-\!error-correcting codes of length $n(k)$ and dimension $n(k)-k$}\label{sec:4}

Let the $n'\times k$-matrix ${\bf H}'$ be a parity-check matrix to a perfect 1-error-correcting code $C_{H'}$ in the Hamming metric of length $n'$ over the alphabet $\mathrm{GF}(q)$. Then $n'=(q^k-1)/(q-1)$ and
\[
{\bf H'}=\left(\begin{array}{ccc}
\vert &&\vert\\
\bar k_1&\cdots&\bar k_{n'}\\
\vert&&\vert
\end{array}\right),
\]
where $\bar k_1$, ..., $\bar k_{n'}$ are elements of the vector space $V=\mathrm{GF}(q)^k$ such that the 1-dimensional spaces $\bar k_i\mathrm{GF}(q)$, for $i\in[n']$, constitute a subspace partition of $V$. (Equivalently, the columns of ${\bf H}'$ represent the points in the finite $(k-1)$-dimensional projective geometry $\mathrm{PG}(k-1,q)$.)

The code $C_{H'}$ is the null-space of ${\bf H}'$, but $C_{H'}$ can also be defined as the kernel of the map $f$ defined in (\ref{eq:1b}) with the spaces $k_i\mathrm{GF}(q)$, for $i\in[n']$, forming the subspace partition of $V$. The dimension of $C_{H}'$ is $n'-k$, as the rows of ${\bf H}'$ are linearly independent.

Let $\mathcal E$ and $d_1$, ..., $d_n$ be defined as in Example \ref{E1} and let $n(k)=nn'$. Now we can construct a perfect 1-$\mathcal E$-error-correcting code $C$ of length $n(k)$.

The code $C$ is the null-space of the $k\times n(k)$-matrix
\[
{\bf H}=\left(\begin{array}{c|c|c|c}
d_1{\bf H}'&d_2{\bf H}'&\cdots&d_n{\bf H}'
\end{array}\right),
\]
which is the concatenation of the matrices $d_i{\bf H}'$. The rows of the matrix ${\bf H}$ are linearly independent, as the rows of the matrix $d_1{\bf H}'$ are linearly independent. Hence, the dimension of $C$ is equal to $n(k)-k$.

For any $\bar x\in \mathrm{GF}(q)^{n(k)}\setminus C$, the syndrome ${\bf H}\bar x^T$ is an element in $\mathrm{GF}(q)^k$, and thus equal to $e_i\bar k_i$ for a unique column $\bar k_i$ of ${\bf H}'$ and a unique $e_i\in\mathrm{GF}(q)\setminus\{0\}$. As $e_i$ is equal to $d_j\epsilon_i$ for a unique pair $(d_j,\epsilon_i)$, where $j\in[n]$ and $\epsilon_i\in\mathcal{E}$, we can find the ``nearest''  codeword simply by subtracting the word $\bar x$ with $\epsilon_i$ in the $i$-th coordinate position in the block of the vector $\bar x$ that corresponds to the block $d_j{\bf H}'$ in the matrix $\bf H$. Hence, $C$ is a perfect 1-$\mathcal E$-error-correcting code.



\section{Linear perfect 1-$\mathcal E$-error-correcting codes vs.\,Hamming codes}\label{sec:5}

Assume that $q=p^m$, for some prime number $p$ and some positive integer $m$. Let $\mathcal E$ be a subgroup of the multiplicative group of the finite field $\mathrm{GF}(q)$ such that $|\mathcal{E}|=p^t-1$ for some integer $t$. Then $t$ divides $m$ and ${\mathcal E}\cup\{0\}$ is a subfield of $\mathrm{GF}(q)$ that we may identify with $\mathrm{GF}(p^t)$, see e.g. \cite{lang}. Thus we can regard $\mathrm{GF}(q)$ as a vector space over the finite field ${\mathcal E}\cup\{0\}$.

Let $d_1$, ..., $d_n$ be as in Example \ref{E1}, and let $C$ be the perfect 1-$\mathcal{E}$-error-correcting code obtained in that example. The sets $U_i=d_i\mathcal{E}\cup\{0\}$, for $i\in[n]$, are vector spaces of dimension 1 over $\mathrm{GF}(p^t)$ constituting a subspace partition (\ref{eq:0}) of $\mathrm{GF}(q)$.

We can thus describe the direct product $S=\mathrm{GF}(q)^n$ as a direct product of unions of the 1-dimensional subspaces~$d_i\mathcal{E}\cup\{0\}$:
\[
S=\mathrm{GF}(q)^n=\begin{array}{c}
\mathrm{GF}(q)\\
\times\\
\vdots\\
\times\\
\mathrm{GF}(q)
\end{array}=
\begin{array}{c}
\left(\{0\}\cup d_1\mathcal{E}\cup
d_{2}\mathcal{E}
\cup
\ldots
\cup
d_n\mathcal{E}
\right)\\
\times\\
\vdots\\
\times\\
\left(\{0\}\cup d_1\mathcal{E}\cup
d_{2}\mathcal{E}
\cup
\ldots
\cup
d_n\mathcal{E}
\right)
\end{array}
\]

Let $\pi$ be any permutation of the elements in the set $[n]$. Then, by Section~\ref{sec:2.1}, the set of words $(x_1,\ldots,x_n)$ in $\mathrm{GF}(p^t)^n$ such that
\begin{equation}\label{eq:16}
d_{\pi(1)}x_1+\cdots+d_{\pi(n)}x_n=0,
\end{equation}
constitutes a perfect 1-error-correcting code $C_{\pi}$. Now, in each coordinate position in the direct product $S$, we perform the following linear map from $\mathrm{GF}(q)$ to $\mathrm{GF}(q)$:
\[
\psi_i:\quad x_i\;\mapsto\; \frac{d_{\pi(i)}}{d_i}\,x_i,\qquad i\in[n].
\]
Then the perfect 1-error-correcting code $C_\pi$ is mapped to a perfect 1-error-correcting code $\psi(C_\pi)$ and
\begin{equation}\label{eq:17}
\psi(C_\pi)\subseteq \frac{d_{\pi(1)}}{d_1}\left(\mathcal{E}\cup\{0\}\right)\times\cdots\times\frac{d_{\pi(n)}}{d_n}\left(\mathcal{E}\cup\{0\}\right)\subseteq S.
\end{equation}
Finally, for any element $(y_1,\ldots,y_n)$ of $\psi(C_\pi)$,  from (\ref{eq:16}) we get that
\[
d_1y_1+\cdots+d_ny_n=d_1\frac{d_{\pi(1)}}{d_1}x_1+\cdots+d_n\frac{d_{\pi(n)}}{d_n}x_n=0.
\]
Thus, the perfect 1-error-correcting code $\psi(C_\pi)$ is a subset of $C$. Distinct permutations give distinct direct products in (\ref{eq:17}). As there are $n!$ distinct permutations $\pi$ of the set~$[n]$, we can conclude that $C$ contains at least $n!$ perfect 1-error-correcting codes.

\section{Remarks}\label{sec:6}

The combining construction of 1-$\mathcal E$-error-correcting codes has some limitations. This is because perfect codes in the Hamming metric used as outer codes in the combining construction, have so far been constructed just over alphabets of a size equal to a power of a prime number. However, in that case there are several distinct constructions. A survey of perfect binary codes can be found in \cite{survey}, or the book by Solov'eva \cite{solbok}. Below we give references to some of the main results in this area:

The first construction of a perfect code was given by Hamming \cite{hamming}. His codes were linear, binary and 1-error-correcting. The first non-linear perfect 1-error correcting binary code was found by Vasil'ev \cite{vasiliev} in 1961. Almost a decade later, Vasil'ev's construction was generalized to the $q$-ary case by Lindstr\"om \cite{bernt} and independently by Sch\"onheim \cite{schonheim}. The first construction of mixed perfect codes not equivalent to any linear code was given by Heden \cite{heden77}. The construction in Section \ref{sec:3} was inspired by Heden's construction. The construction of Heden was also the second found construction of non-linear perfect binary codes. Other nice and useful constructions have been given by Solov'eva \cite{sol81} and Phelps \cite{phelps83}, \cite{phelps84}. A kind of classification of perfect 1-error-correcting $q$-ary codes can be found in \cite{hedenkrotov}. A very few known results on perfect 1-error-correcting codes over non-prime power alphabets are surveyed in \cite{heden11}.

In any way, it may be concluded that there indeed exist quite a few perfect 1-$\mathcal E$-error-correcting codes.

\begin{thebibliography}{35}
\bibitem{horat}
{\sc B.\,AIBdaiwi, P.\,Horak, L.\,Milazzo}, {\em Enumerating and decoding perfect linear Lee codes}, Des. Codes Cryptogr. {\bf 52}(2009), 155--162.

\bibitem{Be2}
{\sc A.\,Beutelspacher}, {\em Partial spreads in finite projective spaces
and partial designs},  Math. Zeit. {\bf 145}(1975), 211--229.

\bibitem{Bu}
{\sc T.\,Bu}, \emph{Partitions of a vector space},
Disc. Math. {\bf 31}(1980),  79--83.

\bibitem{etzion11}
{\sc T.\,Etzion}, \emph{Product Constructions for Perfect Lee Codes}, IEEE Trans. Inform. Theory {\bf 57}(2011), 7473--7481.

\bibitem{fan}
{\sc Y.\,Fan, Y.\,Gao}, \emph{Codes over algebraic integer rings of cyclotomic fields}, IEEE Trans. Inform. Theory {\bf 50}(2004), 194--200.

\bibitem{golomb}
{\sc S.\,W.\,Golomb, L.\,R.\,Welch}, \emph{Perfect codes in the Lee metric and the packing of polyominoes}, SIAM J. Appl. Math. {\bf 18}(1970), 302--317.

\bibitem{guzeltepe}
{\sc M.\,G\"{u}zeltepe, O.\,Heden}, \emph{Perfect Mannheim, Lipschitz and Hurwitz weight codes}, Math. Commun. {\bf 19}(2014), 253 -- 276.

\bibitem{hamming}
{\sc R.\,W.\,Hamming}, \emph{Error Detecting and Error Correcting Codes}, Bell System Technical Journal {\bf 29}(1950), 147--160.

\bibitem{heden75}
{\sc O.\,Heden}, \emph{A generalized Lloyd theorem and mixed perfect codes}, Math. Scand. {\bf 37}(1975), 13--26.

\bibitem{heden77}
{\sc O.\,Heden}, \emph{A new construction of group and nongroup perfect codes},
Information and Control {\bf 34}(1977), 314--323.

\bibitem{survey}
{\sc O.\,Heden}, \emph{A survey of perfect codes}, Adv. Math. Commun. {\bf 2}(2008), 223--247.

\bibitem{heden11}
{\sc O.\,Heden}, \emph{On Perfect codes over non prime power alphabets}, Contemp. Math. {\bf 523}(2010),  173--184.

\bibitem{Hesur}
{\sc O.\,Heden}, \emph{A survey of the different types of vector space partitions},  Discrete Math. Algorithm. Appl. {\bf 4}(2012), 1--14.

\bibitem{hedenkrotov}
{\sc O.\,Heden, D.\,Krotov}, \emph{On the structure of non-full-rank perfect q-ary codes}, Adv. Math. Commun {\bf 5}(2011),  149--156.

\bibitem{herzog}
{\sc M.\,Herzog, J.\,Sch\"oheim}, \emph{Group partition, factorization and the vector covering
problem}, Canad. Math. Bull. {\bf 15}(1972), 207--214.

\bibitem{lang}
{\sc S.\,Lang}, {\em Algebra}, Addison Wesley, Reading, Massachusetts, London, Sidney and Manila, 1971.

\bibitem{lee}
{\sc C.\,Y.\,Lee}, \emph{Some properties of non-binary error correcting codes},  IEEE Trans. Inform. Theory {\bf 4}(1958), 77--82.

\bibitem{bernt}
{\sc B.\,Lindstr\"om}, \emph{On group and non group perfect codes in $q$ symbols}, Math.
Scand. {\bf 25}(1969), 149--158.

\bibitem{martinez}
{\sc C.\,Martinez, R.\,Beivide, E.\,Gabidulin}, \emph{Perfect codes from Cayley graphs over Lipschitz integers},  IEEE Trans. Inform. Theory  {\bf 55}(2009),  3552--3562.

\bibitem{33}
{\sc K.\,Nakamura}, \emph{A class of error-correcting codes for DPSK channels}, in: {\em Proceedings of the International Conference on Communications}, Boston, Massachusetts, 1979, 45.4.1--45.4.5.
%autor: Conf. Record 1979, IEEE Int'l Conf. Communications (ICC'1979), Boston, Massachusetts 1979, 45.4.1 -- 45.4.5.11.
%K. Nakamura, ?A class of error correcting codes for DPSK channels,? in Proceedings of the International Conference on Communications (ICC '79), vol. 3, p. 45, 1979.
\bibitem{phelps83}
{\sc K.\,Phelps}, \emph{A combinatorial construction of perfect codes}, Siam Journal on Algebraic and Discrete Methods {\bf 4}(1983), 398--403.

\bibitem{phelps84}
{\sc K.\,Phelps}, \emph{A general product construction for  error correcting codes}, SIAM Journal of
Algebra and Discrete Methods {\bf 5}(1984), 224--228.

\bibitem{roth}
{\sc R.\,M.\,Roth}, {\em Introduction to Coding Theory},  Cambridge University Press, Cambridge, 2006.

\bibitem{schonheim}
{\sc J.\,Sch\"onheim}, \emph{On linear and nonlinear, single-error-correcting $q$-nary
perfect codes}, Information and Control {\bf 12}(1968), 23--26.

\bibitem{shapiro}
{\sc H.\,S.\,Shapiro, D.\,L.\,Slotnick}, \emph{On the mathematical theory of error-correcting codes}, IBM J. Res. Develop. {\bf 3}(1959), 25--34.

\bibitem{sol81}
{\sc F.\,I.\,Solov'eva}, \emph{On binary nongroup codes}, Methody Discretnogo Analiza {\bf 37}(1981),  65--76,(in Russian).

\bibitem{sol89}
{\sc F.\,I.\,Solov'eva}, \emph{Class of closed-packed binary codes generated by $q$-ary codes}, Methody Discretnogo Analiza {\bf 48}(1989),  70--72 (in Russian).

\bibitem{solbok}
{\sc F.\,I.\,Solov'eva},  \emph{On Perfect Codes and Related Topics},
Com$^2$Mac
Lecture Note
Series 13, Pohang, 2004.

\bibitem{vasiliev}
{\sc Y.\,L.\,Vasil'ev}, \emph{On Nongroup close-packed codes}, Problemy Kibernetiki {\bf 8}(1962),  337--339.

\bibitem{victor88}
{\sc V.\,A.\,Zinoviev}, \emph{A combinatorial method for the construction and analysis of nonlinear error-correcting codes}, Doc. D. Thesis, Moscow, 1988.

\end{thebibliography}


%The {\sf mc.cls}  document class is designed to produce papers suitable for publication in the {\em Mathematical Communications}.
%It is based on the standard article \LaTeX2e class.
%The following standard packages
%are  already loaded:
%{\tt amssymb, amsmath,amsthm, latexsym, amsfonts,amsbsyt, graphicx}.

%\underline{This is a template article, which you can use as a skeleton for your own article}.


%\end{linenumbers}

\end{document}
