# Cyclic Codes over a Non-Commutative Non-Unital Ring

Adel Alahmadi, Malak Altaiary, Patrick Solé

► To cite this version:

Adel Alahmadi, Malak Altaiary, Patrick Solé. Cyclic Codes over a Non-Commutative Non-Unital Ring. Mathematics, 2024, 12 (13), pp.2014. 10.3390/math12132014. hal-04629314

HAL Id: hal-04629314

https://hal.science/hal-04629314v1

Submitted on 29 Jun 2024

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
Article

# Cyclic Codes over a Non-Commutative Non-Unital Ring

Adel Alahmadi <fnref n="1" />,*, Malak Altaiary <fnref n="1" />,<fnref n="2" /> and Patrick Solé <fnref n="3" />

**Abstract:** In this paper, we investigate cyclic codes over the ring $E$ of order 4 and characteristic 2 defined by generators and relations as $E = \langle a, b | 2a = 2b = 0, a^2 = a, b^2 = b, ab = a, ba = b \rangle$. This is the first time that cyclic codes over the ring $E$ are studied. Each cyclic code of length $n$ over $E$ is identified uniquely by the data of an ordered pair of binary cyclic codes of length $n$. We characterize self-dual, left self-dual, right self-dual, and linear complementary dual (LCD) cyclic codes over $E$. We classify cyclic codes of length at most 7 up to equivalence. A Gray map between cyclic codes of length $n$ over $E$ and quasi-cyclic codes of length $2n$ over $\mathbb{F}_2$ is studied. Motivated by DNA computing, conditions for reversibility and invariance under complementation are derived.

**Keywords:** non-unitary rings; cyclic codes; self-orthogonal codes; Gray map

**MSC:** 94B15; 16D10

## 1. Introduction

Cyclic codes over finite fields [1] and finite rings [2], form the most popular class of algebraic codes for both theoreticians and engineers. The well-known reason is their representation as ideals over the polynomial ring $B(A, n) = A[x]/(x^n - 1)$, where $x$ is a formal variable and $A$ the code alphabet (a finite ring or a finite field in the above references). The ring $B(A, n)$ being principal, each ideal in that ring is uniquely characterized by a polynomial $g$, say, called the generator polynomial. However, if the alphabet ring is non-unitary (without a unit element for multiplication) this approach does not function since the ring $B(A, n)$ cannot be defined for lack of the element $X^n - 1$ in $A[x]$.

In this paper, we study cyclic codes over the nonunitary ring $E$ defined by generators and relations $E = \langle a, b | 2a = 2b = 0, a^2 = a, b^2 = b, ab = a, ba = b \rangle$, from the standpoints of duality, classification, and Gray map. This is the first time that cyclic codes over the ring $E$ are studied. In a companion paper [3], cyclic codes over the ring $H$ in the classification of [4] were considered. Since $E$ is a local ring, and $H$ is only semilocal with two maximal ideals, the difference in the algebraic structure of the codes over these rings is such that different algebraic techniques are required. Specifically, we characterize the cyclicity of an $E$-code in terms of the cyclicity of its residue and torsion codes. The theory of duality of cyclic $E$-codes is studied. Both the quasi self-dual codes (QSD) of [5] and the self-dual codes in the sense of [6] are considered. The notion of Type IV codes of [5] (i.e., both QSD and with codewords of even Hamming weight) also enters the discussion. The concept of Linear Complementary Dual codes (shortly LCD codes) introduced by Massey [7] for codes over finite fields, and revisited over $E$ in [6] is also considered here. A duality-preserving Gray map, that associates with cyclic codes over $E$ a quasi-cyclic code of double the length over the binary field is introduced and studied. Motivated by DNA computing a different notion of complementation was introduced in [8]. We derive necessary and sufficient conditions for a cyclic $E$-code to be invariant under that permutation of $E$. With the same motivation,

<figure><img src="image_2.png" /></figure>

check for
updates

**Citation:** Alahmadi, A.; Altaiary, M.; Solé, P. Cyclic Codes over a Non-Commutative Non-Unital Ring. Mathematics 2024, 12, 2014. https://doi.org/10.3390/math12132014

Academic Editor: Michael Voskoglou

Received: 13 May 2024

Revised: 9 June 2024

Accepted: 17 June 2024

Published: 28 June 2024

<figure><img src="image_3.png" /></figure>

**Copyright:** © 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).

<footnote n="1">¹ Research Group of Algebraic Structures and Applications, Mathematics Department, Faculty of Science, King Abdulaziz University, Jeddah 21589, Saudi Arabia; m_altiari@su.edu.sa</footnote>

<footnote n="2">² Mathematics Department, Shaqra University, Shaqra 11961, Saudi Arabia</footnote>

<footnote n="3">³ I2M Lab, CNRS, Centrale Marseille, Aix Marseille University, 13009 Marseilles, France; sole@enst.fr</footnote>

<footnote>* Correspondence: analahmadi@kau.edu.sa</footnote>
necessary and sufficient conditions for reversibility of cyclic codes over E are derived here. All the above notions are illustrated by a complete classification in length at most 7.

The material is arranged as follows. Section 2 collects basic notions and notations needed for the other sections. Section 3 studies the structure of cyclic codes over E. Section 4 introduces the Gray map. Section 5 contains the numerical classification results. Section 6 is the Conclusion.

## 2. Preliminaries

### 2.1. Binary Codes

The Hamming weight of $x \in \mathbb{F}_2^n$ is denoted by $wt(x)$ is the number of nonzero coordinates in $x$. The dual of a binary linear code C is signified by $C^{\perp}$ and defined as:

$$C^{\perp} = \{y \in \mathbb{F}_2^n | \forall x \in C, (x, y) = 0\},$$

where $(x, y) = \sum_{i=1}^{n} x_i y_i$, denotes the standard inner product. If the code C appears in its duality, $C \subseteq C^{\perp}$, then the code C is self-orthogonal. A code is even if all its codewords have even weight. All binary self-orthogonal codes are even, but not all binary codes are self-orthogonal. Two binary codes are equivalent if there is a permutation of coordinates that maps one to the other.

A linear code C of length $n$ over $\mathbb{F}_2$ is cyclic provided that for each vector $c = c_0 \dots c_{n-2}c_{n-1}$ in C the vector $c' = c_{n-1}c_0 \dots c_{n-2}$, obtained from $c$ by the cyclic shift of coordinates $i \mapsto i+1 \pmod n$, is also in C. We refer to $c'$ as the cyclic shift of $c$.

### 2.2. Rings and Modules

Following [4], we define a ring on two generators $a, b$ by their relations

$$E = \langle a, b \mid 2a = 2b = 0, a^2 = a, b^2 = b, ab = a, ba = b \rangle.$$

A model for that ring can be obtained by taking $a, b$ to be matrices over $\mathbb{F}_2$ defined by

$$a = \begin{pmatrix} 0 & 0 \\ 0 & 1 \end{pmatrix}, b = \begin{pmatrix} 0 & 1 \\ 0 & 1 \end{pmatrix}.$$

Thus, E has characteristic two and consists of four elements $E = \{0, a, b, c\}$, with $c = a + b$. From these definitions, the addition table is given below

<table><tr><td>+</td><td>0</td><td>a</td><td>b</td><td>c</td></tr><tr><td>0</td><td>0</td><td>a</td><td>b</td><td>c</td></tr><tr><td>a</td><td>a</td><td>0</td><td>c</td><td>b</td></tr><tr><td>b</td><td>b</td><td>c</td><td>0</td><td>a</td></tr><tr><td>c</td><td>c</td><td>b</td><td>a</td><td>0</td></tr></table>

The multiplication table is as below.

<table><tr><td>×</td><td>0</td><td>a</td><td>b</td><td>c</td></tr><tr><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>a</td><td>0</td><td>a</td><td>a</td><td>0</td></tr><tr><td>b</td><td>0</td><td>b</td><td>b</td><td>0</td></tr><tr><td>c</td><td>0</td><td>c</td><td>c</td><td>0</td></tr></table>

From this table, we conclude that this ring is non-commutative, and does not contain a multiplicative identity element. It is local with maximal ideal $J = \{0, c\}$, and residue field $E/J \simeq \mathbb{F}_2 = \{0, 1\}$, the finite field of order 2.
Thus we have a c-adic decomposition as follows. Every element $e \in E$ can be written

$$e = as + ct,$$

where $s, t \in \mathbb{F}_2$ and where we have defined a natural action of $\mathbb{F}_2$ on $E$ by the rule $r0 = 0r = 0$ and $r1 = 1r = r$ for all $r \in E$. Thus $a = 1a, c = 1c$ and $b = a1 + c1$. Note, that for all $r \in E$ this action is "distributive" in the sense that $r(s \oplus_2 t) = rs + rt$, where $\oplus_2$ denotes the addition in $\mathbb{F}_2$.

Denote by $\alpha: E \to E/J \simeq \mathbb{F}_2$ the map of reduction modulo $J$. Thus $\alpha(0) = \alpha(c) = 0$, and $\alpha(a) = \alpha(b) = 1$. This map is extended in a natural way in a map from $E^n$ to $\mathbb{F}_2$.

A linear E-code C of length $n$ is an E-submodule of $E^n$. An additive code of length $n$ over $\mathbb{F}_4$ is an additive subgroup of $\mathbb{F}_4^n$. It is a free $\mathbb{F}_2$ module with $4^k$ elements for some $k \le n$. Using a generator matrix $G$, such a code can be cast as the $\mathbb{F}_2$-span of its rows. To every linear E-code C is attached an additive $\mathbb{F}_4$-code $\phi(C)$ by the alphabet substitution

