Type IV codes over a non-local non-unital ring

There is a local ring H of order 4, without identity for the multiplication, defined by generators and relations as H = 〈a, b | 2a = 2b = 0, a = 0, b = b, ab = ba = 0〉. We classify self orthogonal codes of length n and size 2n (called here quasi self-dual codes or QSD) up to the length n = 6. In particular, we classify quasi Type IV codes ( a subclass of Type IV codes, viz QSD codes with even weights) up to n = 6.


Introduction
In a series of innovative papers [1,2,3,4], self-orthogonal codes over nonunital rings of order 4 have been explored. The non-unitality makes it difficult to deal with the usual concept of self-dual code. In consequence, we study quasi-self-dual codes (QSD codes), that is self-orthogonal codes of length n with 2 n codewords. The notion of Type IV codes that is self-dual codes that are even is extended to this setting. This notion is inspired by the classification of divisible self-dual codes over finite fields due to Gleason, Pierce and Turyn [18,Chap.19,Th. 1], into Type I codes (binary singly even) ,Type II codes (binary, doubly even), Type III codes (ternary, weights multiple of three), and Type IV codes (quaternary, singly even). This classification has been generalized previously to the three nonfield rings of order 4 in [8]. Due to some technical difficulties, this concept was relaxed in [1,2,3,4] to the notion of quasi Type IV codes (QT4), that is to say QSD codes with an even torsion code. In this paper, however, the semi-local character of H allows for a simple characterization of Type IV codes (Theorem 5). While this result reduces the classification of Type IV codes to that of self-orthogonal binary codes, the classification of QT4 codes remains as challenging as that of QSD codes.
In the present paper, we consider the alphabet H in the terminology of [9]. It is a semi-local commutative ring, with two maximal ideals of size two. Like in previous papers, the build-up construction, which has been successfully used by Kim and co-workers [15,16] is generalized to the alphabet H, as it had been for the rings E and I [1,2]. A classification scheme which did not appear for local rings of order 4 consists in using a kind of nonmultiplicative CRT to associate two binary codes to a QSD code. One of these will be self-orthogonal, allowing us to use the census of self-orthogonal binary codes by dimension in [13]. The other one will be arbitrary linear allowing us to use the enumeration results of [6,10]. In order to make a classification up to coordinate permutation, an important technical tool is the double coset of the automorphism groups of the said binary codes into the symmetric group, following the method of [20]. Like in the previous papers of the non-unital series, the underlying quaternary additive code, obtained by forgetting the multiplicative structure of the alphabet ring, allows us to use the additive codes package of Magma [17]. A unital analogue of H is the ring F 2 + vF 2 ∼ F 2 × F 2 , studied in [5] in connection with 7-modular lattices. The CRT over the latter ring allows us to attach an F 2 + vF 2 -code to an H-code. In the case when that code is Type IV, it turns out that the corresponding F 2 + vF 2 -code is Hermitian self-dual in the sense of [5,8].
The material is arranged in the following way. The next section collects the necessary notations and definitions. Section 3 develops the build-up method. Section 4 is dedicated to the classification method. Section 5 contains the classified codes in length at most 6.
2 Background Material

Binary codes
Denote by wt(x) the Hamming weight of x ∈ F n 2 . The dual of a binary linear code C is denoted by C ⊥ and defined as A code is even if all its codewords have even weight. All binary self-orthogonal codes are even, but not all even binary codes are self-orthogonal. Two binary codes are equivalent if there is a permutation of coordinates that maps one to the other.

Rings
Following [9] we define a ring on two generators a, b by its relations Thus, H has characteristic two, and consists of four elements H = {0, a, b, c}, with c = a + b. The addition table is immediate from these definitions The multiplication table is as follows.
From this table, we infer that this ring is commutative, and without an identity element for the multiplication. It has two absorbing elements 0 and a. It is semi-local with two maximal ideals J a = {0, a}, and J b = {0, b}. The following decomposition can be checked directly.
Denote by α a : H → F 2 the map of reduction modulo J a , and denote by α b : H → F 2 the map of reduction modulo J b . Thus α a (a) = α b (b) = 0 and α a (b) = α b (a) = 1. Note that these maps respect addition but not multiplication. These maps are extended in the natural way in a map from H n to F n 2 . This alphabet decomposition induces a code decomposition as follows. The code C over H can be written as a direct sum (in the sense of modules) where C a = α b (C) and C b = α a (C).
On occasion we will use the inner product notation (x, r) for x ∈ F n 2 , r ∈ H n to denote

