Loading [MathJax]/jax/output/SVG/jax.js
Research article

The build up construction for codes over a non-commutative non-unitary ring of order 9

  • Received: 29 January 2024 Revised: 28 March 2024 Accepted: 10 April 2024 Published: 31 May 2024
  • MSC : 94B05, 16D10

  • The build-up method is a powerful class of propagation rules that generate self-dual codes over finite fields and unitary rings. Recently, it was extended to non-unitary rings of order four to generate quasi self-dual codes. In the present paper we introduce three such propagation rules to generate self-orthogonal, one-sided self-dual, and self-dual codes over a special non-unitary ring of order 9. As an application, we classify the three categories of codes in lengths at most 7, up to monomial equivalence. Mass formulas for the three classes of codes considered ensure that the classification is complete.

    Citation: Adel Alahmadi, Tamador Alihia, Patrick Solé. The build up construction for codes over a non-commutative non-unitary ring of order 9[J]. AIMS Mathematics, 2024, 9(7): 18278-18307. doi: 10.3934/math.2024892

    Related Papers:

    [1] Adel Alahmadi, Altaf Alshuhail, Patrick Solé . The mass formula for self-orthogonal and self-dual codes over a non-unitary commutative ring. AIMS Mathematics, 2023, 8(10): 24367-24378. doi: 10.3934/math.20231242
    [2] Adel Alahmadi, Asmaa Melaibari, Patrick Solé . Quasi self-dual codes over non-unital rings from three-class association schemes. AIMS Mathematics, 2023, 8(10): 22731-22757. doi: 10.3934/math.20231158
    [3] Ted Hurley . Ultimate linear block and convolutional codes. AIMS Mathematics, 2025, 10(4): 8398-8421. doi: 10.3934/math.2025387
    [4] Doris Dumičić Danilović, Andrea Švob . On Hadamard $ 2 $-$ (51, 25, 12) $ and $ 2 $-$ (59, 29, 14) $ designs. AIMS Mathematics, 2024, 9(8): 23047-23059. doi: 10.3934/math.20241120
    [5] Guoqing Wang . Lower bound for the Erdős-Burgess constant of finite commutative rings. AIMS Mathematics, 2020, 5(5): 4424-4431. doi: 10.3934/math.2020282
    [6] Ismail Aydogdu . On double cyclic codes over $ \mathbb{Z}_2+u\mathbb{Z}_2 $. AIMS Mathematics, 2024, 9(5): 11076-11091. doi: 10.3934/math.2024543
    [7] Fatma Zehra Uzekmek, Elif Segah Oztas, Mehmet Ozen . $ (\theta_i, \lambda) $-constacyclic codes and DNA codes over $ \mathbb{Z}_{4}+u\mathbb{Z}_{4}+u^{2}\mathbb{Z}_{4} $. AIMS Mathematics, 2024, 9(10): 27908-27929. doi: 10.3934/math.20241355
    [8] Sami Alabiad, Yousef Alkhamees . On classification of finite commutative chain rings. AIMS Mathematics, 2022, 7(2): 1742-1757. doi: 10.3934/math.2022100
    [9] Chaofeng Guan, Ruihu Li, Hao Song, Liangdong Lu, Husheng Li . Ternary quantum codes constructed from extremal self-dual codes and self-orthogonal codes. AIMS Mathematics, 2022, 7(4): 6516-6534. doi: 10.3934/math.2022363
    [10] Xiying Zheng, Bo Kong, Yao Yu . Quantum codes from $ \sigma $-dual-containing constacyclic codes over $ \mathfrak{R}_{l, k} $. AIMS Mathematics, 2023, 8(10): 24075-24086. doi: 10.3934/math.20231227
  • The build-up method is a powerful class of propagation rules that generate self-dual codes over finite fields and unitary rings. Recently, it was extended to non-unitary rings of order four to generate quasi self-dual codes. In the present paper we introduce three such propagation rules to generate self-orthogonal, one-sided self-dual, and self-dual codes over a special non-unitary ring of order 9. As an application, we classify the three categories of codes in lengths at most 7, up to monomial equivalence. Mass formulas for the three classes of codes considered ensure that the classification is complete.



    Historically, the classification of self-dual codes over unitary rings and finite fields has rested on two pillars: an algorithm to generate short length codes, and a mass formula to signal the completion of the classification [7,15]. While the pionneers (Conway, Pless Sloane, and so on), were using various ad hoc methods like glueing theory to generate short codes [17], in recent years the build up method emerged as a systematic generation method [10,13,14]. By using a recursion on generator matrices, from a self-dual code of length n, it creates a self-dual code of length n+h (with h small and fixed). This is sometimes called a propagation rule of order h. For concreteness, one may take h=2 for binary codes [6] and codes over a certain ring of order 4 [12], and h=4 for ternary codes [13]. In [5], this technique was applied to a commutative non-unital ring with success.

    In this paper, we initiate the study of self-dual codes over the ring E3, defined on two generators a,b by the relations

    E3=a,b| 3a=3b=0, a2=a, b2=b, ab=a, ba=b.

    This ring is a non-unital, non commutative ring of order 9. This notation is consistent with the classification of rings of order p2 for p, a prime of [9]. While the use of finite fields as alphabets in Coding Theory dates back to its inception in the 1940's, and the use of finite rings from the 1980's, it is only in recent years that non-unitary rings have been used as alphabets at the cost of theoretical hurdles [1,2,3,4].

    We will use a definition of self-dual codes for non-commutative rings introduced in [2]. This new notion of self-dual codes coincides with that of QSD codes for that special ring. Also of interest are left self-dual (LSD) and right self-dual (RSD) codes, in agreement with the non-commutativity of the alphabet ring. In particular, we modify the propagation rules of [1] to produce self-orthogonal and self-dual codes, as well as one-sided self-dual codes. As an application, we classify the three types of codes considered in lengths at most 7. We derive mass formulas for the these three types that guarantee that the classification is complete.

    The material is arranged as follows. The next section contains the preliminary notions and notations needed in the later sections. Section 3 derives building-up constructions for the three classes of codes mentioned. Section 4 applies these propagation rules to concrete classifications in short lengths. Section 5 concludes the article.

    Let Fn3 represent the vector space of n-tuples over the 3-element field F3. A ternary linear code C of length n and dimension k, denoted shortly as an [n,k]3 code, is a k-dimensional subspace of Fn3.

    The number of nonzero coordinates of a vector xFn3 is called its Hamming weight wt(x). The Hamming distance d(x,y) between two vectors x,yFn3 is defined by d(x,y)=wt(xy). The minimum distance of a linear code C is

    d(C)=min{d(x,y)|x,yC,xy}=min{wt(c)|cC,c0}

    A 3-ary linear code of length n, dimension k, and minimum distance d is said to be an [n,k,d]3 code.

    Following [9], we define the ring E3 of order 9 on two generators a and b by the relations:

    E3=a,b| 3a=3b=0, a2=a, b2=b, ab=a, ba=b.

    Thus, E3 has characteristic three, and consists of nine elements

    E3={0,a,b,c,d,e,f,g,h},

    where

    c=a+b, d=2b, e=2a,f=e+b, g=a+d,  and h=d+e.

    These definitions immediately lead to the addition and the multiplication tables given as follow.

    Table 1.  Addition and multiplication tables for E3.

     | Show Table
    DownLoad: CSV

    We may deduce from the multiplication table that this ring is non-commutative without identity and has unique maximal ideal J3={0,f,g=2f} with residue field E3/J3F3.

    As a result, we have the following f-adic decomposition. It can be checked by inspection that any element iE3 can be expressed as i=ax+fy, for unique scalars x,yF3. We have defined a natural action of F3 on the ring E3 by the rule

    r0=0r=0,r1=1r=r,and r2=r+r=2r for all rE3.

    Note that, for all rE3, x,yF3, this action is "distributive" in the sense that r(xy)=rx+ry, where denote the addition in F3. When xFn3, and rEn3, we will occasionally use the inner product notation (x,r) to indicate

    (x,r)=x1r1++xnrn.

    We define the reduction map modulo S as π:E3E3/J3F3 by

    π(0)=π(f)=π(g)=0,
    π(a)=π(b)=π(h)=1,
    π(e)=π(d)=π(c)=2.

    This map is extended in the natural way in a map from En3 to Fn3.

    A linear E3-code C of length n is a one-sided E3-submodule of En3. It may be thought of as the E3-span of the rows of a matrix called a generator matrix (we assume that these rows belong to C). There are two ternary codes of length n associated with the code C. The residue code res(C) is just π(C), and the torsion code tor(C) is {xFn3| fxC}. It is easy to verify that res(C)tor(C) [3]. We denote the dimension of the residue code by k1, and the dimension of the torsion code by k1+k2. Such a code C is of type {k1,k2}. A straightforward application of the first isomorphism theorem [3] shows that

    |C|=|res(C)||tor(C)|=32k1+k2.

    By a result similar to [3, Theorem 1], we can show that every code C over E3 of length n and type {k1,k2} is equivalent to a code with a generator matrix

    [aIk1aXY0fIk2fZ],

    where Y is a matrix with entries in E3, X and Z are matrices with entries from F3, and Ik1, Ik2 are identity matrices.

    In fact, generator matrices of res(C) and tor(C) are given by

    [Ik1Xπ(Y)] and [Ik1Xπ(Y)0Ik2Z],

    respectively.

    Define the inner product of x and y in En3 as (x,y)=x1y1+x2y2++xnyn, where x=(x1,x2,,xn) and y=(y1,y2,,yn).

    The left dual code CL of a code C is the module defined as

    CL={yEn3 | xC , (y,x)=0}.

    The right dual code CR of a code C is the module defined as:

    CR={yEn3 | xC , (x,y)=0}.

    Thus, the left (respectively, right) dual of a left (respectively, right) module is a left (respectively, right) module.

    A left self-dual code C satisfies C=CL. Likewise, a right self-dual code C satisfies C=CR.

    The two-sided dual of C, denoted by C, is given by C=CLCR. We say that a code C is self-dual (SD) iff C=CLCR. A code C is self-orthogonal (SO) if for all x,yC, (x,y)=0.

    Clearly, C is a self-orthogonal code C, iff CCLCR.

    Two E3-codes are monomially equivalent if there is a monomial transformation of coordinates that maps one to the other. Here a monomial transformation is a matrix with entries in F3 and with exactly one element per row and per column. The parameters (n,3k,d) of an E3-code are identified with that of its image by ϕ, defined in the next subsection.

    An additive code C of length n over F9 is an additive subgroup of Fn9. Thus, C contains 3k codewords for some integer 0k2n, and is called an (n,3k) code. If, furthermore, C has minimum distance d, we write the parameters of C as (n,3k,d). An additive code C over F9 can be represented by a k×n generator matrix with entries from F9 whose rows span C, called a generator matrix. That is, C is the F3-span of its rows.

    Let ωF9 be such that ω2=ω+1. Since the polynomial t2t1 is irreducible over F3, we can write F9=F3[ω]. The trace map, Tr:F9F3, is defined as Tr(x)=x+x3.

    Every linear E3-code C is attached with an additive F9-code ϕ(C) by the alphabet substitution

    00,  a2,  bω,
    c2+ω,  d2ω,  e1,
    fω+1,  g2(ω+1),  h1+2ω,

    extended naturally to Fn9. The parameters (n,3k,d) of an E3-code are identified with that of its image under ϕ. It can be checked that, for all xEn3, we have Tr(ϕ(x))=π(x), and thus res(C)=Tr(ϕ(C)).

    Similarly, we see that tor(C) is the so-called subfield subcode of ϕ(C), that is Fn3ϕ(C).

    We recall from [17] that the weight enumerator of any linear or additive code C of length n is the polynomial

    WC(x,y)=xn+ni=1Aixniyi

    where the sequence A1,......,An is the weight distribution of C. That is, Ai is the number of codewords in C of weight i.

    Lemma 1. If C is a linear code of length n over E3 with weight enumerator WC(x,y), then the weight enumerator of the dual code C is given by

    WC=3nWC(x+8y,xy).

    In particular, the weight enumerator of a self-dual code is invariant under the matrix group generated by 13(1811).

    Proof. The first statement, analogous to the MacWilliams identity for linear codes over Fq, follows from the general theory [17, Theorem 13], since our trace inner product ϕ(C) is an (n,32k1+k2) additive code over F9 with

    WC(x,y)=Wϕ(C)(x,y).

    The second statement follows from the first, by noticing that, for a self-dual code, we have WC=WC.

    Let φn,k denote the number of distinct self-orthogonal ternary codes having parameters [n,k1] (see [15, Theorem 4.7]. We define the Gaussian coefficient (kr)3 for rk as

    (kr)3=(3k1)(3k11)....(3kr+11)(3r1)(3r11)....(31)

    which gives the number of subspaces of dimension r contained in a k-dimensional vector space over F3.

    In what follows, we present a mass formula for self-orthogonal codes over E3 which is a characteristic 3-version of [4, Theorem 8].

    Theorem 1. For all lengths n, and for the type {k1,k2}, where k11, the number of self-orthogonal codes over E3 is

    NSO(n,k1,k2)=φn,k1(n2k1k2)33k1(n2k1k2).

    If k1=0, then

    NSO(n,0,k2)=(nk2)3.

    The following mass formulas follow by the usual counting technique under group action. Corollaries 1–4 are a consequence of Theorem 1.

    Corollary 1. For given length n and type {k1,k2}, with 0k1,k2n, we have

    C1|Aut(C)|=NSO(n,k1,k2)2nn!,

    where C runs over distinct representatives of equivalence classes under monomial column permutations of SO codes of length n and type (k1,k2).

    Corollary 2. For given length n and type {k1,k2}, with k11, we have

    C1|Aut(C)|=NSD(n,k1,k2)2nn!=φn,k12nn!,

    where C runs over distinct representatives of equivalence classes under monomial column permutations of SD codes of length n and type {k1,k2}.

    Corollary 3. For given length n and type {0,k2}, with k21, we have

    C1|Aut(C)|=NRSD(n,k1,k2)2nn!=12nn!,

    where C runs over distinct representatives of equivalence classes under monomial column permutations of RSD codes of length n and type {0,k2}.

    Corollary 4. For given length n and type {n2,0}, with n21, we have

    C1|Aut(C)|=NLSD(n,k1,k2)2nn!=φn,n22nn!,

    where C runs over distinct representatives of equivalence classes under monomial column permutations of LSD codes of length n and type {n2,0}.

    In this section we provide the building-up construction for self-orthogonal codes, (one-sided) self-dual, and self-dual codes over E3. Our building-up construction needs the following theorems.

    Theorem 2. Let C be an E3 code of length n, with residue code C1 and torsion code C2. The following hold:

    If C is a linear code of length n over E3, then C=aC1+fC2.

    If C1 is self-orthogonal with C1C2C1, then C is a self-orthogonal code.

    If, furthermore, |C|=3n, then C2=C1.

    Proof. The first statement:_ It suffices to prove that CaC1+fC2.

    Let iC. We can write i in f-adic decomposition form as i=ax+fy where x,yFn3.

    Since π(ax+fy)=x, it follows that xres(C).

    By following [3, Lemma 3], we have axC. Also by a linearity of C, we can see that fyC, and hence ytor(C).

    This proves that CaC1+fC2.

    The second statement:_ Suppose i1,i2C. We can write i1 and i2 in f-adic decomposition form as i1=ax1+fy1 and i2=ax2+fy2 where x1,x2res(C) and y1,y2tor(C). Compute (i1,i2),

    (ax1+fy1,ax2+fy2)=a2(x1,x2)+af(x1,y2)+fa(x2,y1)+f2(y1,y2)=a(x1,x2)+f(x2,y1).

    Since tor(C)res(C), it follows that (x1,x2)=(x2,y1)=0, which is self-orthogonal. Thus, C is self-orthogonal.

    The last statement:_ It follows that C2=3nk1=C1.

    The next result control the linear structure of SO codes.

    Corollary 5. For any SO codes C over E3 of length n, we have

    (i) tor(C)res(C).

    (ii) res(C) must be a self-orthogonal ternary code.

    Proof. For (i), let ytor(C), then fyC and qC, we can write q in f-adic decomposition form as q=au+fv, where ures(C) and vtor(C).

    (fy,au+fv)=fa(y,u)=f(y,u)=0.

    Thus, yres(C) and tor(C)res(C).

    For (ii), By (i), and the fact that res(C)tor(C), it follows that

    res(C)tor(C)res(C).

    The following theorem characterizes one-sided self-dual codes over E3.

    Theorem 3. For any linear code C over E3, we have

    (i) CL=a res(C)+f res(C).

    (ii) CR=a tor(C)+f Fn3.

    Proof. For (i), we need to prove that res(CL)=res(C)=tor(CL).

    From the fact res(CL)tor(CL), it follows that res(CL)res(C)tor(CL).

    Now, let ytor(CL), then fyCL and xres(C), then axC. By definition of CL, we can see that

    (fy,ax)=fa(y,x)=f(y,x)=0.

    Thus, yres(C) and tor(CL)res(C).

    On the other hand, given rres(C) and iC, i may be expressed in f-adic decomposition form as i=au+fv, where ures(C) and vtor(C),respectively. It can be seen that

    (ar,i)=(ar,au+fv)=a(r,u)=0

    by definition of C. Thus, arCL, and rres(CL). This implies that, res(C)res(CL). Therefore,

    res(CL)=res(C)=tor(CL).

    For (ii), suppose ytor(C)res(C), and iC, we can write i in f-adic decomposition form as i=au+fv, where ures(C) and vtor(C). By definition of C, we have

    (i,ay)=(au+fv,ay)=a(u,y)+f(v,y)=0.

    Thus, ayCR, and yres(CR). This implies that, tor(C)res(CR). Conversely, let xres(CR), then axCR. Let ytor(C), then fyC. Observe that

    (fy,ax)=fa(y,x)=f(y,x)=0.

    Thus, fyC and ytor(C). This implies that res(CR)=tor(C).

    Now to prove tor(CR)=Fn3, it suffices to show that Fn3tor(CR).

    Let rFn3, and iC, we can write i in f-adic decomposition form as i=au+fv, where ures(C) and vtor(C). We can see that

    (i,fr)=(au+fv,fr)=af(u,r)+f2(v,r)=0.

    Thus, frCR, then rtor(CR), and so Fn3tor(CR). This completes the proof.

    Corollary 6. For any linear code C over E3, we have

    (i) C is left self-dual (LSD) iff C is of type {n2,0}.

    (ii) C is right self-dual (RSD) iff C=f Fn3.

    The lengths of LSD codes can be determined completely.

    Corollary 7. Left self-dual codes over E3 of length n occurs if and only if n is a multiple of 4.

    Proof. From Theorem 3, C is left self-dual iff res(C) is a self-dual ternary code. Then, by [16, Theorem 3], a self-dual code over F3 of length n exists only if n is a multiple of 4.

    This completes the proof. The next theorem characterizes SD codes.

    Theorem 4. Assume C is an E3-code of length n, C is a SD code if and only if

    C=a res(C)+f res(C);

    moreover, |C|=3n.

    Proof. We know that C is self-dual code over E3 iff C=C=CRCL. By Theorem 2, we can see that

    C=a (res(CR)res(CL))+f (tor(CR)tor(CL)).

    Thus, by Theorem 3, it can be seen that

    C=a tor(C)+f res(C)=a res(C)+f res(C).

    Corollary 8. For any linear code C over E3, we have:

    (1) If C is SD with k1=0, then C is RSD.

    (2) If C is SD with k2=0, then C is LSD.

    The next result bounds the minimum distances of SD and LSD codes.

    Corollary 9. (i) The minimum distance d(C) of a self-dual code over E3 is less than or equal to min{d(res(C)),d(res(C))}.

    (ii) If C is a left self-dual code C over E3, then the minimum distance d(C) is equal to d(res(C)).

    Proof. For (i), by Theorem 4, we have C=a res(C)+f res(C).

    Let d1 and d2 denote the minimum distances of res(C) and res(C), respectively.

    By definition of tor(C), we have d(C)d2. By [3, Lemma 3], we have a res(C)C, which indicates that d(C)d1. It follows that d(C)min{d1,d2}.

    For (ii), by Theorem 3, we have C=a res(C)+f res(C), where res(C)=res(C). This means that d1=d2.

    We now establish that d(C)d1. Assume q is in C and wt(q)=d. Because rres(C) and sres(C), q=ar+fs by Theorem 2. We have the following three scenarios, which rely on r and s, since C is nonzero:

    (1) wt(q)=wt(ar)=wt(r) if r0 and s=0,

    (2) wt(q)=wt(fs)=wt(s) if r=0 and s0,

    (3) wt(q)=wt(ar+fs)wt(ar)=wt(r) if r,s0.

    It follows that d(C)d1 since d1=d2. Thus, from (i), we conclude that d(C)=d1.

    In this subsection, we present the build-up construction method for self-orthogonal codes over E3. The following theorem is a propagation rule of order three which increases the number of generators by one.

    Theorem 5. Let C0 be a self-orthogonal code over E3 of length n with generator matrix G0=(ri) where ri is the ith row of G0, for i=1,2,,m. Let xFn3 and α,β,γE3, such that α+β+γ=0. Then the code C with the following generator matrix

    G=(αβ0γx(x,r1)(x,r1)(x,r1)r1(x,rm)(x,rm)(x,rm)rm)

    is a self-orthogonal code of length n+3 if:

    (i) (x,x)=1, and α,β,γE3J3; or

    (ii) (x,x)=1 and (α0, β=0, γ=2α).

    Proof. It suffices to show that the rows of G are orthogonal to each other. Let y0=(αβ0γx), the first row of G and yi=((x,ri)(x,ri)(x,ri)ri), the i+1st row of G, for i=1,2,,m.

    (i) If (x,x)=1 and α,β,γE3J3, then

    (y0,y0)=α2+β2+γ2(x,x)=α2+β2+γ2=0,(y0,yi)=α(x,ri)+β(x,ri)+γ(x,ri)=(α+β+γ)(x,ri)=0,(yi,yj)=3(x,ri)(x,rj)+(ri,rj)=0,

    for all i,j=1,2,,m.

    (ii) If (x,x)=1 and (α0, β=0, γ=2α), then

    (y0,y0)=α2+(2α)2(x,x)=α2α2=0,(y0,yi)=α(x,ri)+2α(x,ri)=3α(x,ri)=0,(yi,yj)=3(x,ri)(x,rj)+(ri,rj)=0,

    for all i,j=1,2,,m.

    In both cases, we see that C is a self-orthogonal code.

    Example 1. We construct self-orthogonal codes of length 6 derived from length 3. By Theorem 2, we have the self-orthogonal (3,32,3) code with generator matrix G0 given by

    G0=(abh).

    Using Theorem 5 from G0, we get three non-equivalent monomial SO (6,34,3) codes, with generator matrices:

    (a00ae0fffabh),    (aa0a00aaaabh),  and  (ab0h00aaaabh).

    Their Hamming weight enumerators are

    W1(x,y)=x6+14x3y3+12x2y4+18xy5+36y6,W2(x,y)=x6+16x3y3+64y6,

    and

    W3(x,y)=x6+10x3y3+18xy5+52y6,

    respectively.

    Remark 1. The build-up construction method given in Theorem 5, cannot be also used for self-dual codes as the cardinality of the code C is not 3n+3.

    Remark 2. If any two self-orthogonal E3-codes are monomially equivalent, then their residue and torsion codes are also monomially equivalent, but the converse is not necessarily true. For example, when n=3 and type {1,0}, the codes C1 and C2 with generator matrices (aaa) and (abh), respectively. They have the same residue and torsion codes, but are not monomially equivalent.

    We will provide a construction approach for one-sided self-dual codes over E3 in this subsection. Initially, this structure was provided for left self-dual codes with two extra generators and a length increase of four. We only need to take into consideration the situation in which the length n is a multiple of 4, as a result of Corollary 7.

    Theorem 6. Let C0 be a left self-dual code over E3 of length n with generator matrix G0=(ri) where ri is the ith row of G0, for i=1,2,,m. Let x1,x2Fn3 such that (x1,x2)=0, and (xi,xi)=2 for i=1,2. For 1im, define ui=(x1,ri) and vi=(x2,ri). If αE3J3, then the code C with the following generator matrix

    G=(α0002αx10α002αx2u1v1u1+v12u1+v1r1umvmum+vm2um+vmrm)

    is a left self-dual code of length n+4.

    Proof. Let y0=(α0002αx1) and y0=(0α002αx2). Then

    (y0,y0)=α2+(2α)2(x1,x1)=0,(y0,y0)=α2+(2α)2(x2,x2)=0,(y0,y0)=α(x1,x2)=0.

    Now, for 1im, let yi=(uiviui+vi2ui+viri). So, for 1jm,

    (yi,yj)=uiuj+vivj+(ui+vi)(uj+vj)+(2ui+vi)(2uj+vj)+(ri,rj)=0.

    Thus, C is self-orthogonal and since |C|=92|C0|=3n+4, C is left self-dual.

    Define ^C0 to be the span of the last m rows of G, and for every yE3 write

    Ty=(y,0,0,0,2yx1), and  Uy=(0,y,0,0,2yx2).

    The construction in Theorem 6 maybe demonstrated to be equivalent to

    C=˙t,uE3S(Tt+Uu+^C0).

    Example 2. We construct a left self-dual code of length 8 derived from length 4. By Theorem 3, we have the left self-duall (4,34,3) code with generator matrix G1 given by

    G1=(a0aa0aae).

    Using Theorem 6 from G1 with α=a, we get only one non-equivalent monomial left self-dual (8,38,3) code with generator matrix

    G1,1=(a000ee000a00ea00aae0a0aaae0e0aae).

    Its Hamming weight enumerator is

    W1,1(x,y)=x8+64x5y3+96x4y4+1024x2y6+3072xy7+2304y8.

    Repeating this process using G1,1 with x1=(1,1,0,0,0,0,0,0), we get only three non-equivalent monomial left self-dual (12,312,3) codes with generator matrices

    G1,1,1=(a000ee0000000a00000ea000aae0a000ee00aae00a00ea00eea0aae0a0aa0eeaae0e0aae),
    G1,1,2=(a000ee0000000a00aeaaa000a0aaa000ee00ae0e0a00ea00e0eeaae0a0aa0000ae0e0aae),

    and

    G1,1,3=(a000ee0000000a00000eeeeeaae0a000ee00a0aa0a00ea00e0eeaae0a0aa0000ae0e0aae).

    Their Hamming weight enumerators are

    W1,1,1(x,y)=x12+96x9y3+144x8y4+3072x6y6+9216x5y7+6912x4y8+32768x3y9+147456x2y10+221184xy11+110592y12,W1,1,2(x,y)=x12+24x9y3+8x8y4+176x7y5+1112x6y6+4376x5y7+15272x4y8+47776x3y9+132776x2y10+208544xy11+121376y12,

    and

    W1,1,3(x,y)=x12+32x9y3+1248x6y6+5184x5y7+14256x4y8+46976x3y9+134784x2y10
    +207360xy11+121600y12,

    respectively.

    Corollary 10. The minimum Hamming weight of left self-dual codes over E3 of length n is a multiple of 3.

    Proof. Following Corollary 9, the minimum distance d(C) of a left self-dual code C is equal to d(res(C)). Thus, by [11, Lemma 1], self-dual codes over F3 of length n exist only if n is a multiple of 4 and a minimum weight is a multiple of 3.

    In the following theorem, we will now describe the general approach that we will utilize in finding construction methods for right self-dual codes over E3.

    Theorem 7. Let C0 be a right self-dual code of length n over E3, with generator matrix G0=(ri), where ri is the i-th row of G0, for 1im. Then the code C with the following generator matrix

    G=(fIh0 ... 00G00)

    is a a right self-dual code of length n+h.

    Proof. We can show that G generates a self-orthogonal code C in a similar way as given in Theorem 6.

    Now, according to |C|=3h|C0|=3n+h, C is self-dual.

    Corollary 11. Every one-sided self-dual code is also self-dual.

    Proof. Let C be a left self-dual in order to demonstrate that every left self-dual is self-dual. res(C)=res(C) and tor(C)=res(C) are the results of Theorem 3. Hence, C is a self-dual code according to Theorem 4.

    To prove that every right self-dual is self-dual, let C be right self-dual. Also, by use Theorem 3, we see that C=a{0}+fFn3. Observe that tor(C)=res(C). Then, by Theorem 4, C is a self-dual code.

    Example 3. The linear code of length 4 with the two generators

    G2=(a0aa0aae)

    is a self-dual and left self-dual, but not right self-dual.

    Example 4. The linear code of length 3 defined by

    C={000,f00,0f0,00f,g00,0g0,00g,ff0,f0f,0ff,gg0,g0g,0gg,gfg,ggf,fgg,ffg,fgf,gff,fg0,0gf,f0g,gf0,0gf,g0f,fff,ggg}

    is a self-dual and right self-dual code, but not left self-dual.

    Remark 3. We note that a similar construction method in Theorems 6 and 7 can be applied to self-dual codes over E3.

    The following result constructs a self-dual code of length n+3 from a self-dual code of length n.

    Theorem 8. Let C0 be a self-dual code over E3 of length n with generator matrix G0=(ri) where ri is the ith row of G0, for i=1,2,,m. Let xFn3 and α,β,γE3, such that α+β+γ=0. Let σJ3, non-zero element. Then the code C with the following generator matrix

    G=(αβ0γx0σ02σx(x,r1)(x,r1)(x,r1)r1(x,rm)(x,rm)(x,rm)rm)

    is a self-dual code of length n+3 if:

    (1) (x,x)=1, and (α,β,γE3J3); or

    (2) (x,x)=1, and (α=0, βE3J3, γ=2β).

    Proof. We first show that C is self-orthogonal. Let y0=(αβ0γx), the first row of G, and y0=(0σ02σx), the second row of G. For 1im, let yi=((x,ri)(x,ri)(x,ri)ri). Then,

    (i) If (x,x)=1 and (α,β,γE3J3), then

    (y0,y0)=α2+β2+γ2(x,x)=(α2+β2+γ2)=0,(y0,y0)=σ2+(2σ)2(x,x)=0,(y0,y0)=βσ+γ(2σ)(x,x)=0,(y0,y0)=σβ+2σγ(x,x)=σ+2σ=0,(y0,yi)=α(x,ri)+β(x,ri)+γ(x,ri)=(α+β+γ)=0,(y0,yi)=(σ+2σ)(x,ri)=0,(yi,yj)=3(x,ri)(x,rj)+(ri,rj)=0,

    for all i,j=1,2,,m.

    (ii) If (x,x)=1 and (α=0, βE3J3, γ=2β), then

    (y0,y0)=β2+(2β)2(x,x)=β2β2=0,(y0,y0)=σβ+(2σ)(2β)(x,x)=σβσβ=0,(y0,yi)=β(x,ri)+2β(x,ri)=3β(x,ri)=0,(yi,yj)=3(x,ri)(x,rj)+(ri,rj)=0,

    for all i,j=1,2,,m.

    In both cases, we see that C is a self-orthogonal code. Since |C|=9131|C0|=3n+3, C is a self-dual code of length n+3.

    Example 5. We construct self-dual codes of length 7 derived from length 4. By Theorem 4, we have the self-dual (4,34,1) code with generator matrix G3=(a0aa0f0000fg).

    Using Theorem 8 from G3, we get five non-equivalent monomial self-dual codes with generator matrices:

    (aa00a000f00g00000a0aafff0f0000000fg), (aa0aeea0f0gffgaaaa0aaggg0f00fff00fg),   (0a0ee000g0ff00aaaa0aafff0f0000000fg),
      (0a0e0e00g0f0f0eeea0aa0000f00fff00fg),and (0a000ea0g000fg000a0aa0000f00ggg00fg).

    Their Hamming weight enumerators are

    W1(x,y)=x7+2x6y+12x5y2+64x4y3+116x3y4+312x2y5+880xy6+800y7,W2(x,y)=x7+12x5y2+40x4y3+90x3y4+240x2y5+724xy6+1080y7,W3(x,y)=x7+2x5y2+24x4y3+38x3y4+52x2y5+236xy6+376y7,W4(x,y)=x7+2x6y+6x5y2+40x4y3+56x3y4+48x2y5+256xy6+320y7,

    and

    W5(x,y)=x7+2x6y+34x4y3+122x3y4+162x2y5+208xy6+200y7,

    respectively.

    Theorem 9. Two self-dual E3-codes are monomially equivalent if and only if their residue codes are also equivalent.

    Proof. Let C1 and C2 be two monomially equivalent codes over E3, then their residue codes are also equivalent as a res(C1)C1 and a res(C2)C2.

    Conversely, Let C1 and C2 be two self-dual E3-codes, and res(C1) and res(C2) monomially equivalent codes. Then, there is a monomial matrix M sends a code res(C1) into the equivalent code such that

    res(C2)=res(C1)M={uM:ures(C1)}.

    The set of all monomials such that res(C2)=res(C1) forms the automorphism group G(res(C1)) of the code res(C1), and as res(C2)=res(C1)M.

    Thus, from Theorem 4, we have

    C2=a res(C2)+f res(C2)=a res(C1)M+f res(C1)M=C1M. (3.1)

    By Eq (3.1), we have C2=C1M, proving that C1 and C2 are monomially equivalent.

    Remark 4. Every one-sided self-dual code is also a self-dual code, but not conversely as the next example shows.

    Example 6. The linear code with the three generators G=(a0aa0f0000fg), is a self-dual code, but neither left- nor right-self-dual.

    In this section, we use the multilevel constructs in Theorems 2–4 to categorize self-orthogonal, (one-sided) self-dual, and self-dual E3-codes of length n<8 with residue dimension k1=0,1,2. All the computer calculations in this section were performed in Magma [8].

    There is one right self-dual code over E3 of type {0,1}, with generator matrix in Table 2.

    Table 2.  RSD codes over E3 of type {0,1}.
    Generator matrix |Aut(C)| Weight distribution
    (f) 2 [1,2]

     | Show Table
    DownLoad: CSV

    There is one right self-dual code over E3 of type {0,2}, with generator matrix in Table 3.

    Table 3.  RSD codes over E3 of type {0,2}.
    Generator matrix |Aut(C)| Weight distribution
    (f00f) 8 [1,4,4]

     | Show Table
    DownLoad: CSV

    For type {0,2}, there are three distinct self-orthogonal codes over E3, with generator matrices in Table 4.

    Table 4.  SO codes over E3 of type {0,2}.
    Generator matrix |Aut(C)| Weight distribution Generator matrix |Aut(C)| Weight distribution
    (f000ff) 8 [1,2,2,4] (f0f0ff) 12 [1,0,6,2]
    (f000ff) 16 [1,4,4,0]

     | Show Table
    DownLoad: CSV

    For type {0,3}, there is one right self-dual code over E3, with generator matrix in Table 5.

    Table 5.  RSD codes over E3 of type {0,3}.
    Generator matrix |Aut(C)| Weight distribution
    (f000f000f) 48 [1,6,12,8]

     | Show Table
    DownLoad: CSV

    For type {1,0}, there are two distinct self-orthogonal codes over E3, with generator matrices in Table 6.

    Table 6.  SO codes over E3 of type {1,0}.
    Generator matrix |Aut(C)| Weight distribution Generator matrix |Aut(C)| Weight distribution
    (aaa) 12 [1,0,0,8] (abh) 6 [1,0,0,8]

     | Show Table
    DownLoad: CSV

    For type {1,1}, there is one distinct self-dual code over E3, with generator matrix in Table 7.

    Table 7.  SD codes over E3 of type {1,1}.
    Generator matrix |Aut(C)| Weight distribution
    (aaa0gf ) 12 [1,0,6,20]

     | Show Table
    DownLoad: CSV

    For type {0,4}, there is one right self-dual code over E3, with generator matrix in Table 8.

    Table 8.  RSD codes over E3 of type {0,4}.
    Generator matrix |Aut(C)| Weight distribution
    (f0000f0000f0000f) 96 [1,8,24,32,16]

     | Show Table
    DownLoad: CSV

    For type {1,0}, there are four distinct self-orthogonal codes over E3, with generator matrices in Table 9.

    Table 9.  SO codes over E3 of type {1,0}.
    Generator matrix |Aut(C)| Weight distribution Generator matrix |Aut(C)| Weight distribution
    (a0aa) 24 [1,0,0,8,0] (a0bh) 12 [1,0,0,8,0]
    (afaa) 12 [1,0,0,2,6] (afbh) 6 [1,0,0,2,6]

     | Show Table
    DownLoad: CSV

    For type {1,1}, there are six distinct self-orthogonal codes over E3, with generator matrices in Table 10.

    Table 10.  SO codes over E3 of type {1,1}.
    Generator matrix |Aut(C)| Weight distribution Generator matrix |Aut(C)| Weight distribution
    (a0aa0f00) 24 [1,2,0,8,16] (a0bh0f00) 12 [1,2,0,8,16]
    (a0aa0ffg) 12 [1,0,0,14,12] (a0bh0ffg) 6 [1,0,0,14,12]
    (a0aa00fg) 24 [1,0,6,20,0] (afaaf00g) 12 [1,0,6,2,18]

     | Show Table
    DownLoad: CSV

    For type {1,2}, there is only one distinct self-dual codes over E3, with generator matrix in Table 11.

    Table 11.  SD codes over E3 of type {1,2}.
    Generator matrix |Aut(C)| Weight distribution
    (a0aa0b0000bd) 24 [1,2,6,32,40]

     | Show Table
    DownLoad: CSV

    For type {2,0}, there is only one left self-dual code over E3, with generator matrix in Table 12.

    Table 12.  LSD codes over E3 of type {2,0}.
    Generator matrix |Aut(C)| Weight distribution
    (a0aa0aae) 48 [1,0,0,32,48]

     | Show Table
    DownLoad: CSV

    For type {0,5}, there is one right self-dual code over E3, with generator matrix in Table 13.

    Table 13.  RSD codes over E3 of type {0,5}.
    Generator matrix |Aut(C)| Weight distribution
    (f00000f00000f00000f00000f) 3840 [1,10,40,80,80,32]

     | Show Table
    DownLoad: CSV

    For type {1,0}, there are six distinct self-orthogonal codes, with generator matrices in Table 14.

    Table 14.  SO codes over E3 of type {1,0}.
    Generator matrix |Aut(C)| Weight distribution Generator matrix |Aut(C)| Weight distribution
    (a00aa) 96 [1,0,0,8,0,0] (a00bh) 48 [1,0,0,8,0,0]
    (af0aa) 24 [1,0,0,2,6,0] (af0bh) 12 [1,0,0,2,6,0]
    (affaa) 24 [1,0,0,2,0,6] (affbh) 12 [1,0,0,2,0,6]

     | Show Table
    DownLoad: CSV

    For type {1,2}, there are ten distinct self-orthogonal codes, with generator matrices in Table 15.

    Table 15.  SO codes over E3 of type {1,2}.
    Generator matrix |Aut(C)| Weight distribution Generator matrix |Aut(C)| Weight distribution
    (a00aa0f00000f00) 96 [1,4,4,8,32,32] (a00bh0f00000f00) 48 [1,4,4,8,32,32]
    (a00aa0ff00000fg) 48 [1,0,8,20,12,40] (a00aa0f00000ffg) 24 [1,2,0,14,40,24]
    (a00bh0ff00000fg) 12 [1,2,0,14,40,24] (a00aa0ff0000ffg) 24 [1,0,2,20,30,28]
    (a00bh0ff0000ffg) 12 [1,0,2,20,30,28] (a00aa00f00000fg) 48 [1,2,6,32,40,0]
    (affaa00f00000gf) 24 [1,2,6,14,22,36] (afgaag000ff000g) 24 [1,0,6,2,18,0]

     | Show Table
    DownLoad: CSV

    For type {1,3}, there is only one distinct self-dual codes over E3, with generator matrix in Table 16.

    Table 16.  SD codes over E3 of type {1,3}.
    Generator matrix |Aut(C)| Weight distribution
    (a00aa0f00000f00000fg) 96 [1,4,10,44,104,80]

     | Show Table
    DownLoad: CSV

    For type {0,6}, there is one right self-dual code over E3, with generator matrix in Table 17.

    Table 17.  RSD codes over E3 of type {0,6}.
    Generator matrix |Aut(C)| Weight distribution
    (f000000f000000f000000f000000f000000f) 46080 [1,6,12,16,48,96,64]

     | Show Table
    DownLoad: CSV

    For type {1,3}, there are 13 distinct self-orthogonal codes, with generator matrices in Table 18.

    Table 18.  SO codes over E3 of type {1,3}.
    Generator matrix |Aut(C)| Weight distribution Generator matrix |Aut(C)| Weight distribution
    (aa000a00f000000f000000f0) 576 [1,6,12,16,48,96,64] (ab000h00f000000f000000f0) 288 [1,6,12,16,48,96,64]
    (aa000af0f00g000f000000f0) 96 [1,4,4,14,68,104,48] (ab000hf0f00g000f000000f0) 48 [1,4,4,14,68,104,48]
    (aa000af0000g000f000000f0) 192 [1,4,10,44,104,80,0] (aa000af0f00gf00f0gf000fg) 72 [1,0,6,28,54,102,52]
    (ab000hf0f00gf00f0gf000fg) 36 [1,0,6,28,54,102,52] (aaaaaaf00g00f00g00f00g00) 96 [1,0,2,0,0,4,20]
    (abhabhf00g00f00g00f00g00) 16 [1,0,2,0,0,4,20] (aaaaaaff0gg0ff0gg0ff0gg0) 96 [1,0,0,0,6,0,20]
    (abhabhff0gg0ff0gg0ff0gg0) 8 [1,0,0,0,6,0,20] (aaaaaagf0000g0f000g00f00) 96 [1,0,12,16,18,24,172]
    (abhabhgf0000g0f000g00f00) 48 [1,0,12,16,18,24,172]

     | Show Table
    DownLoad: CSV

    For type {1,4}, there are two distinct self-dual codes over E3, with generator matrices in Table 19.

    Table 19.  SD codes over E3 of type {1,4}.
    Generator matrix |Aut(C)| Weight distribution Generator matrix |Aut(C)| Weight distribution
    (aa000a0f000g00f000000f000000f0) 576 [1,6,18,64,192,288,160] (aaaaaa0f000g00f00g000f0g0000fg) 1440 [1,0,30,40,90,60,508]

     | Show Table
    DownLoad: CSV

    For type {0,7}, there is one right self-dual code over E3, with generator matrix in Table 20.

    Table 20.  RSD codes over E3 of type {0,7}.
    Generator matrix |Aut(C)| Weight distribution
    (f0000000f0000000f0000000f0000000f0000000f0000000f) 604800 [1,14,84,280,560,672,448,128]

     | Show Table
    DownLoad: CSV

    For type {1,5}, there are two distinct self-dual codes over E3, with generator matrices in Table 21.

    Table 21.  SD codes over E3 of type {1,5}.
    Generator matrix |Aut(C)| Weight distribution
    (aa0aaaa0f0000g00f0000000f00g0000f0g00000fg) 2880 [1,2,30,100,170,240,628,1016]
    (aa0000a0f0000g00f0000000f0000000f0000000f0) 4608 [1,8,30,100,320,672,736,320]

     | Show Table
    DownLoad: CSV

    According to the mass formula in subsection 2.5, we enumerate all equivalent codes obtained under the action of the monomial group, and illustrate how the mass formula can be used in the classification of E3-codes, that is, we find representatives for the equivalence classes of E3-codes for each length and type. The following examples illustrate our results.

    Example 7. Let C be the set of self-orthogonal codes over E3 of length 3 and type {1,0} given by the following generator matrices:

    ((aaa),(abh)).

    The codes in C are inequivalent and they have an automorphism group of order 12 and 6 respectively. Therefore, from Corollary 1,

    211|Aut(C)|=112+16=14=NSO(n,k1,k2)2nn!=4×3×16×8=14.

    It demonstrates that, up to monomial equivalency, there exist precisely two self-orthogonal codes.

    Example 8. Let C be the set of left self-dual codes over E3 of length 4 and type {2,0} given by the following generator matrix: (a0aa0aae).

    The code in C has an automorphism group of order 48. Therefore, by Corollary 4,

    111|Aut(C)|=148=φn,n22nn!=8×1×124×16=148.

    It demonstrates that, up to monomial equivalency, there exist only one left self-dual code.

    Example 9. Let C be the set of self-dual codes over E3 of length 7 and type {1,5} given by the following generator matrices:

    ((aa0000a0f0000g00f0000000f0000000f0000000f0),(aa0aaaa0f0000g00f0000000f00g0000f0g00000fg)).

    The codes in C are inequivalent and they have an automorphism group of order 4608 and 2880 respectively. Therefore, from Corollary 2, we have

    211|Aut(C)|=14608+12880=0.000564=φn,k1277!=364128×5040=0.000564,

    which shows that there are exactly two self-dual codes, up to monomial equivalence.

    Next, we use our build-up construction methods mentioned in Sections 3.1–3.3 to obtain SO, RSD, LSD, and SD codes over E3. It is possible to discover several self-dual codes of suitable lengths in a fairly effective manner, as demonstrated by our computation. The partial classification results are summarized in Table 22 below.

    Table 22.  Classification of SO, RSD, LSD, and SD codes using the building method in Section 3.
    n Code Construction Length of constructed code x d(C) Weight distribution
    1 (f) Theorem 5 4 (1) 1 [1,2,0,8,16]
    Theorem 7 5 (0) 1 [1,10,40,80,80,32]
    2 (f00f) Theorem 5 5 (10) 1 [1,4,4,8,32,32]
    5 (11) 2 [1,0,8,20,12,40]
    Theorem 7 6 (00) 1 [1,6,12,16,48,96,64]
    3 (f000f000f) Theorem 5 6 (001) 1 [1,12,60,160,240,192,64]
    Theorem 7 7 (000) 1 [1,14,84,280,560,672,448,128]
    (aaa0fg) Theorem 5 6 (020) 2 [1,0,2,20,30,28,162]
    (002) 3 [1,0,0,16,0,0,64]
    (111) 2 [1,0,14,20,48,160,0]
    (221) 2 [1,0,10,0,24,68,140]
    (110) 2 [1,0,6,28,0,48,160]
    (210) 2 [1,0,2,32,48,64,96]
    Theorem 6 7 (110)(120) 2 [1,0,6,52,48,192,928,960]
    Theorem 7 6 (000) 1 [1,6,18,64,192,288,160]
    Theorem 8 6 (100) 2 [1,0,12,40,36,240,400]
    (110) 1 [1,6,12,64,30,150,466]
    4 (f0000f0000f0000f) Theorem 5 7 (0100) 2 [1,8,24,40,80,192,256,128]
    (1111) 1 [1,2,12,40,50,60,220,344]
    (1100) 1 [1,4,12,52,124,168,208,160]
    Theorem 7 7 (0000) 1 [1,14,84,280,560,672,448,128]
    (a0aa0f0000fg) Theorem 5 7 (1000) 1 [1,2,6,40,56,48,256,320]
    (2211) 2 [1,0,2,16,34,76,232,368]
    (1212) 2 [1,0,2,24,38,52,236,376]
    (1010) 1 [1,2,6,40,56,48,256,320]
    Theorem 6 8 (1100),(1200) 1 [1,2,6,64,152,288,1312,2816,1920]
    (1010),(0102) 2 [1,0,10,40,192,412,1084,2850,1972]
    (2001),(0110) 2 [1,0,2,40,78,164,1012,2784,2480]
    4 (a0aa0f0000fg) Theorem 3.7 7 (1000) 1 [1,2,12,64,116,312,880,800]
    (1221) 2 [1,0,12,40,90,240,724,1080]
    (1010) 1 [1,2,6,40,56,48,256,320]
    (1100) 2 [1,0,2,24,38,52,236,376]
    (a0aa0aae) Theorem 5 7 (1100) 3 [1,0,0,40,48,0,256,384]
    (1212) 3 [1,0,0,16,24,72,280,336]
    Theorem 3.7 7 (0001) 1 [1,6,12,40,240,672,832,384]
    (1111) 2 [1,0,6,52,48,192,928,960]
    Theorem 3.5 8 (1100),(0011) 3 [1,0,0,34,96,0,1024,3072,2304]
    5 (f00000f00000f00000f00000f) Theorem 3.4 8 (10000) 1 [1,10,40,88,160,352,640,640,256]
    (11110) 1 [1,4,16,64,130,160,340,784,688]
    Theorem 3.6 8 (00000) 1 [1,16,112,448,1120,1792,1792,1024,256]
    (a00aa0f00000f00000fg) Theorem 3.4 8 (11110) 2 [1,0,6,16,60,36,388,696,984]
    (10000) 1 [1,4,10,52,136,160,352,832,640]
    (22000) 1 [1,2,2,28,86,128,340,848,752]
    (00011) 1 [1,4,10,52,136,160,352,832,640]
    Theorem 3.5 9 (01100),(01200) 1 [1,4,10,76,280,592,1888,5440,7552,3840]
    (01100),(00011) 2 [1,0,18,60,108,720,1416,2160,7200,8000]
    5 (a00aa0f00000f00000fg) Theorem 3.5 9 (11112),(10001) 1 [1,2,2,44,158,320,1340,4808,8048,4960]
    Theorem 3.7 8 (11110) 2 [1,0,8,64,120,176,880,2688,2624]
    (10000) 1 [1,4,16,88,244,544,1504,2560,1600]
    (00011) 1 [1,4,10,44,116,176,396,816,624]
    (11111) 2 [1,0,14,40,60,320,472,480,800]
    (00021) 1 [1,4,6,40,148,384,544,640,384]
    6 (f000000f000000f000000f000000f000000f) Theorem 3.4 9 (100000) 1 [1,12,60,168,336,672,1344,1920,1536,512]
    (111100) 1 [1,6,24,96,258,420,660,1464,2256,1376]
    (110000) 1 [1,8,32,116,380,872,1376,1664,1472,640]
    Theorem 3.6 9 (000000) 1 [1,18,144,672,2016,4032,5376,4608,2304,512]
    (aa000a0f000g00f000000f000000f0) Theorem 3.4 9 (111100) 1 [1,2,6,28,92,156,460,1472,2376,1968]
    (100000) 1 [1,6,14,32,120,368,908,1800,2192,1120]
    (001111) 2 [1,0,10,30,90,136,276,1296,1888,2834]
    (000022) 1 [1,4,6,30,136,324,654,1462,2352,1592]
    6 (aa000a0f000g00f000000f000000f0) Theorem 3.4 9 (111011) 1 [1,2,14,68,140,440,1112,1424,1760,1600]
    (110000) 1 [1,6,18,72,240,432,672,1536,2304,1280]
    Theorem 3.5 10 (110000),(120000) 1 [1,6,18,96,432,1152,3072,9216,18432,18944,7680]
    (110000),(001100) 1 [1,2,18,96,228,936,2856,4992,11520,22400,16000]
    (111110),(211110) 2 [1,0,12,36,138,516,1464,4584,10650,20936,20712]
    (110000),(211110) 2 [1,0,18,60,162,720,2064,4320,9144,20960,21600]
    Theorem 3.6 9 (000000) 1 [1,12,66,252,840,2352,4704,5952,4224,1280]
    Theorem 3.7 9 (111100) 1 [1,2,8,80,248,416,1232,4448,8000,5248]
    (100000) 1 [1,6,20,88,336,992,2752,5760,6656,3072]
    (111011) 1 [1,2,14,68,140,440,1112,1424,1760,1600]
    (110000) 1 [1,6,18,72,240,432,672,1536,2304,1280]
    (111101) 1 [1,2,12,70,134,402 1192,1484,1584,1680]
    (aaaaaa0f000g00f00g000f0g0000fg) Theorem 3.4 9 (001212) 1 [1,2,6,28,92,156,460,1472,2376,1968]
    6 (aaaaaa0f000g00f00g000f0g0000fg) Theorem 3.4 9 (100000) 2 [1,0,20,38,60,320,410,1218,938,3556]
    (111100) 2 [1,0,18,36,90,360,600,504,1512,3440]
    (210000) 2 [1,0,14,40,114,320,904,1560,1448,2160]
    Theorem 3.5 10 (111110),(121110) 2 [1,0,18,60,162,720,2064,4320,9144,20960,21600]
    (110000),(001100) 1 [1,2,18,96,228,936,2856,4992,11520,22400,16000]
    (210111),(000021) 1 [1,4,6,48,246,636,1980,7488,17664,21056,9920]
    (110000),(120000) 2 [1,0,30,72,138,1020,3228,4800,6240,19136,24384]
    (110000),(000011) 2 [1,0,12,54,156,678,2184,4440,8868,21008,21648]
    Theorem 3.6 9 (000000) 1 [1,6,42,228,690,1320,2268,4488,6576,4064]
    Theorem 3.7 9 (100000) 2 [1,0,26,70,240,980,1330,2622,4718,9696]
    (111100) 2 [1,0,36,60,270,900,1848,2160,4248,10160]
    (002121) 1 [1,2,8,80,248,416,1232,4448,8000,5248]
    (002121) 2 [1,0,14,40,114,320,904,1560,1448,2160]

     | Show Table
    DownLoad: CSV

    In this study, we have derived and used propagation rules over a certain non-unital ring of order 9 to generate self-orthogonal, one-sided self-dual and self-dual codes. Combining this generating technique with mass formulas we have classified these three classes of codes in length at most 7 up to monomial equivalence. It is an open problem to know if, alike what happens in [4], all codes in the three families can be generated by this technique up to some mild type condition.

    In order to expand the classification results to longer lengths, more processing power or more efficient automorphism algorithms may be required due to the combinatorial explosion of codes in the three families.

    The authors declare they have not used Artificial Intelligence (AI) tools in the creation of this article.

    This research work was funded by Institutional Fund Projects under grant No. (IFPRC-105-130-2020). Therefore, authors gratefully acknowledge technical and financial support from the Ministry of Education and King Abdulaziz University, Jeddah, Saudi Arabia.

    All authors declare no conflicts of interest in this paper.



    [1] A. Alahmadi, A. Altassan, H. Shoaib, A. Alkathiry, A. Bonnecaze, P. Solˊe, The build-up construction of quasi self-dual codes over a non-unital ring, J. Algebra Appl., 21 (2022), 2250143. https://doi.org/10.1142/S0219498822501432 doi: 10.1142/S0219498822501432
    [2] A. Alahmadi, A. Melaibari, P. Solˊe, Duality of codes over non-unital rings of order four, IEEE Access, 11 (2023), 53120–53133. https://doi.org/10.1109/ACCESS.2023.3261131 doi: 10.1109/ACCESS.2023.3261131
    [3] A. Alahmadi, A. Altassan, W. Basaffar, H. Shoaib, A. Bonnecaze P. Solˊe, Type IV codes over a non-unital ring, J. Algebra Appl., 21 (2022), 2250142. https://doi.org/10.1142/S0219498822501420 doi: 10.1142/S0219498822501420
    [4] A. Alahmadi, A. Alshuhail, R. A. Betty, L. Galvez, P. Solˊe, Mass formula for self-orthogonal and self-dual codes over non-unital rings of order four, Mathematics, 11 (2023), 4736. https://doi.org/10.3390/math11234736 doi: 10.3390/math11234736
    [5] A. Alahmadi, T. Alihia, R. A. Betty, L. Galvez, P. Solˊe, The build-up construction for codes over a commutative non-unitary ring of order 9, Mathematics, 12 (2024), 860. https://doi.org/10.3390/math12060860 doi: 10.3390/math12060860
    [6] C. Aguilar-Melchor, P. Gaborit, J. Kim, L. Sok, P. Solˊe, Classification of extremal and s-extremal binary self-dual codes of length 38, IEEE Trans. Inform. Theory, 58 (2012), 2253–2262. https://doi.org/10.1109/TIT.2011.2177809 doi: 10.1109/TIT.2011.2177809
    [7] J. M. P. Balmaceda, R. A. L. Betty, F. R. Nemenzo, Mass formula for self-dual codes over Zp2, Discrete Math., 308 (2008), 2984–3002. https://doi.org/10.1016/j.disc.2007.08.024 doi: 10.1016/j.disc.2007.08.024
    [8] W. Bosma, J. Cannon, C. Playoust, The Magma algebra system. Ⅰ. The user language, J. Symb. Comput., 24 (1997), 235–265. https://doi.org/10.1006/jsco.1996.0125 doi: 10.1006/jsco.1996.0125
    [9] B. Fine, Classification of finite rings of order p2, Math. Magazine, 66 (1993), 248–252. https://doi.org/10.1080/0025570X.1993.11996133 doi: 10.1080/0025570X.1993.11996133
    [10] S. Han, H. Lee, Y. Lee, Construction of self-dual codes over F2+uF2, Bull. Korean Math. Soc., 49 (2012), 135–143.
    [11] M. Harada, M. Kitazume, M. Ozeki, Ternary code construction of unimodular lattices and self-dual codes over Z6, J. Algebraic Comb., 16 (2002), 209–223. https://doi.org/10.1023/A:1021185314365 doi: 10.1023/A:1021185314365
    [12] W. C. Hufman, V. Pless, Fundamentals of error-correcting codes, Cambridge: Cambridge University Press, 2003. https://doi.org/10.1017/CBO9780511807077
    [13] J. L. Kim, Y. Lee, Euclidean and Hermitian self-dual MDS codes over large finite fields, J. Comb. Theory, Ser. A, 105 (2004), 79–95. https://doi.org/10.1016/j.jcta.2003.10.003 doi: 10.1016/j.jcta.2003.10.003
    [14] J. L. Kim, Y. Lee, An efficient construction of self-dual codes, Bull. Korean Math Soc., 52 (2015), 915–923.
    [15] K. H. Kim, Y. H. Park, The mass formula of self-orthogonal codes over GF(q), Korean J. Math., 25 (2017), 201–209. https://doi.org/10.11568/kjm.2017.25.2.201 doi: 10.11568/kjm.2017.25.2.201
    [16] C. Mallows, V. Pless, N. J. Sloane, Self-dual codes over GF(3), SIAM J. Appl. Math., 31 (1976), 649–666.
    [17] F. J. MacWilliams, N. J. A. Sloane, The theory of error-correcting codes, North-Holland Mathematical Library, Elsevier, 1977.
  • Reader Comments
  • © 2024 the Author(s), licensee AIMS Press. This is an open access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/4.0)
通讯作者: 陈斌, bchen63@163.com
  • 1. 

    沈阳化工大学材料科学与工程学院 沈阳 110142

  1. 本站搜索
  2. 百度学术搜索
  3. 万方数据库搜索
  4. CNKI搜索

Metrics

Article views(948) PDF downloads(50) Cited by(0)

Other Articles By Authors

/

DownLoad:  Full-Size Img  PowerPoint
Return
Return

Catalog