$$0 \to 0, a \to \omega, b \to \omega^2, c \to 1,$$

where $\mathbb{F}_4=\mathbb{F}_2[\omega]$. Note, that the reverse substitution attaches to every additive $\mathbb{F}_4$ code an additive subgroup of $E^n$, which may or may not be linear. Two E-codes are permutation equivalent if there is a permutation of coordinates that maps one to the other.

## 2.3. Duality

Define an **inner product** on $E^n$ as $(x, y) = \sum_{i=1}^{n} x_i y_i$.

The **right dual** $C^{\perp R}$ of $C$ is the right module defined by

$$C^{\perp R} = \{y \in E^n | \forall x \in C, (x, y) = 0\}.$$

The **left dual** $C^{\perp L}$ of $C$ is the left module defined by

$$C^{\perp L} = \{y \in E^n | \forall x \in C, (y, x) = 0\}.$$

Thus the left (resp. right) dual of a left (resp. right) module is a left (resp. right) module. A code is **left self-dual** (resp. right self-dual) if it is equal to its left (resp. right) dual. A left self-dual code C satisfies $C^{\perp L} = C$. Likewise a right self-dual code C satisfies $C^{\perp R} = C$.

There are two binary linear codes of length $n$ associated canonically with every linear code C of length $n$ over $E$:

* the **residue code** $\text{res}(C)$ defined by $\text{res}(C) = \{\alpha(y)|y \in C\}$,

* the **torsion code** $\text{tor}(C)$ defined by $\text{tor}(C) = \{x \in \mathbb{F}_2^n | cx \in C\}$.

The inclusion $\text{res}(C) \subseteq \text{tor}(C)$ is satisfied by the two binary codes, and the relationship between their sizes and C's size is $|C| = |\text{res}(C)||\text{tor}(C)|$. Let $k_1 = \dim(\text{res}(C))$ and $k_2 = \dim(\text{tor}(C)) - k_1$. The linear code C is said to be of **type** $(k_1, k_2)$. We say that a linear code is **free** if and only if $k_2 = 0$. Equivalently, C is free if and only if $\text{res}(C) = \text{tor}(C)$.

## 3. The Structure of Cyclic Codes over E

**Definition 1.** A cyclic code C of length $n$ over $E$ is a linear code with the property that if $c = (c_0, c_1, \dots, c_{n-1}) \in C$ then $c' = (c_{n-1}, c_0, \dots, c_{n-2}) \in C$.

**Example 1.** The repetition code of length 2, defined by $R_2 = \{00, aa, bb, cc\}$ is a cyclic code over E.

To prepare for the study of cyclic codes over E, we need the following two results.
**Lemma 1** (Lemma 1 in [6]). If C is a linear code of length n over E, then a res(C) ⊆ C.

**Theorem 1** (Theorem 7 in [6]). If C is a linear code of length n over E, then C = a res(C) ⊕ c tor(C).

The following result can be deduced from the previous theory.

**Corollary 1.** If C is a linear binary cyclic code of length n over E and let res(C) and tor(C) are two binary cyclic codes of length n over E with generators g₁(x) and g₂(x), respectively, then a generator matrix G of C is of the form

$$G = \begin{pmatrix} aG_1 \\ cG_2 \end{pmatrix}.$$

where G₁ and G₂ are generators matrices of res(C) and tor(C), respectively.

**Proof.** The proof is direct from Theorem 4.2.1 in [9] and Theorem 1. □

The following result is of crucial importance to our study.

**Theorem 2.** A linear code C over E is a cyclic code if and only if res(C) and tor(C) are cyclic codes over $\mathbb{F}_2$.

**Proof.** If C is a cyclic code over E, we want to show that res(C) and tor(C) are both cyclic. Let $x \in res(C)$ then $ax \in C$ and since C is cyclic this implies that $ax' \in C$ then we obtain $x' \in res(C)$ and this means res(C) is cyclic. Let $y \in tor(C)$ then $cy \in C$ and as C is cyclic this implies that $cy' \in C$ then we have $y' \in tor(C)$ and we conclude tor(C) is cyclic. Conversely, If res(C) and tor(C) are cyclic then a res(C) and c tor(C) are cyclic. We need to prove that $C = a res(C) \oplus c tor(C)$ is cyclic. Let $u = ax + cy \in a res(C) \oplus c tor(C)$ then $u' = ax' + cy' \in a res(C) \oplus c tor(C)$. Hence, C is cyclic. □

In the following two examples, we make it clear that in the case of only one of res(C) or tor(C) is cyclic, it does not necessarily follow that C is cyclic.

**Example 2.** Let res(C) = {00,01} and tor(C) = {00,01,10,11} be linear codes over $\mathbb{F}_2$. We note that res(C) ⊆ tor(C) and is not cyclic, but tor(C) is cyclic. Indeed it can be seen by inspection that C is not cyclic since C = {00,0a,0c,c0,cc,0b,ca,cb}.

**Example 3.** Let res(C) = < $\begin{pmatrix} 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 1 \end{pmatrix}$ > and tor(C) = < $\begin{pmatrix} 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 1 \\ 0 & 1 & 0 & 0 \end{pmatrix}$ > be linear codes over $\mathbb{F}_2$. Here res(C) is cyclic, but tor(C) is not cyclic. This implies that C is not cyclic.

To prepare for the study of left self-dual, right self-dual and self-dual cyclic codes over E, we need the following two lemmas on the duality of E-codes.

**Lemma 2** (Corollary 4 in [6]). If C is a linear code of length n over E, then the following holds:

1. $C^{\perp L} = a res(C)^{\perp} \oplus c res(C)^{\perp}$.

2. $C^{\perp R} = a tor(C)^{\perp} \oplus c \mathbb{F}_2^n$.

**Lemma 3** (Corollary 5 in [6]). If C is a linear code over E, then $C^{\perp} = a tor(C)^{\perp} \oplus c res(C)^{\perp}$.

The consequence for cyclic codes is the following.

**Corollary 2.** If C is a cyclic code over E, then the left dual code $C^{\perp L}$ of C is also cyclic.
**Proof.** By Lemma 2, we obtain $C^{\perp L} = a \operatorname{res}(C)^{\perp} \oplus c \operatorname{res}(C)^{\perp}$. Since the dual code of binary cyclic code is also cyclic. So by Theorem 2, we obtain the result. $\square$

**Corollary 3.** If $C$ is a cyclic code over $E$, then the right dual code $C^{\perp R}$ of $C$ is also cyclic.

**Proof.** By Lemma 2, we obtain $C^{\perp R} = a \operatorname{tor}(C)^{\perp} \oplus c \operatorname{res}(C)^{\perp}$. Since the dual code of binary cyclic code is also cyclic. So by Theorem 2 and the fact that $\mathbb{F}_2^n$ is a cyclic code, we obtain the result. $\square$

**Corollary 4.** If $C$ is a cyclic code over $E$, then the dual code $C^{\perp}$ of $C$ is also cyclic.

**Proof.** By Lemma 3, we obtain $C^{\perp} = a \operatorname{tor}(C)^{\perp} \oplus c \operatorname{res}(C)^{\perp}$. Since the dual code of binary cyclic code is also cyclic. So by Theorem 2, we obtain the result. $\square$

To prepare for the study of the existence of cyclic self-dual codes over $E$ we need the following two results.

**Theorem 3** (Theorem 14 in [6]). If $C$ is a linear code of length $n$ over $E$, then the following holds:

* $C$ is the left self-dual if and only if $C$ is free and $\operatorname{res}(C)$ is self-dual.

* $C$ is the right self-dual if and only if $C$ is of type $(0, n)$.

**Corollary 5** (Corollary 11 in [6]). Let $C$ be a linear code of length $n$ over $E$. If $C$ is either left self-dual or right self-dual, then $C$ is self-dual.

From the previous two results we conclude the following,

**Proposition 1.** Cyclic self-dual codes of all lengths exist over $E$.

**Proof.** For any length $n$, $\mathbb{F}_2^n$ is a binary cyclic code. By Theorem 2 and Theorem 3, $C = c\mathbb{F}_2^n$ is a cyclic right self-dual code over $E$. By Corollary 4, $C$ is a cyclic self-dual code. $\square$

Some scholars would consider $C = c\mathbb{F}_2^n$ to be a trivial example of a cyclic code. An answer to that remark might be the following

**Proposition 2.** Nontrivial cyclic self-dual codes of all even lengths exist over $E$.

**Proof.** If $n$ is even, binary self-dual cyclic codes exist. We can construct a free code $C$ over $E$ with $\operatorname{res}(C)$ that is self-dual. Self-duality follows then by combining Theorem 3 and Corollary 4. Nontriviality follows because the residue code is not the zero code. $\square$

We require the following general result.

**Theorem 4** (Theorem 15 in [6]). A linear code $C$ over $E$ is self-dual if and only if $\operatorname{res}(C) = \operatorname{tor}(C)^{\perp}$.

The next result is known as the multilevel construction.

**Theorem 5.** Let $B$ be a binary cyclic self-dual code of length $n$ over $E$. The code $C$ as defined by the relationship $C = aB + cB^{\perp}$ is a cyclic self-dual code. Its residue code is $B$ and its torsion code is $B^{\perp}$.
**Proof.** First, we want to show that $C$ is a linear code over $E$. Let $x \in C$ then $x = au + cv$ where $u \in B$ and $v \in B^\perp$. $cx = cau + c^2v = cu + 0 = cu \in cB \subseteq cB^\perp \subseteq C$. $bx = bau + bcv = bu + 0 = bu \in bB \subseteq aB + cB \subseteq aB + cB^\perp \subseteq C$. $ax = a^2u + acv = au + 0 = au \in aB \subseteq C$.