Modules
A linear H-code C of length n is an H-submodule of H n . It can be described as the H-span of the rows of a generator matrix. With that code we associate two binary codes of length n : An additive code of length n over F 4 is an additive subgroup of F n 4 . It is an F 2 vector space with 4 k elements for some k ≤ n (here 2k is an integer, 4 but k may be half-integral). Using a generator matrix G, such a code can be cast as the F 2 -span of its rows. To every linear H-code C is attached an additive F 4 -code φ(C) by the alphabet substitution , extended naturally to F n 4 . Following [17], we use the Magma notation for the weight distribution of a quaternary code, where A i is the number of codewords of weight i. Two H-codes are permutation equivalent if there is a permutation of coordinates that maps one to the other.

Duality
Define an inner product on H n as ( Thus the dual of a module is a module. A code is self-dual if it is equal to its dual.

Remark 1
The repetition code of length 2 is defined by R 2 := {00, aa, bb, cc}. Its dual is R ⊥ 2 = {00, aa, bb, cc, cb, bc, a0, 0a}, a supercode of R 2 of size 8. In length one, we have A code of length n is quasi self-dual if it is self-orthogonal and of size 2 n . Following a terminology from [8], a quasi self-dual code over H with all weights even is called a Type IV code.

Remark 2
The repetition code of length 2 is quasi self-dual over H and is of Type IV. This shows, by taking direct sums of codes, that Type IV codes over H exist for all even lengths. We see that J a is a quasi self-dual code over H. This shows, again by taking direct sums, that QSD codes exist for all integer lengths.
Following [1,2,3,4] we introduce the following larger class. A QSD Hcode is called quasi Type IV (QT4) if C a is an even code. Every Type IV code is QT4, but not conversely.

Codes over F 2 + vF 2
The ring F 2 + vF 2 with v 2 = v is a semi-local ring with two maximal ideals (v) and (v + 1). The CRT shows that it is ∼ F 2 + F 2 . Self-dual codes over that ring were studied in [8]. There is a ring endomorphism over F 2 + vF 2 , an involution that swaps v and v + 1 and fixes 0 and 1. Denoting that involution by , we can define a Hermitian inner product as We will also require the complete weight enumerator in four variables cwe C of a quaternary code C over F 2 + vF 2 defined by where n i (c) denotes for i ∈ F 2 + vF 2 the number of coordinates j for which c j = i. Thus, if n is the length of C, we have for all c ∈ C the relation In view of the connection with lattices it makes sense to introduce the Hermitian weight enumerator in one variable hwe C of an F 2 + vF 2 -code C defined as where the Bachoc weight of x ∈ H is defined as w B (x) = 0, 1, 2, 2 if x = 0, 1, v, 1 + v, respectively. This notation is extended to vectors in the obvious way. The following connection with the complete weight enumerator is immediate from the definitions.
The first exponent i > 0 for which the coefficient of y i is nonzero is called the Bachoc distance of the code and is denoted by d B .
For the next theorem, we require some familiarities with lattices in the sense of the geometry of numbers [7]. The following result is the so-called Construction A of lattices from codes over F 2 + vF 2 . See [5, Prop. 3.6.] for a proof.
Theorem 1 If C is an F 2 + vF 2 code of length n and size 2 n , then the lattice A(C) given by , has dimension 2n over Z and norm min(4, d B ). If, furthermore, C is Hermitian self-dual then A(C) is 7−modular.
If C = aC a + bC b is an H code, we construct a code over F 2 + vF 2 as (1 + v)C a + vC b = CRT (C a , C b ). Denote this latter code by M (C).
Theorem 2 If C is a Type IV code over H, then M (C) is Hermitian selfdual of Type IV in the sense of [8].
Proof. The fact that M (C) is self-dual is immediate by part (2) of Theorem 5 below, combined with Prop. 3.5 of [8]. The Type IV condition is immediate by either the definitions of Type IV, or Cor. 3.6 of [8] and the fact that both C a and C b are even codes by the proof of Theorem 5.

Build-up construction
In this section we discuss two kinds of construction methods for quasi self-dual codes over H. The following theorem is the first one, constructing quasi self-dual codes of length increased by two, with one more generator.
Theorem 3 Let C 0 denote a quasi self-dual code of length n and over H, with generating set r 1 , . . . , r k . Let x be a fixed vector in F n 2 satisfying (x, x) = 1.
(Thus any x of odd Hamming weight works). Write The H-span of the following k +1 vectors is a quasi self-dual code C of length n + 2.
Proof. First, we check that C is self-orthogonal.
• The first vector is orthogonal to itself by definition of x, since c 2 + • The last k vectors are orthogonal to each other and to themselves by self-orthogonality of C 0 , since y i y j + y i y j + (r i , r j ) = 0.
• The first vector is orthogonal to each of the last k vectors by definition of the y i 's since for i = 1, . . . , k we have cy i + (cx, r i ) = cy i + c(x, r i ) = cy i + cy i = 0.
Hence C is self-orthogonal. We claim that |C| = 4|C 0 | = 2 n+2 . Indeed define C 0 as the generator span of the last k generators. Write S y = (y, 0, yx), for all y ∈ H. Then it can be seen that the construction in the theorem is equivalent to C =∪ y∈H (S y + C 0 ), where∪ denotes disjoint union. Thus C is quasi self-dual of length n + 2.
The next result shows that this construction preserves the quasi Type IV property.
Corollary 1 If C 0 is a quasi Type IV code, then C obtained from the previous theorem is also quasi Type IV. Proof. From Theorem 3, it can be seen that the vector (1, 0, x) has even weight since (x, x) = 1. In addition, since C 0 is quasi type IV, the vector r i = r i ( mod b) has even weight. Thus with y i = (r i , x) has an even weight . Therefore, C is quasi Type IV.
The second kind of construction also constructs QSD codes of length increased by two, but with two more generators.
Theorem 4 Let C 0 be a quasi self-dual code of length n over H and G 0 = (r i ) be a k × n generator matrix for C 0 , where r i is the i-th generator of G 0 , 1 ≤ i ≤ k. Let x be a fixed vector in F n 2 . For 1 ≤ i ≤ k, let y i = ((x, r i ), (x, r i )) be a vector of length 2. Then the following generators (a, 0, ax), (0, a, ax), (y 1 , r 1 ), . . . , (y k , r k ).
generate a quasi self-dual code C over H of length n + 2.
Proof. Firstly, we show that C is self-orthogonal code.
• The first generator is orthogonal to itself since a 2 + a 2 (x, x) = 0. Similarly the second generator is orthogonal to itself.
• The first generator is orthogonal to the second generator as a 2 (x, x) = 0.
• The first (or, the second) generator is orthogonal to any of the last k generators since a(x, r i ) + (ax, r i ) = 0.
• The last k generators are orthogonal to each other and to themselves by self-orthogonality of C 0 since (y i , y j ) + (r i , r j ) = (x, r i )(x, r j ) + (x, r i )(x, r j ) = 0.
Hence, the set of k generators generates a self-orthogonal code C. We claim that |C| = 4|C 0 | = 2 n+2 . Indeed define C 0 as the row span of the last k generators. Write S y = (y, 0, yx), T y = (0, y, yx) for all y ∈ H. Then it can be seen that the construction in the theorem is equivalent to C =∪ y,z∈Ja (S y + T z + C 0 ). Therefore, C is quasi self-dual code of length n + 2.
Like for the first construction, we have a result on quasi Type IV codes.
Corollary 2 If C 0 is quasi Type IV then C obtained from the previous theorem is also quasi Type IV if (x, x) = 1.
Since C 0 is quasi Type IV, r i has an even weight. Thus, (α b (y i ), α b (r i )) = (y i , r i ) has even weight. Therefore C is quasi Type IV.

Remark 3
The number of codes generated from a given C 0 depends on the number of choices for x. Thus Theorem 1 generates 2 n−1 codes, and Theorem 2 generates 2 n codes.

Classification
The following characterization result is easy but essential to understand the classification technique.

Proof.
The code C is self-orthogonal iff C b is a self-orthogonal binary code because of the following identity (ax + by, ax + by ) = b(y, y ), where x, x , y, y are arbitrary binary vectors of the same length. Since |C| = |C a ||C b |, we see that |C| = 2 n iff C a and C b have complementary dimensions.
We can now give a characterization of Type IV codes over H. Proof.
• Assume C to be Type IV. The first point is immediate by Lemma 1 as C is, in particular, QSD. We prove the second point as follows. Since aC a ⊆ C, we know that C a is an even code. Note that C b is also even as being self-orthogonal, by Lemma 1. Consider an arbitrary codeword xa + yb, of C, with x, y binary vectors of respective supports X, Y. Thus x, y belong to C a and C b , respectively. Set theory shows that the Hamming weight of ax + by is By the Type IV property the LHS is even, yielding that |X ∩Y | is even. Hence C a ⊆ C ⊥ b , and by (2) of Lemma 1, and dimension count we see that C a = C ⊥ b .
• In the other direction, assume the two points hold. By the same calculations as above, C a = C ⊥ b entails that C has even weights. The fact that C is QSD is immediate by Lemma 1.
The proof of the next lemma is analogous to that of Lemma 1, and is not written.
Lemma 2 Every QT4 code of length n over H is of the form aC a ⊕ bC b where 1. C b is a self-orthogonal [n, k] binary code, 2. C a is an even binary [n, n − k] code.
To classify QSD codes, or QT4 codes, we thus have to find all codes that are permutation equivalent to aC a + bC b for a given pair (C a , C b ). This is a similar situation to the classification of self-dual codes over Z pq in [20], and we follow the method there. Here SDR stands for System of Distinct Representatives, that is to say elements that are representative of subsets (here the double cosets) in a set (here the group S n ) partition. The following result is an immediate generalization of [20,Th. 3.5] from Z pq to H. Its proof is omitted. Theorem 6 Let (C a , C b ) be a pair of codes as defined in Lemma 1, with respective permutation groups A and B. Then, the set S Ca,C b := {aC a + bσ(C b ) | σ runs over a SDR of A\S n /B} forms a set of non-equivalent codes. In particular |S Ca,C b | = |A\S n /B|.
The immediate application is the next result.
Corollary 3 Let L a be the set of all non-equivalent [n, k] binary codes. Let L b be the set of all non-equivalent [n, n − k] self orthogonal binary codes. Then, the set of all QSD codes over H is, up to permutation, the disjoint union

Proof.
By application of the maps α a and α b , the following observation is immediate. If the pairs C a , C b and C a , C b are distinct, then none of the codes in S Ca,C b are equivalent to any of the codes in S C a ,C b .
To apply this theorem effectively to classify QSD codes (resp. QT4 codes) we thus need to know two lists of codes, for given length and dimension.
1. SDR of equivalence classes of self-orthogonal [n, k] binary codes.
The first list can be established by [13]. The second list can be established by using the method in [6,10].
The classification algorithm for QSD (resp. QT4) codes can be described as follows. Given a length n ≥ 1, and an integer k ≤ n 2 , do the following steps.
1. Write a list L a of binary (resp. even ) [n, n − k] codes. The classification of Type IV codes reduces by Theorem 5 to that of selforthogonal binary codes, or more concretely to taking the union of all lists L b above for k ≤ n.

Numerical Results
All the computations needed for this section were performed in Magma [17]. An H-code C is said to be extremal if M (C) meets the bound of [5, Th. 5.1 (i)], viz: d B (C) = 2(1+ n 3 ). This means that the 7-modular lattice obtained by Construction A from M (C) is extremal in the sense of [19].

Length 1 (One code)
There is just one code of length 1. It is generated by (a).

Length 2 (Two codes)
There is one QSD code with generator matrix b b 0 a and weight distribution [< 0, 1 >, < 1, 1 >, < 2, 2 >]. The other one is the repetition code. It is a type IV code with generator matrix b b a a and weight distribution [< 0, 1 >, < 2, 3 >]. Both codes have a Bachoc weight 2.

Length 3 (Five codes)
There are four codes with minimum distance 1. Their generator matrices are The fifth code has minimum distance 2, and it is QT4. Its generator matrix is  and its weight distribution is [< 0, 1 >, < 2, 5 >, < 3, 2 >]. All codes have Bachoc weight 2 and the Hermitian weight enumerator of the (extremal) quasi Type IV code is 2y 5 + 4y 4 + y 2 + 1.

Length 4 (17 codes)
The main properties are summarized in the following table.

Length 5 (58 codes)
The main properties are summarized in the following table.

Conclusion and Open Problems
In this paper, we have classified certain self-orthogonal codes over the nonunital ring H of order 4 up to length 6. In comparison the self-dual codes over unital rings of size 4 have been classified up to length 12 or more [8]. The reason is that, in the non-unital case, there are more codes, and thus, the combinatorial explosion happens in shorter lengths. Going beyond length 6 would require more computing resources and/or better algorithms. The application to 7-modular lattices is worth pursuing. To go beyond the dimensions explored in [19], one would need algebraic constructions of self-orthogonal H-codes.