Constructing self-dual codes over $$ \mathbb{F }_q[u ...

11 downloads 17195 Views 485KB Size Report
your own website. ... Keywords Linear codes over rings · Self-dual codes · Build-up construction ... But many of the methods to obtain good codes over a field,.
Constructing self-dual codes over $$ \mathbb{F }_q[u]/(u^t)$$ Fq[u]/(ut)

R. Alfaro & K. Dhul-Qarnayn

Designs, Codes and Cryptography An International Journal ISSN 0925-1022 Des. Codes Cryptogr. DOI 10.1007/s10623-013-9873-9

1 23

Your article is protected by copyright and all rights are held exclusively by Springer Science +Business Media New York. This e-offprint is for personal use only and shall not be selfarchived in electronic repositories. If you wish to self-archive your article, please use the accepted manuscript version for posting on your own website. You may further deposit the accepted manuscript version in any repository, provided it is only made publicly available 12 months after official publication or later and provided acknowledgement is given to the original source of publication and a link is inserted to the published article on Springer's website. The link must be accompanied by the following text: "The final publication is available at link.springer.com”.

1 23

Author's personal copy Des. Codes Cryptogr. DOI 10.1007/s10623-013-9873-9

Constructing self-dual codes over Fq [u]/(u t ) R. Alfaro · K. Dhul-Qarnayn

Received: 25 September 2012 / Revised: 16 May 2013 / Accepted: 10 August 2013 © Springer Science+Business Media New York 2013

Abstract Given a self-dual code over Fq [u]/(u t ) we present a method to obtain explicitly new self-dual codes of larger length. Conversely, we also prove that, with the appropriate assumptions on length and number of generators, every self-dual code over Fq [u]/(u t ) can be obtained in this manner. We use this construction to produce several optimal self-dual codes over the base field in a manner that generalizes the Lee weight. This construction is based on ideas presented by Han et al. (Bull Korean Math Soc, 49:135–143, 2012) and also by Lee and Kim (An efficient construction of self dual codes, 2012), not only generalizing it, but joining the two different cases from the original paper as special cases of one general construction. Keywords

Linear codes over rings · Self-dual codes · Build-up construction

Mathematics Subject Classification

94B05 · 94B60 · 11T71

1 Introduction Self-dual codes over fields have been studied extensively and their classification has been material of many research projects, from the theoretical [3,6] to the computational [4,7]. The search for self-dual optimal codes over fields is important for the many applications and connections to other areas of mathematics. We refer here to “good” codes as those who have minimum distance exactly or very close to the highest known minimum distance for

Communicated by G. Korchmaros. R. Alfaro (B)· K.Dhul-Qarnayn Mathematics Department, University of Michigan-Flint, Flint, MI 48502, USA e-mail: [email protected] K.Dhul-Qarnayn e-mail: [email protected]

123

Author's personal copy R. Alfaro, K. Dhul-Qarnayn

a self-dual code over the field. But many of the methods to obtain good codes over a field, like quadratic residue codes, double circulant codes, do not apply easily to codes over other rings. We present here a method to obtain self-dual codes over the ring Fq [u]/(u t ). This method constructs self-dual codes from other self-dual codes of smaller length. The idea of the building-up construction was first introduced by Kim [10] for codes over F2 , and in [4] for codes over F2 + u F2 ; then generalized for codes over chain rings producing self-dual codes of length n + 2 and 2n + 4 from self-dual codes of length n and 2n respectively, through two separate constructions in [7]. We claim here that these two separate constructions are special cases of one general construction that can produce self-dual codes of length n + 2a from self-dual codes of length n for any a ≥ 1, although a needs to be even if the characteristic of the base field is p ≡ 3 (mod 4). It is also important to note that two iterations of this construction produce very different codes than one iteration with double the value of a. Furthermore, we prove that any self-dual code can be built from a self-dual code of smaller length. In their paper [7], the authors provide examples of good codes over certain Galois rings, which is an example of a finite chain ring; we provide here examples over another type of finite chain rings, Fq [u]/(u t ), and produce more examples of optimal self dual binary, ternary and quintic codes. Furthermore, there are many “distances” that can be defined on these codes by choosing a particular way to “map” these codes into codes over the base field. For example, the Lee weight of a code over F2 + u F2 is the Hamming distance of the binary image code under the Gray map. Different Gray type maps can be defined, in similar fashion obtaining different notions of distance for codes over Fq [u]/(u t ). For an introduction to these distances, we refer the reader to [1]. Thus, we need to indicate in which distance are these codes good or optimal, meaning that their corresponding code over the base field is good or optimal. 2 Constructing self-dual codes over Fq [u]/(u t ) We will use R(q, t) to denote the commutative ring Fq [u]/(u t ). We can always obtain a generator matrix for a code (or equivalent code) over R(q, t) in standard form: ⎛ ⎞ Ik1 D1,2 D1,3 D1,4 · · · D1,t D1,t+1 ⎜ 0 u Ik2 u D2,3 u D2,4 · · · u D2,t u D2,t+1 ⎟ ⎜ ⎟ 2 2 2 2 ⎟ G=⎜ ⎜ 0 0 u Ik3 u D3,4 · · · u D3,t u D3,t+1 ⎟ ⎝· · · · · · · · · ⎠ ··· ··· ··· ··· t−1 t−1 0 0 0 0 · · · u Ikt u Dt,t+1 where Di, j is a matrix of polynomials in R(q, t) of degrees at most j − i − 1 [11]. The values k1 , k2 , . . . , kt are independent of the generator matrix and we’ll refer to them as the associated marginal torsion ranks of the code. For a code C over R(q, t)  define k(C) t to be the number of rows in a generator matrix for C in standard form. k(C) = i=1 ki (C) and is the same for every generator matrix of C. For a proof of this, see [11]. Proposition 1 Let C0 be a self dual code over R(q, t) of length n with k(C0 ) = k and let G 0 be a k × n generator matrix for C0 . Let a ≥ 1 be an integer and let X be an a × n matrix over R(q, t) such that X X T = −I , let U be an a × a matrix over R(q, t) such that UU T = −I , and 0 be an a × a zero matrix. Then the following matrix

I 0 X G= −G 0 X T G 0 X T U G 0

123

Author's personal copy Constructing self-dual codes

generates a self dual code C of length n + 2a over R(q, t) with k(C) = k + a. Proof GG T = =

I 0 X −G 0 X T G 0 X T U G 0



⎞ I −X G 0T ⎝ 0 U T X GT ⎠ 0 XT G 0T ⎛

I + X XT −X G 0T + X G 0T T T T T −G 0 X + G 0 X G 0 X X G 0 + G 0 X T UU T X G 0T + G 0 G 0T

=0

Thus C ⊆ C ⊥ . On the other hand, k1 (C) = k1 (C0 ) + a and kh (C) = kh (C0 ) for h = 2, . . . , t. According to the relations of the ki as in [2], we have k1 (C ⊥ ) = n +2a −(k1 (C)+k2 (C)+· · ·+kt (C)) and k1 (C0⊥ ) = n −(k1 (C0 )+k2 (C0 )+ · · · + kt (C0 )). So, ⊥

k1 (C ) =

k1 (C0⊥ ) +

= k1 (C0 ) +

t



ki (C0 ) + 2a −

i=1 t

t



ki (C)

i=1

ki (C0 ) + 2a − k1 (C0 ) + a +

i=1

t

ki (C0 )

i=2

= k1 (C0 ) + a = k1 (C). Let h ∈ {2, . . . , t}. Then, kh (C ⊥ ) = kt−h+2 (C) but kh (C) = kh (C0 ) so kh (C ⊥ ) = kt−h+2 (C0 ) Then since C0 is self dual, we have kh (C0 ) = kh (C0⊥ ) = kt−h+2 (C0 ). Thus kh (C ⊥ ) = kh (C0 ) = kh (C). So we have, ⊥ ⊥ ⊥ |C ⊥ | = q (tk1 (C )+(t−1)k2 (C )+···+kt (C )) = q (tk1 (C)+(t−1)k2 (C)+···+kt (C)) = |C|. Therefore C is self dual.

 

Example 1 The matrix ⎞ 1 1 1 1 G 0 = ⎝0 u 2 0 u 2 ⎠ 0 0 u2 u2 ⎛

generates a self dual code C0 of length 4, with k(C) = 3, and minimum hamming distance 2 over R(2, 4).

1 + u + u2 + u3 u + u2 + u3 Let U = and u + u2 + u3 1 + u + u2 + u3

u2 + u3 1 + u + u2 + u3 1 + u2 + u3 1 + u + u2 + u3 . X= 1 + u + u2 + u3 1 + u + u2 + u3 u + u2 + u3 1 + u + u2 + u3

123

Author's personal copy R. Alfaro, K. Dhul-Qarnayn

The code C constructed as above is a self dual code of length 8, with k(C) = 5, and minimum hamming distance 2 over R(2, 4) and is generated by ⎛ ⎞ 2 3 2 3 2 3 2 3 1 0 1 u2 u2 + u3

⎜ G=⎜ ⎝

0 0 1 0 1 1 0 u2 + u3 u2 u2 + u3

0 1+u+u +u 1+u +u 1+u+u +u u +u 0 1 + u + u2 + u3 1 + u + u2 + u3 u + u2 + u3 1 + u + u2 + u3⎟ ⎟ 1 1 1 1 1 ⎠ u3 0 u2 0 u2 2 2 2 u 0 0 u u

Example 2 The matrix

G0 =

1 0 3 4u 0 1 4u 2



generates a self dual code C0 of length 4, with k(C0 ) = 2, and minimum hamming distance 2 over R(5, 2).   Let U = (1) and X = 0 1 2 + 2u 3 . The code C constructed as above is a self dual code of length 6, with k(C) = 3, and minimum hamming distance 4 over R(5, 2) and is generated by ⎞ ⎛ 1 0 0 1 2 + 2u 3 3 4u ⎠ G = ⎝4 + 2u 2 + u 1 0 3 + 2u 4 + u 0 1 4u 2 Proposition 2 Let q = p m for p prime, p = 2 or q ≡ 1 (mod 4). Then for a ≤ n, the matrices X and U over R(q, t) such that X X T = −I and UU T = −I always exist. Proof Let p = 2. For a = 1, let U = 1. Then UU T = 1 = −1. For even values of a, the matrix ⎞ ⎛ 1 us Ua = ⎝ . . . ⎠ 1 us where s = t/2 , satisfies Ue UeT = −I . Then for an odd value of a > 1, we take Ua for a − 1 and add a row and column as follows to obtain ⎞ ⎛ 1 0···0 ⎟ ⎜0 ⎟ ⎜ Ua = ⎜ . ⎟ ⎝ .. a−1 ⎠ 0

U

and Ua UaT = −I . Let p ≡ 1 (mod 4). Then there exists c ∈ F p ⊆ R(q, t) such that c2 = −1. For a = 1, U = c, and UU T = c2 = −1. For a = 2 the matrix

c −u s U2 = us c satisfies U2 U2T = −I Then for a > 2 even, the matrix ⎞ ⎛ 0 U2 ... ⎠ Ua = ⎝ 0 U2

123

Author's personal copy Constructing self-dual codes

satisfies Ua UaT = −I , and for a > 1 odd, we add a row and column to Ua−1 to obtain ⎞ ⎛ c 0···0 ⎟ ⎜0 ⎟ ⎜ Ua = ⎜ . ⎟ ⎝ .. a−1 ⎠ 0

U

and Ua UaT = −I .  Then X = 0 Ua , where 0 is an a × (n − a) zero matrix, satisfies X X T = −I .

 

Proposition 3 Let q = p m where p is prime and q ≡ 3 (mod 4). Then there exists an a × a matrix U over R(q, t) such that UU T = −I if and only if a is even. If U exists, then there exists an a × n matrix, X , over R(q, t) such that X X T = −I . Proof Since Fq is of odd characteristic, there exist α, β ∈ Fq ⊆ R(q, t) such that α 2 + β 2 = −1. Then for a = 2 the following matrix

α −β U2 = β α satisfies U2 U2T = −I . For a > 2 even, we have

⎞ ⎛ 0 U2 ... ⎠ Ua = ⎝ 0 U2

Ua UaT = −I . Thus for a even, there exists an a × a matrix U over R(q, t) such that UU T = −I . Conversely, suppose to the contrary that there exists such a U for a odd. Then det

(UU t ) = det (−I ) (det U )2 = (−1)a (det U )2 = −1

Thus we have an element of R(q, t) whose square is −1, and so there is an element of Fq whose square is −1 and  we have reached a contradiction. Then X = 0 Ua , where 0 is an a × (n − a) zero matrix, satisfies X X T = −I .   Proposition 4 Let q = p m and choose an integer a ≤ k1 (C)/2 with a even if q ≡ 3 (mod 4). Any self dual code C of length n over R(q, t) with k(C) = k and k1 (C) ≥ 2 if q ≡ 1 (mod 4) and k1 (C) ≥ 4 if q ≡ 3 (mod 4) is obtained from some self dual code C0 of length n − 2a with k(C0 ) = k − a over R(q, t) (up to permutation equivalence) by the construction method in Proposition 1. Proof Let C be a self dual code with k(C) = k, of length n over R(q, t). We can obtain a generator matrix for C, or an equivalent code, in the form ⎛ ⎞ Ia 0 K G = ⎝ 0 Ia A ⎠ where a ≤ k1 (C)/2 0 0 M

123

Author's personal copy R. Alfaro, K. Dhul-Qarnayn

Let V be an a × a matrix such that V V T = −I . Then ⎛ ⎞⎛ ⎞ ⎛ ⎞ Ia V 0 Ia V K + V A Ia 0 K ⎠ A G := ⎝ 0 Ia 0 ⎠ ⎝ 0 Ia A ⎠ = ⎝ 0 Ia 0 0 Ik−2a 0 0 M 0 0 M Deleting the first two column blocks and the second row block of G gives

K +VA G 0 := M We claim that the code, C0 , generated by G 0 , is self-dual. Since GG T = 0, We have that K K T = −I, A A T = −I, K M T = 0, AK T = 0, K A T = 0, AM T = 0, M K T = 0, M A T = 0, and M M T = 0. Then,

 K +VA  T G0G0 = (K + V A)T M T M

(K + V A)(K + V A)T (K + V A)M T = M(K + V A)T M MT

K K T + K A T V T + V AK T + V A A T V T K M T + V AM T = 0. = M K T + M AT V T M MT Thus C0 ⊆ C0⊥ . We want to show now that the free rank of K + V A is a and also that the row space of K + V A and the row space of M intersect only at 0. Assume there is a linear combination of the rows of K + V A that gives the 0 vector. Then there exists v = 0 in R(q, t)a such that v(K + V A) = 0. Hence 0 = v(K + V A)K T = v K K T + vV AK T = v(−I ) = −v, and then v = 0. Since none of the rows of K + V A is a multiple of u, and none is a linear combination of the others, the free rank of K + V A is a. Furthermore, assume v is in the row space of (K + V A) and also in the row space of M. Then v = α(K + V A) = β M for some α, β ∈ R(q, t)a . Multiplying both sides by K T we obtain: α(K + V A)K T = β M K T α K K T + αV AK T = β M K T α(−I ) = 0 α=0 Hence v = 0 and the row spaces are disjoint except for the 0 word. Thus k1 (C0 ) = a. It can be shown then, as in the proof of Proposition 1, that ki (C0 )⊥ = ki (C0 ) for all i, so |C0⊥ | = |C0 |. Therefore G 0 generates a self-dual code C0 of length n − 2a over R(q, t) with k(C0 ) = k − a. Now let U = −V and X = K . Using the build-up construction method from Proposition 1, we obtain

0 K I G := T T −G 0 K −G 0 K V G 0 Then since,

G0 K T =

123

K +VA M





KT



=

K K T + V AK T MKT



=

−I 0



Author's personal copy Constructing self-dual codes

we have, after performing allowable row operations, ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ I 0 0 I 0 K I 0 I 0 K K G = ⎝ I V K + V A ⎠ ∼ ⎝ 0 V V A ⎠ ∼ ⎝ 0 −V T 0 ⎠ · ⎝ 0 V V A ⎠ 0 0 M 0 0 M 0 0 M 0 0 I ⎛ ⎞ Ia 0 K ∼ ⎝ 0 Ia A ⎠ = G 0 0 M where ∼ denotes row equivalence. Thus G is row equivalent to G so the code C generated by G is equivalent to the given code C, and was obtained from C using the build-up construction method in Proposition 1.   Example 3 The matrix ⎛ ⎞ 1000 0 0 0 0 1 + u 2 1 + 2u 2 ⎜0 1 0 0 0 0 0 0 u2 + 2 1 + u2 ⎟ ⎜ ⎟ ⎜0 0 1 0 2u + u 3 u + u 2 + 2u 3 1 + u + u 2 + u 3 1 + 2u 0 0 ⎟ ⎜ ⎟ G=⎜ 2 u + 2u 2 + 2u 3 2 + u + 2u 3 1 + u 0 0 ⎟ ⎜0 0 0 1 2u ⎟ ⎝0 0 0 0 u 2 0 2u 3 2u 3 0 0 ⎠ 0000 0 u2 0 2u 3 0 0 generates a self-dual C code with k(C) = 6 and length 10 over R(3, 4). We will now use the method in Proposition 4 to obtain a generator for a self-dual code with k(C) = 4 and length 6. ⎞ ⎛

I2 V 0 2 2 1 + u 1 + 2u Let V = . Multiplying G by ⎝ 0 I2 0 ⎠ and then eliminating the 2 + u2 1 + u2 0 0 I2 first 4 columns and the third and fourth rows yields the following matrix: ⎞ ⎛ 2u + 2u 2 2u + u 3 2u 2 + u3 2 1 + u 2 1 + 2u 2 ⎟ ⎜u + 2u 2 + u 3 u 2 + 2u 3 1 + 2u 2 2u + 2u 2 2 + u 2 1 + u 2 ⎟ G0 = ⎜ 2 3 3 ⎠ ⎝ u 0 2u 2u 0 0 2 3 0 2u 0 0 0 u C0 with k(C0 ) = 4 and length 6 over R(3, 4). Letting U = −V G 0 generates a self-dual code 0 0 0 0 1 + u 2 1 + 2u 2 and X = results in the following matrix upon performing the 0 0 0 0 2 + u2 1 + u2 build-up construction method from Proposition 1: ⎞ ⎛ 10 0 0 0 0 0 0 1 + u 2 1 + 2u 2 ⎜0 1 0 0 0 0 0 0 2 + u2 1 + u2 ⎟ ⎟ ⎜ 2 1 + 2u 2 2u + 2u 2 2u + u 3 3 1 + u 2 1 + 2u 2 ⎟ ⎜ 1 0 1 + u 2u 2 + u ⎟ ⎜ G := ⎜ 2 2 2 3 2 3 2 2 2 2 ⎟ ⎜0 1 2 + u 1 + u + u 2u + u u + 2u 1 + 2u 2u + 2u 2 + u 1 + u ⎟ ⎝0 0 0 0 u2 0 2u 3 2u 3 0 0 ⎠ 2 00 0 0 0 u 0 2u 3 0 0 We can verify in Magma that G is row equivalent to G.

123

Author's personal copy R. Alfaro, K. Dhul-Qarnayn

Example 4 The matrix



1 ⎜0 ⎜ G=⎜ ⎜0 ⎝0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 3u 0 u u

⎞ 2 4u 2u 3u 0 3+u 3 4 + 3u ⎟ ⎟ 0 3 + 4u 1 + 3u 2 ⎟ ⎟ 3u 4 2+u 3+u ⎠ 0 0 0 0

generates a self-dual code, C, with k(C) = 5, and length 9 over R(5, 2). We will show that we can obtain this code from a self⎛dual-code ⎞ with k(C) = 4 and length 7. I2 V 0 Let V = (2). Multiplying G by ⎝ 0 I2 0 ⎠ on the left and then eliminating the first two 0 0 I2 columns and the second row yields: ⎞ ⎛ 0 0 u 2 1 + u 1 + 2u 3 + 4u ⎜1 0 0 0 3 + 4u 1 + 3u 2 ⎟ ⎟ G0 = ⎜ ⎝0 1 u 3u 4 2+u 3+u ⎠ 00u 0 0 0 0 G 0 generates C0 , a self-dual  code with k(C0 ) = 4, and length 7 over R(5, 2). Then taking U = −V = (3) and X = 0 0 0 2 4u 2u 3u and performing the build-up construction in Proposition 1 yields the following matrix: ⎞ ⎛ 1 0 0 0 0 2 4u 2u 3u ⎜1 2 0 0 u 2 1 + u 1 + 2u 3 + 4u ⎟ ⎟ ⎜ 2 ⎟ G =⎜ ⎟ ⎜0 0 1 0 0 0 3 + 4u 1 + 3u ⎝0 0 0 1 u 3u 4 2+u 3+u ⎠ 0000u 0 0 0 0 It can be verified that G is row equivalent to G. Hence we have obtained C from C0 by our build-up construction method. The method we propose in Proposition 1 is a generalization of the two construction methods for self-dual codes over F2 + u F2 found in [4]. In the first construction, a self-dual code, C of length n + 2 over F2 + u F2 is obtained from a self-dual code C0 of length n over F2 + u F2 . This can be achieved by our method, with q = 2, t = 2, and a = 1. In this case, X is vector x of length n over F2 + u F2 such that x, x = 1, and U is any element c ∈ F2 + u F2 such that c2 = 1, see Theorem 3.1 in [4]. The second construction results in a self-dual code C of length n + 4 over F2 + u F2 obtained from a self-dual code C0 of length n over F2 + u F2 .

x1 This is achieved by our method with a = 2. In this case X = where x1 and x2 are x2 vectors of length

2n over F2 + u F2 such that x1 , x1  = 1, x2 , x2  = 1 and x1 , x2  = 0, 1u and U = produces the desired yi vectors for Theorem 3.5 in [4]. u1

3 Metric for codes over R(q, t) Recall that the q t elements of this ring can be represented as polynomials with indeterminate u of degree less or equal to (t − 1) and coefficients in Fq , or using the u-ary coefficient representation as an Fq -vector space.

123

Author's personal copy Constructing self-dual codes

Let B ∈ Mt (Fq ) be an invertible t × t matrix, and let B act as right multiplication on R(q, t) (seen as Fq -vector space). We extend this action linearly to the Fq -module (R(q, t))n , by concatenation of the images: φ B : (R(q, t))n → (Fq )tn given by φ B (x1 , x2 , . . . , xn )

=

(x1 B, x2 B, . . . , xn B)

An easy counting argument shows that φ B is an Fq -modulo isomorphism and if C is a linear code over R(q, t) of length n, then φ B (C) is a linear q-ary code of length tn. [2] Example 5 Consider the ring R(3, 2) = F3 + u F3 with u 2 = 0. Choosing B =

01 , we 11

obtained the Gray map φ B : (F3 + u F3 )n → F2n 3 with

  01   (a + ub)B = a b = b a+b 11 used by Gulliver and Harada in [5]. Each such matrix B induces a new metric in the code C. Definition 1 Let C be a linear code over R(q, t). Let B be an invertible matrix in Mt (Fq ), and let φ B be the corresponding map. The B-weight of an element x ∈ R(q, t), w B (x), is defined as the Hamming weight of x B in (Fq )t . Also, the B-weight of a codeword (x1 , . . . , xn ) ∈ C is defined as: w B (x1 , . . . , xn )

=

n

w B (xi )

i=1

Similarly, the B-distance between two codewords in C is defined as the B-weight of their difference, and the B-distance, d B of the code C is defined as the minimal B-distance between any two distinct codewords. Example 6 In the example above, the corresponding B-weight of an element of F3 + u F3 is given by: ⎧ ⎨ 0 if x = 0 w B (x) = w B (a + ub) = w B ((a + ub)B) = w H (b, a + b) = 1 if x = 1, 2, 2 + u, 1 + 2u ⎩ 2 otherwise which coincide with the Gray weight given in [5]. Example 7 Consider the matrix B = F2 + u F2 is given by:

10 , the corresponding B-weight of an element of 11

⎧ ⎨ 0 if x = 0 w B (x) = w B (a + ub) = w H ((a + ub)B) = w H (a + b, b) = 1 if x = 1, 1 + u ⎩ 2 if x = u which produces with the Lee weight w L for codes over F2 + u F2 .

123

Author's personal copy R. Alfaro, K. Dhul-Qarnayn

Example 8 Consider the matrix B = Fq + u Fq is given by:

01 , the corresponding B-weight of an element of 10

w B (x) = w B (a + ub) = w H ((a + ub)B) = w H (b, a) ⎧ ⎨ 0 if x = 0 = 1 if exactly one of a or b is nonzero ⎩ 2 if both a and b are nonzero which produces the Gray weight for codes in [8]. The case B = It corresponds to the special weight studied in [9] with regards to Gilbert– Varshamov bounds. A similar theorem to [9, Theorem 3] can be obtained using special families of matrices B. The definition leads immediately to the fact that φ B preserves weights and distances between codewords. Some choices of B lead to optimal codes over Fq , and some choices of B preserve selforthogonality, as we will see in the next proposition. ⎛

⎞ b0 b1 b2 · · · bt−1 ⎜ b b ⎟ ... ⎜ 1 2 ⎟ ⎜ ⎟ Proposition 5 Let B be an invertible t ×t matrix such that B B T = ⎜ b2 ⎟ ... ⎜ . ⎟ ⎝ .. . . . ⎠ bt−1 0 for b0 , b1 , . . . , bt−1 ∈ Fq . That is, (B B T )i, j = bi+ j−2 for i ≤ j. If C is a self-orthogonal code over R(q, t) then φ B (C) is self-orthogonal. Proof Suppose C is self-orthogonal and let w, v ∈ C. Let wi denote the vector form of the ith coordinate of w, (wi,0 , wi,1 , . . . , wi,t−1 ). Then, n

φ B (w) · φ B (v) =

wi B(v i B)T =

i=1

wi B B T v iT

= =

t−1 

b j wi, j

j=0 t−1

vi,k

k=0

=

t−1 

wi B B T v iT

i=1

b j wi, j−1 · · ·

j=1 t−1

n

t−1  j=t−2

b j wi, j−t+2 bt−1 wi,0 v iT

b j wi, j−k

j=k

t−1 t−1

b j wi, j−k vi,k

k=0 j=k

= b0 wi,0 vi,0 + b1 (wi,1 vi,0 + wi,0 vi,1 ) + · · · + bt−1

=

t−1 m=0

123

⎛ ⎝bm

j+k=m

⎞ wi, j vi,k ⎠

j+k=t−1

wi, j vi,k

Author's personal copy Constructing self-dual codes

Thus n

wi B B T v iT =



t−1 n

⎝bm

i=1 m=0

i=1

=



t−1

bm ⎝

m=0

=

t−1





wi, j vi,k ⎠

j+k=m n

⎞ wi, j vi,k ⎠

i=1 j+k=m

bm (0) = 0

m=0

Since w · v =

n  i=1

t − 1.



t−1 

wi, j

j=0

t−1 

vi,k

and (w · v)m =

k=0



wi, j vi,k = 0 for 0 ≤ m ≤

j+k=m

 

Corollary 1 If C is self dual, and B is as in Proposition 5, then φ B (C), is self-dual. Proof Since C is self dual, according to the relations of the ki as in [2], we have

2

2

i=2 t i=2 t i=1

ki (t − i + 1) = ki (t − i + 1) =

ki (t −

i=2

2i + 2) = 0. Splitting this equation, we have t

t 

t i=2 t

ki (i − 1) ki (i − 1) +

i=2

ki (t − i + 1) = 2k1 t +

t i=2

t

ki (t − i + 1) =

t

tki

i=2

tki

i=2

Since C isself-dual, we know C1⊥ =Ct and dim(Ct )=k(C). Thus, dim(C1⊥ ) = k(C) and t n − k1 = i=1 ki (for an explanation t of the torsion codes, Ci , see [2]). Therefore, 2dim (φb (C)) = 2 i=1 ki (t − i + 1) = nt = length φ B (C). By Proposition 5, φ B (C) is self-orthogonal, and hence φ B (C) is self-dual.   4 Examples of optimal codes and optimal self-dual codes over Fq obtained from self-dual codes over R(q, t) by the map φb We have been able to obtain some optimal ternary codes from codes over R(3, t) using the map φ B with various B matrices. B2 and B3 , which are given below, have the property described in Proposition 5. Hence optimal self-dual ternary codes are attained by φ B2 and φ B3 . B1 and B4 do not have this property, and though optimal ternary codes are obtained by φ B1 and φ B4 , they are not self-dual. The ternary [32, 16, 9] code listed in Table 1 is optimal for self-dual [32, 16] codes.

123

Author's personal copy R. Alfaro, K. Dhul-Qarnayn Table 1 Examples over R(3, t) resulting in optimal codes φ B (C)

Free self-dual code C over R(3, t) Code

t

Length

k(C)

B

Length

Dimension

d

Self-dual

C1

2

4

2

B1

8

4

4

No

C2

3

4

2

B2

12

6

6

Yes

C3

4

4

2

B3

16

8

6

Yes

C4

2

8

4

B1

16

8

6

No

C5

3

8

4

B2

24

12

9

Yes

C6

4

8

4

B3

32

16

9

Yes

C7

5

4

2

B4

20

10

7

No

For these examples, B1 ⎛ 0 ⎜1 ⎜ B4 = ⎜ ⎜0 ⎝2 0

0 0 0 1 1

1 1 0 2 1

2 0 0 2 0

⎞ 0 1⎟ ⎟ 1⎟ ⎟. 0⎠ 2



11 01 = , B2 = ⎝0 2 11 11

⎛ ⎞ 2 0 ⎜2 ⎜ ⎠ 1 , B3 = ⎝ 2 1 2

2 0 0 2

0 2 2 1

⎞ 2 0⎟ ⎟, and 2⎠ 0

The codes listed above

the following way: were obtained in 1 0 2 + 2u 2 + u C1 is generated by . 0 1 2+u 1+u

1 0 2 + 2u 2 2 + u 2 C2 is generated by . 0 1 2 + u2 1 + u2

1 0 2 + 2u 2 + u 3 2 + u 2 + 2u 3 . C3 is generated by 0 1 2 + u 2 + 2u 3 1 + u 2 + 2u 3



1+u 1+2u 2+2u 2 + u u 2u C4 is obtained by building up C1 with U = and X = . 2+u 1+u u u 2+u 1+u

1 + u 2 1 + 2u 2 and C5 is obtained by building up C2 with U = 2 + u2 1 + u2

u + u2 1 + u + 2u 2 2 + u + u 2 u + u 2 . X= 2 2 u+u u+u 1 + 2u 2 + 2u + 2u 2

1 + u 2 1 + 2u 2 and C6 is obtained by building up C3 with U = 2 + u2 1 + u2

2 + u + u 3 2 + 2u + 2u 3 u3 u + 2u 3 X= . u + u 2 + 2u 3 u + u3 1 + u + u 2 + 2u 3 2 + u + u 3

1 0 2 + 2u + 2u 2 + 2u 4 2 + u + 2u 2 + 2u 4 . C7 is generated by 0 1 2 + u + 2u 2 + 2u 4 1 + u + u 2 + u 4 In Table 2 we have listed optimal quintic self-dual codes obtained from codes over R(5, 2), using φ B5 .

01 . For these examples B5 = 12

123

Author's personal copy Constructing self-dual codes Table 2 Examples over R(5, 2) resulting in optimal codes Free self-dual code C over R(5, 2)

φ B (C)

Code

Length

k(C)

B

Length

Dimension

C8

4

2

B5

8

4

4

Yes

C9

8

4

B5

16

8

7

Yes

d

Self-dual

1 0 3 4u 0 1 4u 2   C9 is obtained by building up C8 with U = (2) and X = 0 1 2 + 2u3 and building up the resulting code with U = (2) and X = 0 3u 4 + 3u 0 2 + 3u 2 + u .

C8 is generated by

Acknowledgments Flint

The project was partially supported by Office of Research of the University of Michigan-

References 1. Alfaro R.: Linear codes over Fq [u]/(u t ). Contemp. Math. 537, 1–11 (2011). 2. Alfaro R., Bennett S., Harvey J., Thornburg C.: On distances and self-dual codes over Fq [u]/(u t ). Involv. J. Math. 2(2), 177 (2009). 3. Dougherty S.T., Gulliver T.A., Harada M.: Type II self-dual codes over finite rings and even unimodular lattices. J. Algebraic Comb. 9(3), 233–250 (1999). 4. Han S., Lee H., Lee Y.: Construction of self dual codes over F2 + uF2 . Bull. Korean Math. Soc. 49(1), 135–143 (2012). 5. Gulliver A., Harada M.: Codes over F3 + u F3 and improvements to the bounds on ternary linear codes. Des. Codes Cryptogr. 22, 89–96 (2001). 6. Huffman W.C.: On the classification and enumeration of self-dual MDS codes. Finite Fields Appl. 11(3), 451–490 (2005). 7. Lee Y., Kim J.-L.:An efficient construction of self dual codes. arXiv:1201.5689v1[cs.IT] (2012). 8. Siap I., Ray-Chaudhuri D.: New linear codes over F3 and F5 and improvements on bounds. Des. Codes Cryptogr. 21, 223–233 (2000). 9. Ozvudak F., Sole P.: Gilbert–Varshamov type bounds for linear codes over finite chain rings. Adv. Math. Commun. 1, 99–109 (2007). 10. Kim J.-L.: New extremal self-dual codes of lengths 36, 38, and 58. IEEE Trans. Inf. Theory 47, 386–393 (2001). 11. Norton G., Salagean A.: On the structure of linear and cyclic codes over a finite chain ring. AAECC 10, 489–506 (2000).

123