Hence, $C$ is closed under addition, by linearity of $B$.

Second, we want to prove that $C$ is self-dual. Since $\mathrm{res}(C) = B$ and $\mathrm{tor}(C) = B^\perp$ i.e., $\mathrm{res}(C) = \mathrm{tor}(C)^\perp$ then by Theorem 4 C is self-dual.

Finally, based on Theorem 2 and Corollary 3, and given that both $B$ and $B^\perp$ are cyclic then we conclude that $C$ is also cyclic code over $E$. $\square$

LCD codes over $E$ are characterized as follows.

**Theorem 6** (Theorem 17 in [6]). Let $C$ be a linear code of length $n$ over $E$. The following hold:

* If $C$ is LCD, then $\mathrm{res}(C)$ and $\mathrm{tor}(C)$ are binary LCD codes.

* If $C$ is free and $\mathrm{res}(C)$ is a binary LCD code, then $C$ is LCD.

The following results follow immediately by Theorems 2 and 6.

**Corollary 6.** Let $C$ be a cyclic code over $E$, then $C$ is an LCD cyclic code if $\mathrm{res}(C)$ and $\mathrm{tor}(C)$ are LCD cyclic codes.

**Corollary 7.** Let $C$ be a cyclic code over $E$, then $C$ is the LCD cyclic code if $C$ is free and $\mathrm{res}(C)$ is the LCD cyclic code.

**4. Gray Map**

Any codeword of $E$ can be expressed as $e = ax + cy$, where $a, c$ are generators for the ring $E$ and $x, y$ are arbitrary elements in $\mathbb{F}_2$. The Lee weights of $0, a, b, c \in E$ are 0, 1, 1, 2, respectively. The **Gray map** from $E$ to $\mathbb{F}_2 \times \mathbb{F}_2$ is given by $\lambda(e) = (x, x+y)$. The Gray map is a bijection. This map can be extended to $E^n$ in a natural way. For any $r = (r_0, r_1, \dots, r_{n-1}) \in E^n$, where $r_i = au_i + cv_i, 0 \le i \le n-1$, we define $\lambda(r) = (u(r), u(r) + v(r))$, where $u(r) = (u_0, u_1, \dots, u_{n-1}), v(r) = (v_0, v_1, \dots, v_{n-1})$. Then, $\lambda$ is a weight-preserving map from $(E^n$, Lee weight) to $(\mathbb{F}_2^{2n}$, Hamming weight), that is $w_L(r) = w_H(\lambda(r))$.

**Example 4.** Let $C = a \, \mathrm{res}(C) \oplus c \, \mathrm{tor}(C)$ where $\mathrm{res}(C)$ and $\mathrm{tor}(C)$ are binary codes generated by $\mathrm{res}(C) = (000)$ and $\mathrm{tor}(C) = \begin{pmatrix} 1 & 1 & 0 \\ 0 & 1 & 1 \end{pmatrix}$ then $\mathrm{tor}(C) = \{000, 110, 011, 101\}$. Therefore, $C = \{000, cc0, 0cc, c0c\}$ and we can write the code $C$ like this $C = \{a(000) + c(000), a(000) + c(110), a(000) + c(011), a(000) + c(101)\}$. Hence, $\lambda(C) = \{000000, 000110, 000011, 000101\}$.

**Example 5.** Let $C = a \, \mathrm{res}(C) \oplus c \, \mathrm{tor}(C)$ where $\mathrm{res}(C)$ and $\mathrm{tor}(C)$ are binary codes generated by $\mathrm{res}(C) = (1111)$ and $\mathrm{tor}(C)$ is Reed-muller code generated by $G(1,2) = \begin{pmatrix} 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 1 \\ 0 & 0 & 1 & 1 \end{pmatrix}$ then $C = \{0000, aaaa, c0c0, 0c0c, 00cc, c00c, 0cc0, cc00, cccc, baba, abab, aabb, baab, abba, bbaa, bbbb\}$.

Hence

$$ \lambda(C) = \{00000000, 11111111, 00001010, 00000101, 00000011, 00001001, 00000110, 00001100, 00001111, 11110101, 11111010, 11111100, 11110110, 11111001, 11110011, 11110000\}. $$

We characterize the Gray image of a linear $E$-code as the Plotkin sum (a.k.a. $(u, u+v)$ construction [1]) of its residue and torsion codes.

**Theorem 7.** Let $C$ be a linear code of length $n$ over $E$. Then, $\lambda(C) = \{(u, u+v)|u \in \mathrm{res}(C) \text{ and } v \in \mathrm{tor}(C)\}$.
**Proof.** Let $\lambda(\mathbf{c}) \in \lambda(C)$. Then, using Theorem 1, we have $\mathbf{c} = au + cv$ where $u \in \text{res}(C)$ and $v \in \text{tor}(C)$. By definition of $\lambda$ we have $\lambda(\mathbf{c}) = (u, u + v) \in \{(u, u + v)|u \in \text{res}(C) \text{ and} v \in \text{tor}(C)\}$. Therefore, $\lambda(\mathbf{c}) \subseteq \{(u, u + v)|u \in \text{res}(C) \text{ and } v \in \text{tor}(C)\}$.

On the other hand, for any $\{(u, u + v)|u \in \text{res}(C) \text{ and } v \in \text{tor}(C)\}$, we have $au \in a \text{ res}(C) \subseteq C$ and $cv \in \text{tor}(C) \subseteq C$. By lineartiy of C, $cu \in C$ and thus $au + cu + cv \in C$. Hence, $au + c(u + v) \in C$ and $(u, u + v) = \lambda(au + c(u + v)) \in \lambda(C)$. Therefore, $\{(u, u + v)|u \in \text{res}(C) \text{ and } v \in \text{tor}(C)\} \subseteq \lambda(C)$. Hence, $\lambda(C) = \{(u, u + v)|u \in \text{res}(C) \text{ and } v \in \text{tor}(C)\}$. $\square$

**Corollary 8.** Let $C$ be a linear code of length $n$ over $E$ and $\lambda(C) = \{(u, u + v)|u \in \text{res}(C) \text{ and } v \in \text{tor}(C)\}$. Then, $\lambda(C^{\perp}) = \{(u, u + v)|u \in \text{tor}(C)^{\perp} \text{ and } v \in \text{res}(C)^{\perp}\}$.

**Proof.** Follows directly from Lemma 3 and Theorem 7. $\square$

We need to prove the following proposition using Theorem 3 in order to be ready to
explore the relationship between duality and the Gray map.

**Proposition 3.** Let $C^{\perp}$ be the dual code of $C$ over $E$. If $C$ is a left self-dual code over $E$ then
$\lambda(C^{\perp}) = \lambda(C)^{\perp}$.

**Proof.** For any $c_1 = au_1 + cv_1 \in C$, $c_2 = au_2 + cv_2 \in C^{\perp}$ where $u_1, u_2, v_1, v_2 \in \mathbb{F}_2^n$, we can obtain that $\lambda(c_1) \cdot \lambda(c_2) = (u_1, u_1 + v_1) \cdot (u_2, u_2 + v_2) = 2u_1 \cdot u_2 + u_1 \cdot v_2 + v_1 \cdot u_2 + v_1 \cdot v_2 = 0$ which means $\lambda(C^{\perp}) \subseteq \lambda(C)^{\perp}$.

On the other hand, let $\lambda(c_1) = \lambda(au_1 + cv_1) = (u_1, u_1 + v_1) \in \lambda(C)$ and $\lambda(c_2) = \lambda(au_2 + cv_2) = (u_2, u_2 + v_2) \in \lambda(C)^{\perp}$ where $u_1, u_2, v_1, v_2 \in \mathbb{F}_2^n$, we can obtain that $c_1 \cdot c_2 = a^2u_1 \cdot u_2 + acu_1 \cdot v_2 + cau_2 \cdot v_1 + c^2v_1 \cdot v_2 = 0$ which means $\lambda(C)^{\perp} \subseteq \lambda(C^{\perp})$. Hence, $\lambda(C^{\perp}) = \lambda(C)^{\perp}$. $\square$

From the previous proposition, we can conclude the following directly.

**Corollary 9.** If $C$ is left self-dual over $E$ then $\lambda(C)$ is self-dual.

As for the previous proposition, the following example shows that it does not apply to
self-dual and to right self-dual in this case.

**Example 6.** The code $C = \{00, 0c, c0, cc\}$ is self-dual and right self-dual, then $\lambda(C) = \{a(00) + c(00), a(00) + c(01), a(00) + c(10), a(00) + c(11)\}$. As $C$ is self-dual $\Rightarrow \lambda(C^{\perp}) = \lambda(C) = \{0000, 0001, 0010, 0011\}$. Since $(0001) \cdot (0001) = 1 \neq 0$. $\Rightarrow 0001 \notin \lambda(C)^{\perp}$. Therefore, $\lambda(C^{\perp}) \neq \lambda(C)^{\perp}$.

We may create a new code $C_3 = \lambda(C)$ from a $(n, |C_1|, d_1)$ code $C_1 = \text{res}(C)$ and a $(n, |C_2|, d_2)$ code $C_2 = \text{tor}(C)$, both with the same lengths. This new code is composed of all vectors $(u, u + v)$, where $u \in C_1$ and $v \in C_2$.

From Theorem 33 in [1], we can infer the following conclusion.

**Corollary 10.** If $C$ is a linear $E$-code with residue and torsion codes as said above then $\lambda(C)$ is a $(2n, |C|, d = \min\{2d_1, d_2\})$ code.

**Example 7.** If $C$ is such that its residue and torsion codes are the Simplex and Hamming codes of respective parameters $[2^m - 1, m, 2^{m-1}]$ and $[2^m - 1, 2^m - 1 - m, 3]$ for some integer $m \ge 2$, then $\lambda(C)$ is a $[2^{m+1} - 2, 2^m - 1, 3]$ code.

**Theorem 8.** Let $C$ and $D$ be two linear codes over $E$. The codes $\lambda(C)$ and $\lambda(D)$ are permutation equivalent if and only if $C$ and $D$ are permutation equivalent.
**Proof.** ⇔ Since $\lambda(C)$ and $\lambda(D)$ are permutation equivalent then there exists a permutation matrix $P$ such that $\mathrm{res}(D) = \mathrm{res}(C)P$ and $\mathrm{tor}(D) = \mathrm{tor}(C)P$. Since $C$ and $D$ are two linear codes over $E$, by Theorem 1. We have $C = a \mathrm{res}(C) \oplus c \mathrm{tor}(C)$ and $D = a \mathrm{res}(D) \oplus c \mathrm{tor}(D)$. This implies that $D = a \mathrm{res}(C)P \oplus c \mathrm{tor}(C)P$. Hence, $C$ and $D$ are permutation equivalent. □

**Proposition 4.** If $C$ and $D$ are two linear codes over $E$, such that $\lambda(C) = \lambda(D)$ then $C = D$.

**Proof.** Since $\lambda(C) = \lambda(D)$, we know that $\mathrm{res}(C) = \mathrm{res}(D)$ and $\mathrm{tor}(C) = \mathrm{tor}(D)$. Hence, we have $C = D$. □

To prepare for the study of the symmetry of Gray images, we need the following Definition.

**Definition 2.** Let $\varphi_s$ be the quasi-cyclic shift on $(\mathbb{F}_2^n)^s$ given by: $\varphi_s(x^{(1)}|x^{(2)}|\dots|x^{(s)}) = (\sigma(x^{(1)})|\sigma(x^{(2)})|\dots|\sigma(x^{(s)}))$. A quasi-cyclic code $C$ of index $s$ and length $ns$ over $\mathbb{F}_2$ is a subset of $(\mathbb{F}_2^n)^s$ such that $\varphi_s(C) = C$.

**Proposition 5.** Let $\lambda$ be the Gray map defined above, $\sigma$ is the cyclic shift and $\varphi_2$ is the quasi-cyclic shift on $(\mathbb{F}_2^n)^2$. Then, we have $\lambda(\sigma(C)) = \varphi_2(\lambda(C))$.

**Proof.** Let $c = (c_0, c_1, \dots, c_{n-1}) \in E^n$ where $c_i = ax_i + cy_i \in E$ and $x_i, y_i \in \mathbb{F}_2^n$ for $i = 0, 1, \dots, n-1$. Therefore, we have

$$ \lambda(\sigma(c)) = \lambda(c_{n-1}, c_0, c_1, \dots, c_{n-2}) \\ = (x_{n-1}, x_0, x_1, \dots, x_{n-2}, x_{n-1} + y_{n-1}, x_0 + y_0, x_1 + y_1, \dots, x_{n-2} + y_{n-2}), $$

and

$$ \varphi_2(\lambda(c)) = \varphi_2(x_0, x_1, \dots, x_{n-1}, x_0 + y_0, x_1 + y_1, \dots, x_{n-1} + y_{n-1}) \\ = (x_{n-1}, x_0, x_1, \dots, x_{n-2}, x_{n-1} + y_{n-1}, x_0 + y_0, x_1 + y_1, \dots, x_{n-2} + y_{n-2}). $$

$$ \text{Hence, } \lambda(\sigma(C)) = \varphi_2(\lambda(C)). \quad \square $$

**Theorem 9.** If $C$ is a cyclic code of length $n$ over $E$, then $\lambda(C)$ is a binary quasi-cyclic code of index $2$ and length $2n$.

**Proof.** As $C$ is a cyclic code of length $n$ over $E$, then $\sigma(C) = C$. By taking $\lambda$ for both sides and using Proposition 5, we obtain: $\varphi_2(\lambda(C)) = \lambda(C)$. This implies that $\lambda(C)$ is a binary quasi-cyclic code of index $2$ and length $2n$. □

Considering $\Lambda$ as the permuted version of the above Gray map $\lambda$, we define $\Lambda$ as follows:

$$ \Lambda(c_0, c_1, \dots, c_{n-1}) = (\lambda(c_0), \lambda(c_1), \dots, \lambda(c_{n-1})) \\ = (x_0, x_0 + y_0, x_1, x_1 + y_1, \dots, x_{n-1}, x_{n-1} + y_{n-1}) \quad (1) $$

where $c_j = ax_j + cy_j \in E$ and $x_j, y_j \in \mathbb{F}_2$ for $j = 0, 1, \dots, n-1$.

In the next results, we extend a few results from [10].

**Proposition 6.** For any $c \in E^n$, we have $\Lambda(\sigma(c)) = \sigma^2(\Lambda(c))$, where $\Lambda$ is the map defined in Equation (1) and $\sigma$ is the cyclic shift.
**Proof.** Let $c = (c_0, c_1, \dots, c_{n-1}) \in E^n$ where $c_j = ax_j + cy_j \in E$ and $x_j, y_j \in \mathbb{F}_2^n$ for $j = 0, 1, \dots, n-1$. Then

$$ \begin{aligned} \Lambda(\sigma(c)) &= \Lambda(c_{n-1}, c_0, c_1, \dots, c_{n-2}) \\ &= (x_{n-1}, x_{n-1} + y_{n-1}, x_0, x_0 + y_0, x_1, x_1 + y_1, \dots, x_{n-2}, x + n - 2 + y_{n-2}), \end{aligned} $$

and

$$ \begin{aligned} \sigma^2(\Lambda(c)) &= \sigma^2(x_0, x_0 + y_0, x_1, x_1 + y_1, \dots, x_{n-1}, x_{n-1} + y_{n-1}) \\ &= (x_{n-1}, x_{n-1} + y_{n-1}, x_0, x_0 + y_0, x_1, x_1 + y_1, \dots, x_{n-2}, x_{n-2} + y_{n-2}). \end{aligned} $$

$$ \text{Hence, } \Lambda(\sigma(C)) = \sigma^2(\Lambda(C)). \quad \square $$

**Theorem 10.** Let $C$ be a cyclic code of length $n$ over $E$. Then, $\Lambda(C)$ is equivalent to a 2-quasicyclic code of length $2n$ over $\mathbb{F}_2$.

**Proof.** As $C$ is a cyclic code of length $n$ over $E$, $\sigma(C) = C$. By taking $\Lambda$ for both sides and using Proposition 6, we obtain: $\sigma^2(\Lambda(C)) = \Lambda(C)$. This implies that $\Lambda(C)$ is equivalent to a 2-quasicyclic code of length $2n$ over $\mathbb{F}_2$. $\square$

The following proposition discusses the special case if $n$ is an odd. We applied Theorem 1 from [11] in the next proposition.

**Proposition 7.** Let $\text{res}(C)$ be a binary cyclic code of length $n$ (odd) with generator $g_1(x)$ and let $\text{tor}(C)$ be a binary cyclic code of length $n$ with generator $g_2(x)$ and $g_2(x)|g_1(x)$. Then, the Gray image is a binary cyclic code of length $2n$ with generator $g_1(x)g_2(x)$ is equivalent to the $(u, u + v)$ sum of $\text{res}(C)$ and $\text{tor}(C)$.

The following simple example illustrates the previous proposition.

**Example 8.** Let $C$ be a linear cyclic code of length $3$ over $E$ with a generator matrix

$$ G = \begin{pmatrix} a & a & a \\ c & 0 & 0 \\ 0 & c & 0 \\ 0 & 0 & c \end{pmatrix}, $$

where $\text{rse}(C)$ is a binary cyclic code of length $3$ generated by $(111)$ and $\text{tor}(C)$ is a binary cyclic code of length $3$ generated by $I_3$. Then,

$$ \lambda(C) = \{000000, 111111, 000100, 000010, 000001, 000110, 000101, 000011, 000111, 111011, 111101, 111110, 111001, 111010, 111100, 111000\}. $$

is binary cyclic code of length 6.

## 5. Cyclic DNA Codes over E

The goal of DNA coding theory is to provide error-correcting codes for nucleic acid systems. Deoxyribonucleic acid, or DNA, is a molecule made up of four units termed nucleotides: adenine, thymine, guanine, and cystosine, represented by the letters A, T, G, and C, respectively. These four units are combined to form double strands. Chains of these nucleotides are connected by hydrogen bonds, holding them together. G and C have three hydrogen bonds, whereas A and T have two. As a result, these joints form the complementary base pairings $\{G, C\}$ and $\{A, T\}$. The Watson-Crick complement is what
it is known as. We express it as $T^c = A$ and $C^c = G$, or alternatively as $A^c = T$ and $G^c = C$.
Therefore, the set $\{A, T, G, C\}$ is a bijection of this complement map.

**Definition 3** ([8]). Let $x = (x_1x_2...x_n)$ be given (i.e., $x_i \in \{A, T, G, C\}$).

* The reverse of $x$, denoted by $x^R$, is the codeword $(x_nx_{n-1}...x_1)$.

* The complement of $x$, denoted by $x^C$, is the codeword $(x_1^C x_2^C ... x_n^C)$.

* The reverse complement of $x$ is $x^{RC} = (x^R)^C = (x^C)^R$.

**Theorem 11.** Let $C$ be a linear code over $E$ then $C$ is reversible code over $E$ if and only if $\text{res}(C)$ and $\text{tor}(C)$ are reversible codes over $\mathbb{F}_2$.

**Proof.** If $C$ is a reversible code over $E$, we want to prove that $\text{res}(C)$ and $\text{tor}(C)$ are both reversible. Let $x \in \text{res}(C)$ then $ax \in C$ and since $C$ is reversible this implies that $a(x_nx_{n-1}\dots x_1) \in C$ then we obtain $(x_nx_{n-1}\dots x_1) \in \text{res}(C)$ and this means $\text{res}(C)$ is reversible. Let $y \in \text{tor}(C)$ then $cy \in C$ and as $C$ is reversible this implies that $c(y_ny_{n-1}\dots y_1) \in C$ then we have $(y_ny_{n-1}\dots y_1) \in \text{tor}(C)$ and we conclude $\text{tor}(C)$ is reversible. Conversely, If $\text{res}(C)$ and $\text{tor}(C)$ are reversible then $a \text{res}(C)$ and $c \text{tor}(C)$ are reversible. We need to show that $C = a \text{res}(C) \oplus c \text{tor}(C)$ is reversible. Let $u = ax + cy \in a \text{res}(C) \oplus c \text{tor}(C)$ then $u = a(x_nx_{n-1}\dots x_1) + c(y_ny_{n-1}\dots y_1) \in a \text{res}(C) \oplus c \text{tor}(C)$. Hence, $C$ is reversible. $\square$

In the following remark, we recall the conditions for binary cyclic codes to be reversible.

**Remark 1.** Let $\tilde{f}(x)$ denote the reciprocal of a polynomial $f(x)$ of $\mathbb{F}_2[x]$. If $\text{res}(C)$ and $\text{tor}(C)$ are $[n, k]$ cyclic codes over $\mathbb{F}_2$ with generators polynomials $g_1(x)$ and $g_2(x)$, respectively, then they are LCD codes if and only if $g_1(x) = \tilde{g}_1(x)$ and $g_2(x) = \tilde{g}_2(x)$ and all the monic irreducible factors of $g_1(x)$ and $g_2(x)$ have same multiplicity in $x^n - 1$ [12]. In particular, for $n$ odd, $\text{res}(C)$ and $\text{tor}(C)$ are LCD codes if and only if they are reversible codes [13].

**Lemma 4.** Let $C$ be a cyclic code over $E$ then $C$ is a reversible code over $E$ if and only if $\text{res}(C)$ and $\text{tor}(C)$ are cyclic reversible codes over $\mathbb{F}_2$.

**Proof.** By combining Theorem 11 and Remark 1 we obtain the result. $\square$

Maps that make it simple to compute the complement must be defined before building DNA codes over rings. This implies that the definition of the complement map must be over finite rings.

**Definition 4** ([8]). Let $R$ be a ring of order 4 and $f : \{A, T, C, G\} \rightarrow R$ be a proper representation map. It means $f$ is bijective. A complement map $\phi$ over $R$ is a bijection defined by $\phi(f(x)) = f(x^C)$.

Since $x^C \neq x$ and $(x^C)^C = x$, we can verify that $\phi(x) \neq x$ and $\phi^2(x) = x$. $\phi$ is indicated by $\phi(x) = x^C$. Since this $\phi$ is a bijection on $R$, defining this map $\phi$ is simple. Whether there is a straightforward definition of $\phi$ is the question. In particular, we wish to define an element $\alpha \in R$ such that $x^C = x + \alpha$.

Denote by $r: E \rightarrow E/J = \mathbb{F}_2$, the map of reduction modulo $J$. Thus, $r(0) = r(c) = 0$ and $r(a) = r(b) = 1$. Let define $f: \{A, T, G, C\} \rightarrow E$ by $f(A) = 0, f(T) = c, f(G) = a$ and $f(C) = b$. Then, $r(f(C)) = r(f(G)) = 1$, and the others go to 0.

In the following theorem, we will define the basic condition for the code to be equal to its complement.

**Theorem 12.** Let $C$ be a linear code over $E$. This code is invariant under complementation ($C^C = C$) iff the code $\text{tor}(C)$ contains the all-one codeword.
**Proof.** The condition is necessary since $0^C = cj$ where $j$ denotes the all-one vector. We prove the sufficient condition. Since $C = a res(C) \oplus c tor(C)$ we want to prove that $C^C = C$. Note, first that if $tor(C)$ contains $j$ then $\overline{tor(C)} = tor(C)$, and, therefore, $(c tor(C))^C = c tor(C)$. We compute

$$ 
\begin{aligned}
C^C &= (a res(C))^C \oplus (c tor(C))^C \\
    &= (a res(C) + cj) \oplus c tor(C) \\
    &\subseteq C.
\end{aligned}
$$

Since the map $x \mapsto x^C$ is one-to-one we see that $|C| = |C^C|$. Hence, $C^C = C$. $\square$

## 6. Numerical Results

In the following, we classify, up to equivalence, Cyclic codes up to length 7. All the computations needed for this section were performed in Magma [14].

The generator matrices of the classified cyclic codes $n = 6$ and $n = 7$ can be found at: https://www.kau.edu.sa/GetFile.aspx?id=317363&fn=Gen (accessed on 29 April 2024).

We use the following steps to classify cyclic codes up to length 7 over the ring $E$:

* The binary cyclic codes with lengths ranging from $n = 2$ to $n = 7$ were initially identified.

* Second, all pairs $C_1 \subset C_2$ of cyclic codes were considered. The choice $res(C) = C_1$ and $tor(C) = C_2$ was made to construct a cyclic code $C$ over $E$.

* Third, we may build the generator matrices for the cyclic codes on the ring $E$ after determining $res(C)$ and $tor(C)$.

* Finally, we will just include the non-equivalent codes in the tables that follow.

### 6.1. Length 2 (5 Codes)

In Table 1 the main properties of length 2 are summarized.

<table><caption>**Table 1.** Cyclic codes of length 2.</caption><thead><tr><th>Generator Matrix</th><th>d<sub>H</sub></th><th>LSD</th><th>SO</th><th>QSD</th><th>Type IV</th><th>LCD</th><th>Even</th><th>Weight Distribution</th></tr></thead><tbody><tr><td>(c c)</td><td>2</td><td></td><td>√</td><td></td><td></td><td></td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 2, 1 &gt;]</td></tr><tr><td>(c 0)<br>0 c)</td><td>1</td><td></td><td>√</td><td>√</td><td></td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 2 &gt;, &lt; 2, 1 &gt;]</td></tr><tr><td>(a a)<br>c c)</td><td>2</td><td>√</td><td>√</td><td>√</td><td>√</td><td></td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 2, 3 &gt;]</td></tr><tr><td>(a a)<br>c 0)<br>0 c)</td><td>1</td><td></td><td></td><td></td><td></td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 2 &gt;, &lt; 2, 5 &gt;]</td></tr><tr><td>(a 0)<br>0 a<br>c 0)<br>0 c)</td><td>1</td><td></td><td></td><td></td><td></td><td>√</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 6 &gt;, &lt; 2, 9 &gt;]</td></tr></tbody></table>

### 6.2. Length 3 (8 Codes)

In this length codes neither left self-dual nor Type IV. And In Table 2 the main properties of length 3 are summarized.
<table><caption>**Table 2.** Cyclic codes of length 3.</caption><thead><tr><th>Generator Matrix</th><th>d<sub>H</sub></th><th>SO</th><th>QSD</th><th>LCD</th><th>Even</th><th>Weight Distribution</th></tr></thead><tbody><tr><td>(c c c)</td><td>3</td><td>√</td><td></td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 3, 1 &gt;]</td></tr><tr><td>(c c 0)<br>0 c c)</td><td>2</td><td>√</td><td></td><td></td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 2, 3 &gt;]</td></tr><tr><td>(c 0 0)<br>0 c 0<br>0 0 c)</td><td>1</td><td>√</td><td>√</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 3 &gt;, &lt; 2, 3 &gt;, &lt; 3, 1 &gt;]</td></tr><tr><td>(a a a)<br>c c c)</td><td>3</td><td></td><td></td><td>√</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 3, 3 &gt;]</td></tr><tr><td>(a a a)<br>c 0 0<br>0 c 0<br>0 0 c)</td><td>1</td><td></td><td></td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 3 &gt;, &lt; 2, 3 &gt;, &lt; 3, 9 &gt;]</td></tr><tr><td>(a a 0)<br>0 a a<br>c c 0<br>0 c c)</td><td>2</td><td></td><td></td><td>√</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 2, 9 &gt;, &lt; 3, 6 &gt;]</td></tr><tr><td>(a a 0)<br>0 a a<br>c 0 0<br>0 c 0<br>0 0 c)</td><td>1</td><td></td><td></td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 3 &gt;, &lt; 2, 15 &gt;, &lt; 3, 13 &gt;]</td></tr><tr><td>(a 0 0)<br>0 a 0<br>0 0 a<br>c 0 0<br>0 c 0<br>0 0 c)</td><td>1</td><td></td><td></td><td>√</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 9 &gt;, &lt; 2, 27 &gt;, &lt; 3, 27 &gt;]</td></tr></tbody></table>

### 6.3. Length 4 (14 Codes)

In this length codes are not left self-dual except for the sixth, codes are not Type IV except for the sixth and seventh and codes are not LCD except for the fourteenth. Also, in Tables 3 and 4 the main properties of length 4 are summarized.

<table><caption>**Table 3.** Cyclic codes of length 4.</caption><thead><tr><th>Generator Matrix</th><th>d<sub>H</sub></th><th>SO</th><th>QSD</th><th>Even</th><th>Weight Distribution</th></tr></thead><tbody><tr><td>(c c c c)</td><td>4</td><td>√</td><td></td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 4, 1 &gt;]</td></tr><tr><td>(a a a a)<br>c c c c)</td><td>4</td><td>√</td><td></td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 4, 3 &gt;]</td></tr><tr><td>(c 0 c 0)<br>0 c 0 c)</td><td>2</td><td>√</td><td></td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 2, 2 &gt;, &lt; 4, 1 &gt;]</td></tr><tr><td>(c c 0 0)<br>0 c c 0<br>0 0 c c)</td><td>2</td><td>√</td><td></td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 2, 6 &gt;, &lt; 4, 1 &gt;]</td></tr><tr><td>(a a a a)<br>c 0 c 0<br>0 c 0 c)</td><td>2</td><td>√</td><td></td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 2, 2 &gt;, &lt; 4, 5 &gt;]</td></tr><tr><td>(a 0 a 0)<br>0 a 0 a<br>c 0 c 0<br>0 c 0 c)</td><td>2</td><td>√</td><td>√</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 2, 6 &gt;, &lt; 4, 9 &gt;]</td></tr></tbody></table>
<table><caption>**Table 3.** *Cont.*</caption><thead><tr><th>Generator Matrix</th><th>d<sub>H</sub></th><th>SO</th><th>QSD</th><th>Even</th><th>Weight Distribution</th></tr></thead><tbody><tr><td>(<table><tr><td>a</td><td>a</td><td>a</td><td>a</td></tr><tr><td>c</td><td>c</td><td>0</td><td>0</td></tr><tr><td>0</td><td>c</td><td>c</td><td>0</td></tr><tr><td>0</td><td>0</td><td>c</td><td>c</td></tr></table>)</td><td>2</td><td>✓</td><td>✓</td><td>✓</td><td>[&lt;0,1&gt;, &lt;2,6&gt;, &lt;4,9&gt;]</td></tr><tr><td>(<table><tr><td>a</td><td>0</td><td>a</td><td>0</td></tr><tr><td>0</td><td>a</td><td>0</td><td>a</td></tr><tr><td>c</td><td>c</td><td>0</td><td>0</td></tr><tr><td>0</td><td>c</td><td>c</td><td>0</td></tr><tr><td>0</td><td>0</td><td>c</td><td>c</td></tr></table>)</td><td>2</td><td></td><td></td><td></td><td>[&lt;0,1&gt;, &lt;2,10&gt;, &lt;3,8&gt;, &lt;4,13&gt;]</td></tr><tr><td>(<table><tr><td>c</td><td>0</td><td>0</td><td>0</td></tr><tr><td>0</td><td>c</td><td>0</td><td>0</td></tr><tr><td>0</td><td>0</td><td>c</td><td>0</td></tr><tr><td>0</td><td>0</td><td>0</td><td>c</td></tr></table>)</td><td>1</td><td>✓</td><td>✓</td><td></td><td>[&lt;0,1&gt;, &lt;1,4&gt;, &lt;2,6&gt;, &lt;3,4&gt;, &lt;4,1&gt;]</td></tr><tr><td>(<table><tr><td>a</td><td>a</td><td>a</td><td>a</td></tr><tr><td>c</td><td>0</td><td>0</td><td>0</td></tr><tr><td>0</td><td>c</td><td>0</td><td>0</td></tr><tr><td>0</td><td>0</td><td>c</td><td>0</td></tr><tr><td>0</td><td>0</td><td>0</td><td>c</td></tr></table>)</td><td>1</td><td></td><td></td><td></td><td>[&lt;0,1&gt;, &lt;1,4&gt;, &lt;2,6&gt;, &lt;3,4&gt;, &lt;4,17&gt;]</td></tr><tr><td>(<table><tr><td>a</td><td>0</td><td>a</td><td>0</td></tr><tr><td>0</td><td>a</td><td>0</td><td>a</td></tr><tr><td>c</td><td>0</td><td>0</td><td>0</td></tr><tr><td>0</td><td>c</td><td>0</td><td>0</td></tr><tr><td>0</td><td>0</td><td>c</td><td>0</td></tr><tr><td>0</td><td>0</td><td>0</td><td>c</td></tr></table>)</td><td>1</td><td></td><td></td><td></td><td>[&lt;0,1&gt;, &lt;1,4&gt;, &lt;2,14&gt;, &lt;3,20&gt;, &lt;4,25&gt;]</td></tr></tbody></table>

<table><caption>**Table 4.** *cyclic codes of length 4.*</caption><thead><tr><th>Generator Matrix</th><th>d<sub>H</sub></th><th>SO</th><th>QSD</th><th>Even</th><th>Weight Distribution</th></tr></thead><tbody><tr><td>(<table><tr><td>a</td><td>a</td><td>0</td><td>0</td></tr><tr><td>0</td><td>a</td><td>a</td><td>0</td></tr><tr><td>0</td><td>0</td><td>a</td><td>a</td></tr><tr><td>c</td><td>c</td><td>0</td><td>0</td></tr><tr><td>0</td><td>c</td><td>c</td><td>0</td></tr><tr><td>0</td><td>0</td><td>c</td><td>c</td></tr></table>)</td><td>2</td><td></td><td></td><td></td><td>[&lt;0,1&gt;, &lt;2,18&gt;, &lt;3,24&gt;, &lt;4,21&gt;]</td></tr><tr><td>(<table><tr><td>a</td><td>a</td><td>0</td><td>0</td></tr><tr><td>0</td><td>a</td><td>a</td><td>0</td></tr><tr><td>0</td><td>0</td><td>a</td><td>a</td></tr><tr><td>c</td><td>0</td><td>0</td><td>0</td></tr><tr><td>0</td><td>c</td><td>0</td><td>0</td></tr><tr><td>0</td><td>0</td><td>c</td><td>0</td></tr><tr><td>0</td><td>0</td><td>0</td><td>c</td></tr></table>)</td><td>1</td><td></td><td></td><td></td><td>[&lt;0,1&gt;, &lt;1,4&gt;, &lt;2,30&gt;, &lt;3,52&gt;, &lt;4,41&gt;]</td></tr><tr><td>(<table><tr><td>a</td><td>0</td><td>0</td><td>0</td></tr><tr><td>0</td><td>a</td><td>0</td><td>0</td></tr><tr><td>0</td><td>0</td><td>a</td><td>0</td></tr><tr><td>0</td><td>0</td><td>0</td><td>a</td></tr><tr><td>c</td><td>0</td><td>0</td><td>0</td></tr><tr><td>0</td><td>c</td><td>0</td><td>0</td></tr><tr><td>0</td><td>0</td><td>c</td><td>0</td></tr><tr><td>0</td><td>0</td><td>0</td><td>c</td></tr></table>)</td><td>1</td><td></td><td></td><td></td><td>[&lt;0,1&gt;, &lt;1,12&gt;, &lt;2,54&gt;, &lt;3,108&gt;, &lt;4,81&gt;]</td></tr></tbody></table>
### 6.4. Length 5 (Eight Codes)

In this length codes neither left self-dual nor Type IV, codes are not QSD except for the fourth and codes are not Even except for the third. Also, in Tables 5 and 6 the main properties of length 5 are summarized.

<table><caption>**Table 5.** Cyclic codes of length 5.</caption><thead><tr><th>Generator Matrix</th><th>d<sub>H</sub></th><th>SO</th><th>LCD</th><th>Weight Distribution</th></tr></thead><tbody><tr><td>(c c c c c)</td><td>5</td><td>√</td><td></td><td>[&lt;0,1&gt;, &lt;5,1&gt;]</td></tr><tr><td>(a a a a a a)<br>(c c c c c)</td><td>5</td><td></td><td>√</td><td>[&lt;0,1&gt;, &lt;5,3&gt;]</td></tr><tr><td>(c c 0 0 0)<br>(0 c c 0 0)<br>(0 0 c c 0)<br>(0 0 0 c c)</td><td>2</td><td>√</td><td></td><td>[&lt;0,1&gt;, &lt;2,10&gt;, &lt;4,5&gt;]</td></tr><tr><td>(c 0 0 0 0)<br>(0 c 0 0 0)<br>(0 0 c 0 0)<br>(0 0 0 c 0)<br>(0 0 0 0 c)</td><td>1</td><td>√</td><td></td><td>[&lt;0,1&gt;, &lt;1,5&gt;, &lt;2,10&gt;, &lt;3,10&gt;, &lt;4,5&gt;, &lt;5,1&gt;]</td></tr><tr><td>(a a a a a a)<br>(c 0 0 0 0)<br>(0 c 0 0 0)<br>(0 0 c 0 0)<br>(0 0 0 c 0)<br>(0 0 0 0 c)</td><td>1</td><td></td><td></td><td>[&lt;0,1&gt;, &lt;1,5&gt;, &lt;2,10&gt;, &lt;3,10&gt;, &lt;4,5&gt;, &lt;5,33&gt;]</td></tr><tr><td>(a a 0 0 0)<br>(0 a a 0 0)<br>(0 0 a a 0)<br>(0 0 0 a a)<br>(c c 0 0 0)<br>(0 c c 0 0)<br>(0 0 c c 0)<br>(0 0 0 c c)</td><td>2</td><td></td><td>√</td><td>[&lt;0,1&gt;, &lt;2,30&gt;, &lt;3,60&gt;, &lt;4,105&gt;, &lt;5,60&gt;]</td></tr></tbody></table>

<table><caption>**Table 6.** Cyclic codes of length 5.</caption><thead><tr><th>Generator Matrix</th><th>d<sub>H</sub></th><th>SO</th><th>LCD</th><th>Weight Distribution</th></tr></thead><tbody><tr><td>(a a 0 0 0)<br>(0 a a 0 0)<br>(0 0 a a 0)<br>(0 0 0 a a)<br>(c 0 0 0 0)<br>(0 c 0 0 0)<br>(0 0 c 0 0)<br>(0 0 0 c 0)<br>(0 0 0 0 c)</td><td>1</td><td></td><td></td><td>[&lt;0,1&gt;, &lt;1,5&gt;, &lt;2,50&gt;, &lt;3,130&gt;, &lt;4,205&gt;, &lt;5,121&gt;]</td></tr><tr><td>(a 0 0 0 0)<br>(0 a 0 0 0)<br>(0 0 a 0 0)<br>(0 0 0 a 0)<br>(0 0 0 0 a)<br>(c 0 0 0 0)<br>(0 c 0 0 0)<br>(0 0 c 0 0)<br>(0 0 0 c 0)<br>(0 0 0 0 c)</td><td>1</td><td></td><td>√</td><td>[&lt;0,1&gt;, &lt;1,15&gt;, &lt;2,90&gt;, &lt;3,270&gt;, &lt;4,405&gt;, &lt;5,243&gt;]</td></tr></tbody></table>
### 6.5. Length 6 (35 Codes)

In this length codes are not left self-dual except $G_{20}$, codes are not QSD except $G_{15}$, $G_{16}$, $G_{18}$ and $G_{20}$, codes are not Type IV except $G_{16}$ and $G_{20}$ and codes are not LCD except $G_{10}$, $G_{28}$ and $G_{35}$. Also, in Tables 7 and 8 the main properties of length 6 are summarized.

<table><caption>**Table 7.** Cyclic codes of length 6.</caption><thead><tr><th>Generator Matrix</th><th>d<sub>H</sub></th><th>SO</th><th>Even</th><th>Weight Distribution</th></tr></thead><tbody><tr><td>G<sub>1</sub></td><td>6</td><td>√</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 6, 1 &gt;]</td></tr><tr><td>G<sub>2</sub></td><td>3</td><td>√</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 3, 2 &gt;, &lt; 6, 1 &gt;]</td></tr><tr><td>G<sub>3</sub></td><td>4</td><td>√</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 4, 3 &gt;]</td></tr><tr><td>G<sub>4</sub></td><td>6</td><td>√</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 6, 3 &gt;]</td></tr><tr><td>G<sub>5</sub></td><td>2</td><td>√</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 2, 3 &gt;, &lt; 4, 3 &gt;, &lt; 6, 1 &gt;]</td></tr><tr><td>G<sub>6</sub></td><td>3</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 3, 2 &gt;, &lt; 6, 5 &gt;]</td></tr><tr><td>G<sub>7</sub></td><td>2</td><td>√</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 2, 3 &gt;, &lt; 3, 8 &gt;, &lt; 4, 3 &gt;, &lt; 6, 1 &gt;]</td></tr><tr><td>G<sub>8</sub></td><td>2</td><td>√</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 2, 6 &gt;, &lt; 4, 9 &gt;]</td></tr><tr><td>G<sub>9</sub></td><td>2</td><td>√</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 2, 3 &gt;, &lt; 4, 3 &gt;, &lt; 6, 9 &gt;]</td></tr><tr><td>G<sub>10</sub></td><td>3</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 3, 6 &gt;, &lt; 6, 9 &gt;]</td></tr><tr><td>G<sub>11</sub></td><td>4</td><td>√</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 4, 9 &gt;, &lt; 6, 6 &gt;]</td></tr><tr><td>G<sub>12</sub></td><td>2</td><td>√</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 2, 15 &gt;, &lt; 4, 15 &gt;, &lt; 6, 1 &gt;]</td></tr><tr><td>G<sub>13</sub></td><td>2</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 2, 3 &gt;, &lt; 3, 8 &gt;, &lt; 4, 3 &gt;, &lt; 6, 17 &gt;]</td></tr><tr><td>G<sub>14</sub></td><td>2</td><td>√</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 2, 3 &gt;, &lt; 4, 15 &gt;, &lt; 6, 13 &gt;]</td></tr><tr><td>G<sub>15</sub></td><td>1</td><td>√</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 6 &gt;, &lt; 2, 15 &gt;, &lt; 3, 20 &gt;, &lt; 4, 15 &gt;, &lt; 5, 6 &gt;, &lt; 6, 1 &gt;]</td></tr><tr><td>G<sub>16</sub></td><td>2</td><td>√</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 2, 15 &gt;, &lt; 4, 15 &gt;, &lt; 6, 33 &gt;]</td></tr><tr><td>G<sub>17</sub></td><td>2</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 2, 3 &gt;, &lt; 3, 12 &gt;, &lt; 4, 19 &gt;, &lt; 5, 20 &gt;, &lt; 6, 9 &gt;]</td></tr><tr><td>G<sub>18</sub></td><td>2</td><td>√</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 2, 3 &gt;, &lt; 3, 8 &gt;, &lt; 4, 15 &gt;, &lt; 5, 24 &gt;, &lt; 6, 13 &gt;]</td></tr><tr><td>G<sub>19</sub></td><td>2</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 2, 6 &gt;, &lt; 4, 21 &gt;, &lt; 5, 24 &gt;, &lt; 6, 12 &gt;]</td></tr><tr><td>G<sub>20</sub></td><td>2</td><td>√</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 2, 9 &gt;, &lt; 4, 27 &gt;, &lt; 6, 27 &gt;]</td></tr><tr><td>G<sub>21</sub></td><td>1</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 6 &gt;, &lt; 2, 15 &gt;, &lt; 3, 20 &gt;, &lt; 4, 15 &gt;, &lt; 5, 6 &gt;, &lt; 6, 65 &gt;]</td></tr><tr><td>G<sub>22</sub></td><td>2</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 2, 15 &gt;, &lt; 4, 39 &gt;, &lt; 5, 48 &gt;, &lt; 6, 25 &gt;]</td></tr><tr><td>G<sub>23</sub></td><td>2</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 2, 9 &gt;, &lt; 3, 8 &gt;, &lt; 4, 51 &gt;, &lt; 5, 24 &gt;, &lt; 6, 35 &gt;]</td></tr><tr><td>G<sub>24</sub></td><td>1</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 6 &gt;, &lt; 2, 15 &gt;, &lt; 3, 36 &gt;, &lt; 4, 63 &gt;, &lt; 5, 54 &gt;, &lt; 6, 81 &gt;]</td></tr><tr><td>G<sub>25</sub></td><td>1</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 6 &gt;, &lt; 2, 15 &gt;, &lt; 3, 20 &gt;, &lt; 4, 63 &gt;, &lt; 5, 102 &gt;, &lt; 6, 49 &gt;]</td></tr><tr><td>G<sub>26</sub></td><td>2</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 2, 21 &gt;, &lt; 3, 24 &gt;, &lt; 4, 75 &gt;, &lt; 5, 72 &gt;, &lt; 6, 63 &gt;]</td></tr><tr><td>G<sub>27</sub></td><td>2</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 2, 9 &gt;, &lt; 3, 24 &gt;, &lt; 4, 99 &gt;, &lt; 5, 72 &gt;, &lt; 6, 51 &gt;]</td></tr><tr><td>G<sub>28</sub></td><td>2</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 2, 18 &gt;, &lt; 3, 12 &gt;, &lt; 4, 81 &gt;, &lt; 5, 108 &gt;, &lt; 6, 36 &gt;]</td></tr><tr><td>G<sub>29</sub></td><td>1</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 6 &gt;, &lt; 2, 27 &gt;, &lt; 3, 68 &gt;, &lt; 4, 135 &gt;, &lt; 5, 150 &gt;, &lt; 6, 125 &gt;]</td></tr></tbody></table>
<table><caption>**Table 8.** Cyclic codes of length 6.</caption><thead><tr><th>Generator Matrix</th><th>d<sub>H</sub></th><th>SO</th><th>Even</th><th>Weight Distribution</th></tr></thead><tbody><tr><td>G<sub>30</sub></td><td>2</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 2, 27 &gt;, &lt; 3, 48 &gt;, &lt; 4, 159 &gt;, &lt; 5, 192 &gt;, &lt; 6, 85 &gt;]</td></tr><tr><td>G<sub>31</sub></td><td>1</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 6 &gt;, &lt; 2, 27 &gt;, &lt; 3, 132 &gt;, &lt; 4, 327 &gt;, &lt; 5, 342 &gt;, &lt; 6, 189 &gt;]</td></tr><tr><td>G<sub>32</sub></td><td>1</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 6 &gt;, &lt; 2, 39 &gt;, &lt; 3, 116 &gt;, &lt; 4, 303 &gt;, &lt; 5, 390 &gt;, &lt; 6, 169 &gt;]</td></tr><tr><td>G<sub>33</sub></td><td>2</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 2, 45 &gt;, &lt; 3, 120 &gt;, &lt; 4, 315 &gt;, &lt; 5, 360 &gt;, &lt; 6, 183 &gt;]</td></tr><tr><td>G<sub>34</sub></td><td>1</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 6 &gt;, &lt; 2, 75 &gt;, &lt; 3, 260 &gt;, &lt; 4, 615 &gt;, &lt; 5, 726 &gt;, &lt; 6, 365 &gt;]</td></tr><tr><td>G<sub>35</sub></td><td>1</td><td></td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 18 &gt;, &lt; 2, 135 &gt;, &lt; 3, 540 &gt;, &lt; 4, 1215 &gt;, &lt; 5, 1458 &gt;, &lt; 6, 729 &gt;]</td></tr></tbody></table>

### 6.6. Length 7 (26 Codes)

In this length, we have 18 equivalent codes, and they are $G_3$ equivalent to $G_4$, $G_5$ equivalent to $G_6$, $G_7$ equivalent to $G_8$, $G_{10}$ equivalent to $G_{11}$, $G_{13}$ equivalent to $G_{14}$, $G_{16}$ equivalent to $G_{17}$, $G_{18}$ equivalent to $G_{19}$, $G_{20}$ equivalent to $G_{21}$ and finally $G_{22}$ equivalent to $G_{23}$. In this length codes neither left self-dual nor Type IV, codes are not QSD except $G_{12}$, $G_{13}$ and $G_{14}$, codes are not Even except $G_3$, $G_4$, $G_9$, $G_{10}$ and $G_{11}$ and codes are not LCD except $G_2$, $G_{24}$ and $G_{26}$. In the Table 9, we will only list the non-equivalent codes.

<table><caption>**Table 9.** Cyclic codes of length 7.</caption><thead><tr><th>Generator Matrix</th><th>d<sub>H</sub></th><th>SO</th><th>Weight Distribution</th></tr></thead><tbody><tr><td>G<sub>1</sub></td><td>7</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 7, 1 &gt;]</td></tr><tr><td>G<sub>2</sub></td><td>7</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 7, 3 &gt;]</td></tr><tr><td>G<sub>3</sub></td><td>4</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 4, 7 &gt;]</td></tr><tr><td>G<sub>5</sub></td><td>3</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 3, 7 &gt;, &lt; 4, 7 &gt;, &lt; 7, 1 &gt;]</td></tr><tr><td>G<sub>7</sub></td><td>3</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 3, 7 &gt;, &lt; 4, 7 &gt;, &lt; 7, 17 &gt;]</td></tr><tr><td>G<sub>9</sub></td><td>2</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 2, 21 &gt;, &lt; 4, 35 &gt;, &lt; 6, 7 &gt;]</td></tr><tr><td>G<sub>10</sub></td><td>4</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 4, 21 &gt;, &lt; 6, 42 &gt;]</td></tr><tr><td>G<sub>12</sub></td><td>1</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 1, 7 &gt;, &lt; 2, 21 &gt;, &lt; 3, 35 &gt;, &lt; 4, 35 &gt;, &lt; 5, 21 &gt;, &lt; 6, 7 &gt;, &lt; 7, 1 &gt;]</td></tr><tr><td>G<sub>13</sub></td><td>3</td><td>√</td><td>[&lt; 0, 1 &gt;, &lt; 3, 7 &gt;, &lt; 4, 21 &gt;, &lt; 5, 42 &gt;, &lt; 6, 42 &gt;, &lt; 7, 15 &gt;]</td></tr><tr><td>G<sub>15</sub></td><td>1</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 7 &gt;, &lt; 2, 21 &gt;, &lt; 3, 35 &gt;, &lt; 4, 35 &gt;, &lt; 5, 21 &gt;, &lt; 6, 7 &gt;, &lt; 7, 129 &gt;]</td></tr><tr><td>G<sub>16</sub></td><td>3</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 3, 21 &gt;, &lt; 4, 21 &gt;, &lt; 5, 126 &gt;, &lt; 6, 42 &gt;, &lt; 7, 45 &gt;]</td></tr><tr><td>G<sub>18</sub></td><td>2</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 2, 21 &gt;, &lt; 4, 91 &gt;, &lt; 5, 168 &gt;, &lt; 6, 175 &gt;, &lt; 7, 56 &gt;]</td></tr><tr><td>G<sub>20</sub></td><td>1</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 7 &gt;, &lt; 2, 21 &gt;, &lt; 3, 35 &gt;, &lt; 4, 147 &gt;, &lt; 5, 357 &gt;, &lt; 6, 343 &gt;, &lt; 7, 113 &gt;]</td></tr><tr><td>G<sub>22</sub></td><td>1</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 7 &gt;, &lt; 2, 21 &gt;, &lt; 3, 91 &gt;, &lt; 4, 371 &gt;, &lt; 5, 693 &gt;, &lt; 6, 567 &gt;, &lt; 7, 297 &gt;]</td></tr><tr><td>G<sub>24</sub></td><td>2</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 2, 63 &gt;, &lt; 3, 210 &gt;, &lt; 4, 735 &gt;, &lt; 5, 1260 &gt;, &lt; 6, 1281 &gt;, &lt; 7, 546 &gt;]</td></tr><tr><td>G<sub>25</sub></td><td>1</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 7 &gt;, &lt; 2, 105 &gt;, &lt; 3, 455 &gt;, &lt; 4, 1435 &gt;, &lt; 5, 2541 &gt;, &lt; 6, 2555 &gt;, &lt; 7, 1093 &gt;]</td></tr><tr><td>G<sub>26</sub></td><td>1</td><td></td><td>[&lt; 0, 1 &gt;, &lt; 1, 21 &gt;, &lt; 2, 189 &gt;, &lt; 3, 945 &gt;, &lt; 4, 2835 &gt;, &lt; 5, 5103 &gt;, &lt; 6, 5103 &gt;, &lt; 7, 2187 &gt;]</td></tr></tbody></table>
**7. Conclusions and Open Problems**

In this work, we have studied cyclic codes over the non-unital ring *E*. We have given criteria for a cyclic code over *E* to be self-dual, left self-dual, or right self-dual. We have derived an algorithm to classify cyclic codes of a given length, based on the classification of cyclic binary codes of that length. A Gray map allows us to construct quasi-cyclic codes of index 2 from cyclic codes over *E*. In the future, we plan to study the same questions over other non-unitary rings, possibly of characteristics larger than 2.

**Author Contributions:** Conceptualization, A.A.; Methodology, M.A.; Investigation, M.A. and P.S.; Supervision, A.A. and P.S.; Funding acquisition, A.A. This article was written in equal co-authorship. All authors have read and agreed to the published version of the manuscript.

**Funding:** This research was funded by The Deanship of Scientific Research (DSR) at King Abdulaziz University (KAU), Jeddah, Saudi Arabia OF FUNDER grant number (KEP-PhD: 100-130-1443).

**Data Availability Statement:** All computations conducted in this paper are available upon request from the authors.

**Acknowledgments:** The Deanship of Scientific Research (DSR) at King Abdulaziz University (KAU), Jeddah, Saudi Arabia has funded this project, under grant no. (KEP-PhD: 100-130-1443).

**Conflicts of Interest:** The authors declare no conflicts of interest.

**References**

1. MacWilliams, F.J.; Sloane, N.J.A. *The Theory of Error Correcting Codes*; Elsevier: Amsterdam, The Netherlands, 1977; Volume 16.

2. Shi, M.; Alahmadi, A.; Solé, P. *Codes and Rings: Theory and Practice*; Academic Press: Cambridge, MA, USA, 2017.

3. Alahmadi, A.; Altaiary, M.; Solé, P. Cyclic codes over a non-local non-unital ring. *Mathematics* **2024**, *12*, 866.

4. Fine, B. Classification of finite rings of order $p^2$. *Math. Mag.* **1993**, *66*, 248–252.

5. Alahmadi, A.; Altassan, A.; Basaffar, W.; Shoaib, H.; Bonnecaze, A.; Solé, P. Type IV codes over a non-unital ring. *J. Algebra Its Appl.* **2022**, *1*, 2250142.

6. Alahmadi, A.; Melaibari, A.; Solé, P. Duality of codes over non-unital rings of order four. *IEEE Access* **2023**, *11*, 53120–53133.

7. Massey, J.L. Linear codes with complementary duals. *Discret. Math.* **1992**, *106*, 337–342.

8. Kim, J.L.; Ohk, D.E. DNA codes over two noncommutative rings of order four. *J. Appl. Math. Comput.* **2022**, *68*, 2015–2038.

9. Huffman, W.C.; Pless, V. *Fundamentals of Error-Correcting Codes*; Cambridge University Press: Cambridge, UK, 2010.

10. Kom S.T.T.; Ratnabala Dev, O. Identifying cyclic and $(1+2v)$-constacyclic codes over $\mathbb{Z}_4[v]/\langle v^3-1\rangle$ with $\mathbb{Z}_4$-linear codes. *TWMS J. App. and Eng. Math.* **2023**, *13*,951–962.

11. Van Lint, J.H. Repeated-root cyclic codes. *IEEE Trans. Inf. Theory* **1991**, *37*, 343–345.

12. Yang, X.; Massey, J.L. The condition for a cyclic code to have a complementary dual. *Discret. Math.* **1994**, *126*, 391–393.

13. Massey, J.L. Reversible codes. *Inf. Control.* **1964**, *7*, 369–380.

14. Bosma, W.; Cannon, J.; Playoust, C. The Magma algebra system I: The user language. *J. Symb. Comput.* **1997**, *24*, 235–265.

**Disclaimer/Publisher's Note:** The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.