G-codes over formal power series rings and finite chain rings

In this work, we define G-codes over the infinite ring R∞ as ideals in the group ring R∞G. We show that the dual of a G-code is again a G-code in this setting. We study the projections and lifts of G-codes over the finite chain rings and over the formal power series rings respectively. We extend known results of constructing γ-adic codes over R∞ to γ-adic G-codes over the same ring. We also study G-codes over principal ideal rings. 2010 MSC: 94B05, 16S34


Introduction
One of the most widely studied families of codes is the family of cyclic codes. One reason for this, is that cyclic codes over a Frobenius ring R have an algebraic description as ideals in the polynomial ring R[x]/ x n − 1 where n is the length of the code. To classify cyclic codes, it is simply a matter of finding ideals in this ring via a factorization of x n − 1 over R. Another very important reason is that cyclic codes are held invariant by the action of the cyclic shift. This, in turn, means that their automorphism group must contain the cyclic group of order n as a subgroup. This gives a structure to these codes which is highly useful in applications both in and out of mathematics.
Cyclic codes were first studied over finite fields and later were studied over Frobenius rings, especially for chain rings and principal ideal rings. In [1], Calderbank and Sloane made a more unified approach to studying cyclic codes over the rings Z p e by studying cyclic codes over over the p-adic numbers. This approach implied results for cyclic codes over Z p e for all e > 0 by considering these rings as projections of the p-adic ring. This work has been generalized to study codes over arbitrary chain rings by S.T. Dougherty and Y.H. Park in [6]. In [4], γ-adic codes are defined over a formal power series ring which are then used to study codes over finite chain rings. Also, cyclic codes over formal power series rings are studied in [5].
Recently, G-codes have been defined as codes that are ideals in the group ring RG, where R is a finite commutative Frobenius ring and G is a finite group of order n. This gives an alternative view of cyclic codes as ideals in the group ring RC n where C n is the cyclic group of order n. Moreover, it generalizes the notion of cyclic codes by considering codes whose automorphism group contains the arbitrary group G as a subgroup. In [3], parallels between cyclic codes and G-codes are drawn. For example, it is shown that the dual of a G-code is also a G-code, as in the case of cyclic codes, namely that the dual of a cyclic codes is also a cyclic code. Moreover, constructions of these codes are given as well as algebraic properties of their structure.
In this work, we generalize these ideas to study G-codes in a very broad sense. Namely, we study G-codes over formal power series rings and use that canonical projection to study G-codes over finite chain rings. This allows for a construction of infinite families of G-codes from a single code and helps to determine their minimum weight and structural properties.

Preliminaries
We begin by recalling some standard definitions from the theory of rings and the theory of codes.

Codes
We shall give the definitions for codes over rings. For a complete description of algebraic coding theory in this setting, see [2]. Let R be a commutative ring. Note that we are not necessarily assuming that the ring is finite. A code of length n over R is a subset of R n and a code is linear if it is a submodule of the ambient space R n . We assume that all finite rings we use as alphabets are Frobenius, where a Frobenius ring is characterized by the following. Let R be the character module of the ring R. For a finite ring R the following are equivalent: • R is a Frobenius ring.
• As a left module, R ∼ = R R.
• As a right module, R ∼ = R R .
The Hamming weight of a vector is the number of non-zero coordinates in that vector and the minimum weight of a code is the smallest weight of all non-zero vectors in the code.
We define the standard inner-product on the ambient space, namely We define the orthogonal with respect to this inner-product as: The code C ⊥ is linear, whether or not C is. If R is a finite Frobenius ring, then we have that (C ⊥ ) ⊥ = C for all linear codes C over R. However, if R is infinite this is not always true, which prompts the following definition.
Not all linear codes are basic. For example, consider the code over the p-adic integers of length 2 given by C = (p, p) . Here C ⊥ = (1, −1) . However, (1, −1) ⊥ = (1, 1) which strictly contains the code C. Therefore, this code is not basic.

Finite chain rings and formal power series rings
We recall the definitions and properties of a finite chain ring R and the formal power series ring R ∞ . We refer the reader to [4] and [5] for details and further explanations. In this paper, we assume that all rings have a multiplicative identity and that all rings are commutative.
A ring is called a chain ring if its ideals are linearly ordered by inclusion. In particular, this means that any finite chain ring has a unique maximal ideal. Let R be a finite chain ring. Denote the unique maximal ideal of R by m, and letγ be the generator of the unique maximal ideal m. This gives that m = γ = Rγ, where Rγ = γ = {βγ | β ∈ R}. We have the following chain of ideals: (1) The chain in (1) can not be infinite, since R is finite. Therefore, there exists i such that γ i = {0}. Let e be the minimal number such that γ e = {0}. The number e is called the nilpotency index ofγ. This gives that for a finite chain ring we have the following: If the ring R is infinite then the chain in Equation 1 is also infinite. Consider, for example, the infinite chain in the p-adic integers: Let R × denote the multiplicative group of all units in the ring R. Let F = R/m = R/ γ be the residue field with characteristic p, where p is a prime number, then |F| = q = p r for some integers q and r. We know that |F × | = p r − 1. We now state two well-known lemmas for which the proofs can be found in [10].
Lemma 2.2. For any 0 = r ∈ R there is a unique integer i, 0 ≤ i < e such that r = µγ i , with µ a unit. The unit µ is unique moduloγ e−i . Lemma 2.3. Let R be a finite chain ring with maximal ideal m = γ , whereγ is a generator of m with nilpotency index e. Let V ⊆ R be a set of representatives for the equivalence classes of R under congruence moduloγ. Then (i) for all r ∈ R there are unique r 0 , · · · , r e−1 ∈ V such that r = e−1 i=0 r iγ i ; (ii) |V | = |F|; From Lemma 2.3, we know that any elementã of R can be written uniquely as where the a i can be viewed as elements in the field F.
In the next definitions, which can be found in [4], γ will indicate the generator of the ideal of a chain ring, not necessarily the maximal ideal.
Definition 2.4. The ring R ∞ is defined as a formal power series ring: Let i be an arbitrary positive integer. The rings R i are defined as follows: where γ i−1 = 0, but γ i = 0 in R i . If i is finite or infinite then the operations over R i are defined as follows: We note that if i = 1 then R 1 = F and if i = e then R e ∼ = R.
The following results can be found in [4].
1. The ring R i is a chain ring with the maximal ideal γ for all i < ∞.

The multiplicative group
We note that the ring R ∞ is an infinite ring whereas each R i is a finite ring.
The fact that the ring R ∞ is a principal ideal domain makes the situation quite different than it is for codes over finite rings R i . For example, assume i > 1 so that R i is not a field. Then the ideal in R i generated by γ is a non-trivial code C of length 1, where C ⊥ = γ i−1 . Note here that (C ⊥ ) ⊥ = C. However, the ideal in R ∞ generated by γ is a non-trivial code C of length 1, and its orthogonal is {0} as the ring is a domain. But, {0} ⊥ = R ∞ . In other words, while there are non-trivial codes of length 1 corresponding to ideals in the rings, their orthogonals act quite differently than they do in the finite ring since there are no zero divisors.
It is well-known that the generator matrix for a code C over a finite chain ring R i , where i < ∞ is permutation equivalent to a matrix of the following form: 3 A 0,e γI k1 γA 1,2 γA 1,3 γA 1,e γ 2 I k2 γ 2 A 2,3 γ 2 A 2,e . . . . . .
where e is the nilpotency index of γ. This matrix G is called the standard generator matrix of the code C. In this case, the code C is said to have type For linear codes over R ∞ , the situation is a little different. Let C be a finitely generated linear code over R ∞ . Then the generator matrix of code C is permutation equivalent to the following standard form generator matrix (see [4] for more details).
Let C be a finitely generated, nonzero linear code over R ∞ of length n, then any generator matrix of C is permutation equivalent to a matrix of the following form: where 0 ≤ m 0 < m 1 < · · · < m r−1 for some integer r. The column blocks have sizes k 0 , k 1 , . . . , k r and k i are nonnegative integers adding to n.
Definition 2.5. A code C with generator matrix of the form given in Equation 8 is said to be of type where k = k 0 + k 1 + · · · + k r−1 is called its rank and k r = n − k.
A code C of length n with rank k over R ∞ is called a γ-adic [n, k] code. We call k the dimension of C and denote the dimension by dim C = k.
Let i, j be two integers with i ≤ j, we define a map If we replace R j with R ∞ then we obtain a map Ψ ∞ i . For convenience, we denote it by Ψ i . Since both, Ψ j i and Ψ i are projection maps, it is easy to show that Ψ j i and Ψ i are ring homomorphisms. Let a, b be two arbitrary elements in R j . It is easy to get that If a, b ∈ R ∞ , we have that Note that the map Ψ j i and Ψ i can be extended naturally from R n j to R n i and R n ∞ to R n i . The construction method above gives a chain of rings where R i is a finite ring for all finite i and R ∞ is an infinite principal ideal domain. This gives the following diagram: We note that in the above diagram, R is a finite chain ring with maximal ideal m = γ , whereγ is a generator of m with nilpotency index e.

G-codes
We begin by defining a circulant matrix, a reverse circulant matrix and a block circulant matrix before we introduce group rings. Definition 2.6.
1. A circulant matrix over a ring R is a square n × n matrix, which takes the form circ(a 1 , a 2 , . . . , a n ) = . . a n a n a 1 a 2 . . . a n−1 a n−1 a n a 1 . . . a n−2 . . .
2. A reverse circulant matrix over a ring R is a square n × n matrix, which takes the form rcirc(a 1 , a 2 , . . . , a n ) = 3. A block circulant matrix over a ring R is a square kn × kn matrix, which takes the form We shall now give the necessary definitions for group rings. Let G be a finite group of order n and let R be a ring, then the group ring RG consists of Addition in the group ring is done by coordinate addition, namely The product of two elements in a group ring is given by It follows that the coefficient of g k in the product is gigj =g k α i β j .
The following construction, first given by Hurly in [8], produces codes in R n from elements in the group ring RG. Let R be a ring and let G = {g 1 , g 2 , . . . , g n } be a group of order n. Let v = α g1 g 1 + α g2 g 2 + · · · + α gn g n ∈ RG. Define the matrix σ(v) ∈ M n (R) to be We note that the elements g −1 1 , g −1 2 , . . . , g −1 n are simply the elements of the group G in a given order. For a given v ∈ RG, the code C(v) is defined as follows: Therefore, the code is formed by taking the row space of σ(v) over the ring R. In [3], it is shown that such codes are ideals in the group ring RG, and are held invariant by the action of the elements of G. Such codes are referred to as G-codes. We note that these codes necessarily have the group G as a subgroup of their automorphism group. Namely, there may be other automorphism of the code but the code must be held invariant by the actions of the group G on the coordinates of the code. It is precisely this property that makes these codes interesting. For example, many classical constructions of codes force the code to have a certain automorphism group simply by the form of their generator matrix. Consider how many self-dual codes are generated by matrices of the form (I | M ) where M is a circulant matrix. This construction means that self-dual codes formed in this manner will have a certain form to its automorphism group, see [3] for a complete description. Then constructing self-dual codes by the group ring construction can give self-dual codes with different automorphism groups thus enabling the discovery of self-dual codes that would not be found using the classical techniques. Hence, part of the motivation for using this technique is to discover codes which the usual techniques fail to produce.
In previous work relating group rings and codes, it has always been assumed that the ring is finite. We shall consider here group rings with the infinite ring R ∞ . Of course, the theory of group rings always allowed for the study of infinite rings.

G-codes and ideals in the group ring R ∞ G
We shall extend the results from [3], where it is shown that the G-codes are ideals in RG and that the dual of a G-code is also a G-code in RG when R was a finite Frobenius ring. Here, we extend the results to R ∞ G, where G is an arbitrary finite group. The proofs are very similar to the ones in [3], with the difference that each nonzero element in R ∞ is an infinite sum, rather than a finite sum. For simplicity, we write each non zero element in R ∞ in the form γ i a where a = a 0 + a 1 γ + · · · + · · · with a 0 = 0 and i ≥ 0, which means that a is a unit in R ∞ . We note that if v = γ l1 a g1 g 1 + γ l2 a g2 g 2 + · · · + γ ln a gn g n ∈ R ∞ G, then the rows of σ(v) consist precisely of the vectors that correspond to the elements hv in R ∞ G where h is any element of the group G. Then we take the row space of the matrix σ(v) over R ∞ to get the corresponding G-code, namely C(v).
Proof. The rows of σ(v) consist precisely of the vectors that correspond to the elements hv in R ∞ G where h is any element of G. Let a = γ li a i g i and b = γ lj b j g i be two elements in I(v), then a + b = (γ li a i + γ lj b j )g i , which corresponds to the sum of the corresponding elements in C(v). This implies that I(v) is closed under addition.
It is well known that cyclic codes can be viewed as ideals in the ring R[X]/ X n − 1 , and that the reciprocal polynomial of the check polynomial h(x), is used to generate the ideal in R[X]/ X n − 1 corresponding to the dual code. In [3], the authors apply a similar approach to show that the dual of a G-code is also a G-code over a commutative Frobenius ring. They define an element in the group ring RG which is an ideal in that group ring, and also corresponds to the dual code. We now extend this result to G-codes over R ∞ .
Let Ω : R ∞ G → R n ∞ be the canonical map that sends γ l1 a g1 g 1 + γ l2 a g2 g 2 + · · · + γ ln a gn g n to (γ l1 a g1 , γ l2 a g2 , · · · , γ ln a gn ). Let I be the ideal Ω −1 (C). Let w = (w 1 , w 2 , . . . , w n ) ∈ C ⊥ . Then any row of the matrix σ(v) dot product w should equal zero: Which gives Let w = Ω −1 (w) = γ ki w gi g i and define w ∈ R ∞ G to be w = γ k1 b g1 g 1 + γ k2 b g2 g 2 + · · · + γ kn b gn g n , where Here, g −1 in the product of w and g −1 j v, where g −1 j v is a row of the matrix σ(v). This gives that w ∈ R(I) if and only if w ∈ C ⊥ .
Let φ : R n ∞ → R ∞ G by φ(w) = w, then this map is a bijection between C ⊥ and R(Ω −1 (C)) = R(I). Now we have the following result.
Proof. The composite mapping Ω(φ(C ⊥ )) is permutation equivalent to C ⊥ and φ(C ⊥ ) is an ideal of R ∞ G. We know that φ is a bijection between C ⊥ and R(Ω −1 (C)), and we also know that Ω −1 (C) is an ideal of R ∞ G as well. This proves that the dual of a G-code is also a G-code, over the formal power series ring.
In cyclic codes, the coefficients of the reciprocal polynomial are those of the check polynomial but in reverse order. In w above, the elements w g −1 i correspond to the elements w gi in w, but in different order, and this order will depend on the choice of the group. Therefore, we have used the permutation equivalence property in the proof.

Projections and lifts of G-codes
We begin by showing that if v ∈ R ∞ G then σ(v) is permutation equivalent to the matrix defined in Equation 8. For simplicity, we write each non-zero element in R ∞ in the form γ i a where a = a 0 + a 1 γ + · · · + · · · with a 0 = 0 and i ≥ 0, which means that a is a unit in R ∞ .
Theorem 4.1. Let v = γ l1 a g1 g 1 + γ l2 a g2 g 2 + · · · + γ ln a gn g n ∈ R ∞ G, where a gi are units in R ∞ . Let C = σ(v) be a finitely generated code over R ∞ . Then is permutation equivalent to the standard generator given in (8).
Proof. First, we take one non-zero element with form γ m0 a gi , where m 0 is the minimal nonnegative integer. By applying column and row permutations and by dividing a row by a unit, the element that corresponds to the first row and column of σ(v) can be replaced by γ m0 . The elements in the first column of matrix σ(v) have the form γ lj a gj with l j ≥ m 0 and a gj a unit, thus, these can be replaced by zero when they are added to the first row multiplied by −γ lj −m0 (a gj ) −1 . Continuing the process using elementary operations, we obtain the standard generator matrix of the code C given in Equation 8.
with generator matrix σ(v). Then the code generated by Ψ i (σ(v)) is a code over R i of type {(γ m0 ) k0 , (γ m1 ) k1 , . . . , (γ ms−1 ) ks−1 } where s is the largest m j that is less than i. Moreover, the code generated by Proof. If m j > i − 1 then Ψ i sends γ m1 M , where M is a matrix, to a zero matrix which gives the first statement.
The code C is formed by taking the row space of σ(v) over the ring R ∞ , i.e. γ l1 a 1 v 1 + γ l2 a 2 v 2 + · · · + γ ln a n v n where γ li a i ∈ R ∞ and v j are the rows of σ(v). If w = γ lj a j v j , then Ψ i (w) = Ψ i (γ lj a j )Ψ i (v j ) by the equation given in (12) where Ψ i (v j ) applies the map coordinate-wise. This gives the second statement.
where A = circ(γ l1 a 1 , γ l2 a 2 , γ l3 a 3 , γ l4 a 4 ), B = circ(γ l5 a 5 , γ l6 a 6 , γ l7 a 7 , γ l8 a 8 ) and γ lj a j ∈ R ∞ . Let σ(v) be a generator matrix of a (C 2 × C 4 )-code C. We know from Theorem 4.1 that C is a type {(γ m0 ) k0 , (γ m1 ) k1 , . . . , (γ mr−1 ) kr−1 } code, since it is permutation equivalent to the standard generator matrix. Each row of σ(v) has the elements γ l1 a 1 , γ l2 a 2 , . . . , γ l8 a 8 in some specific order. Now, We note that Ψ i may send a non-zero coordinate to 0. This means that the Hamming weight of a code may decrease by applying Ψ i , i.e. the minimum weight of Ψ(C) may be less than the minimum weight of C. The minimum weight cannot increase with the application of this map. Lemma 4.5. If C is a G-code over R ∞ , then C ⊥ has type 1 m for some m.
Proof. First we notice that C is a linear code. From the matrix σ(v), and the fact that it is permutation equivalent to the standard generator matrix in Equation 8, we know that all the codewords in C ⊥ are of the form γ l v for some nonnegative integer l. This gives that [γ l v, w] = 0 ∀ w ∈ C ⊥ , Hence, [γ l v, w] = γ l n l=1 v l w l = γ l [v, w] = 0, which gives that [v, w] = 0, since 0 = γ l ∈ R ∞ and R ∞ is a domain. So if γ l v ∈ C ⊥ then v ∈ C ⊥ . Therefore the code C ⊥ has the type 1 m for some m. Proposition 4.6. Let C be a G-code over R ∞ . Then C = (C ⊥ ) ⊥ if and only if C has type 1 k for some k.
Proof. First we note that C is linear. Secondly, we note that (C ⊥ ) ⊥ ⊆ C. Since C is a linear code then by Lemma 4.5, the code C ⊥ is a linear code with type 1 k for some k. This gives that (C ⊥ ) ⊥ has type 1 n−(n−k) = 1 k .
The above two are extensions of the results from [4]. The following result, which can also be found in [4], is very useful when it comes to finding the generator matrix of the dual code C ⊥ of C, given that C has a standard generator matrix G as in Equation 8. We extend this result to G-codes over R ∞ but omit the proof as it is exactly the same as in [4].
Example 4.8. If we take the generator matrix G of a code C from Example 4.2, we can see that which is the standard generator matrix-here, In this case the generator matrix of the dual code C ⊥ of C has the form: Now, from Theorem 4.7 We also have rank(C) + rank(C ⊥ ) = 4 + 4 = 8 = n.
Proposition 4.9. Let C be a self-orthogonal G-code over R ∞ . Then the code Ψ i (C) is a self-orthogonal G-code over R i for all i < ∞.
Proof. We first show that Ψ i (C) is self-orthogonal. Let v ∈ R ∞ G and σ(v) = C(v) be the corresponding self-orthogonal G-code. This implies that [v, w] = 0 for all v, w ∈ σ(v) = C(v). This gives that is also a G-code, we notice that when Definition 4.10. Let i, j be two integers such that 1 ≤ i ≤ j < ∞. We say that an [n, k] code C 1 over R i lifts to an [n, k] code C 2 over R j , denoted by C 1 C 2 , if C 2 has a generator matrix G 2 such that Ψ j i (G 2 ) is a generator matrix of C 1 . We also denote C 1 by Ψ j i (C 2 ). If C is a [n, k] γ-adic code, then for any i < ∞, we call Ψ i (C) a projection of C. We denote Ψ i (C) by C i . Lemma 4.11. Let C be a G-code over R ∞ with type 1 k . If σ(v) is a standard form of C, then for any positive integer, i, Ψ i (σ(v)) is a standard form of Ψ i (C).
Proof. We know from Theorem 4.1 that σ(v) is permutation equivalent to a standard form matrix defined in Equation 8. We also have that C has type 1 k , hence Ψ i (C) has type 1 k . The rest of the proof is the same as in [4].
In the following, to avoid confusion, we let v ∞ and v be elements of the group rings R ∞ G and R i G respectively. Let v ∞ = γ l1 a g1 g 1 + γ l2 a g2 g 2 + · · · + γ ln a gn g n ∈ R ∞ G, and C(v ∞ ) = σ(v ∞ ) be the corresponding G-code. We now define the following map: We define a projection of G-codes from R ∞ G to R i G.
The projection is a homomorphism which means that if I is an ideal of R ∞ G, then Ψ i (I) is an ideal of R i G. We have the following commutative diagram: .
This gives that Ψ i σ 1 = σ 1 Ψ i , which gives the following theorem.
Theorem 4.12. If C is a G-code over R ∞ , then Ψ i (C) is a G-code over R i for all i < ∞.
Proof. Let v ∞ ∈ R ∞ G and C(v ∞ ) be the corresponding G-code over R ∞ . Then σ 1 (v ∞ ) = C(v ∞ ) is an ideal of R ∞ G. By the homomorphism in Equation 23 and the commutative diagram above, we know that Ψ i (σ 1 (v ∞ )) = σ 1 (Ψ i (v ∞ )) is an ideal of the group ring R i G. This implies that Ψ i (C) is a G-code over R i for all i < ∞.
This gives that if we take any element v ∈ R ∞ G, for a finite group G, and form σ(v), then we get a family of infinitely many G-code by taking Ψ i (C(v)) for all i. In the same way, if we take any element v ∈ R 1 G, then we get a family of infinitely many G-code by taking the lifts of the code C(v). Hence, each G code over a finite chain ring is part of an infinite family of G-codes.
Theorem 4.13. Let C be a G-code over R i , then the lift of C,C over R j , where j > i, is also a G-code.
Hence we have constructed an infinite family of G-codes.
The following is an extension of codes over chain rings that are projections of γ-adic codes (see [4] for details), to G-codes.
By Lemma 4.11 and Theorem 4.12, we know that for an [n, k] G-code C over R ∞ of type 1 k , C i = Ψ i (C) is an [n, k] G-code of type 1 k over R i . We also have C i C i+1 for all i. Thus if a G-code C over R ∞ of type 1 k is given, then we obtain a series of lifts of G-codes as follows: Conversely, let C be an [n, k] G-code over F = R e / γ = R 1 , and let G = G 1 be its generator matrix. It is clear that we can define a series of generator matrices, where M k×n (R i ) denotes all the matrices with k rows and n columns over R i . This defines a series of lifts C i of C to R i for all i. Then this series of lifts determines a unique code C that C i = C i .
Let C be an [n, k] G-code of type 1 k , and G, H be a generator and parity-check matrices of C. Let G i = Ψ i (G) and H i = Ψ i (H). Then G i and H i are generator and parity check matrices of C i respectively. The following results are well known and can be applied to G-codes over R ∞ since these are also γ-adic codes. Proofs can be found in [4].
Lemma 4.15. Let i < j < ∞ be two positive integers, then In [4], the authors study the weights of codewords in lifts of a code. We state the result with an extension to G-codes over R ∞ . We omit the proof since it is the same as in [4] as G-codes over R ∞ are just a special type of γ-adic codes. In the remainder of this section, we extend the two results from [4] on MDS and MDR codes over R ∞ to the same type of codes which are also G-codes over the same ring.
It is known (see [9]) that for codes C of length n over any alphabet of size m Codes meeting this bound are called MDS (Maximal Distance Separable) codes.
For a code C of length n over an finite Quasi-Frobenius ring R, we have (see [7]) If C is linear, then we have (see [7]) Codes meeting this bound are called MDR (Maximal Distance with respect to Rank ) codes.
A linear code C over R is called free if C is isomorphic as a module to R t for some t. This implies that if C is free then r C = rank(C).
Theorem 4.17. Let C be a G-code over R ∞ . If C is an MDR or MDS code then C ⊥ is an MDS code.
Proof. We know that C is linear. Assume that C is of length n, rank k, with d H (C) = n − k + 1. We know from Lemma 4.5 that if C is of rank k then C ⊥ is of type 1 n−k . Since R ∞ is a domain, any n − k columns of the generator matrix (equivalently a parity check matrix) of C ⊥ are linearly independent giving that the minimum Hamming weight of C ⊥ is n − (n − k) + 1 = k + 1.
Theorem 4.18. Let C be a G-code over R i , andC be a lift G-code of C over R j , where j > i. If C is an MDS code over R i then the codeC is an MDS code over R j .
Proof. Since C is a linear code, the proof is the same as in [4].

Self-dual γ-adic G-codes
One of the most significant uses of G-codes so far has been their use in constructing good self-dual codes. In this section, we extend some results for self-dual γ-adic codes to G-codes over R ∞ . We therefore fix the ring R ∞ with R ∞ → · · · → R i → · · · → R 2 → R 1 and R 1 = F q where q = p r for some prime p and nonnegative integer r. The field F q is said to be the underlying field of the rings. We now state two very well known results for self-dual codes over F q and self-dual codes over R ∞ . These can be found in [11] and [4] respectively. (ii) If p ≡ 3 (mod 4), then a self-dual code of length n exists over F q if and only if n ≡ 0 (mod 4).
Corollary 5.2. Let C be a self-dual code of length n over R ∞ . Recall that p is the characteristic of the underlying field F. We have (i) If p = 2 or p ≡ 1 (mod 4), then n ≡ 0 (mod 2); (ii) If p ≡ 3 (mod 4), then n ≡ 0 (mod 4).
In [4], the authors also prove that if i is even, then self-dual codes of length n exist over R i for all n. This can be easily extended to self-dual G-codes as these are a special type of self-dual codes over R i . We now look at two theorems from [4] where one considers self-dual codes over R i with a specific type and one considers projections of self-dual codes over R ∞ . We extend these to self-dual G-codes over R i and R ∞ respectively. Theorem 5.3. Let i be odd and C be a G-code over R i with type 1 k0 (γ) k1 (γ 2 ) k2 . . . (γ i−1 ) ki−1 . Then C is a self-dual code if and only if C is self-orthogonal and k j = k i−j for all j.
Proof. It is enough to show that σ(v) where v ∈ R i G and G is a finite group, is permutation equivalent to the matrix (6). The rest of the proof is the same as in [4].
Theorem 5.4. If C is a self-dual G-code of length n over R ∞ then Ψ i (C) is a self-dual G-code of length n and type 1 k over R i for all i < ∞.
Proof. We first show that Ψ i (C) is self-dual. Since C is self-dual, C = C ⊥ which gives that C = C ⊥ = (C ⊥ ) ⊥ . We also know from Proposition 4.6 that the code C has type 1 k for some k. Hence, k = n − k, which implies that k = n 2 . Then Ψ i (C) also has type 1 k , with k = n 2 giving the desired size condition. We also know from Proposition 4.9 that Ψ i (C) is self-orthogonal. Therefore Ψ i (C) is a self-dual code. To show that Ψ i (C) is also a G-code, we notice that when taking In the remainder of this section, we extend two more results from [4]. The first one describes a method to construct a self-dual code over F from a self-dual code over R i . We extend this to self-dual G-codes.
Theorem 5.5. Let i be odd. A self-dual G-code of length n over R i induces a self-dual G-code of length n over F q .
Proof. The proof is similar to the one in [4] but with two extra things added. First, we notice that σ(v) where v ∈ R i G which generates the self-dual code C(v), is permutation equivalent to a standard generator matrix G of the form: Then the code C over R i is of type 1 k0 (γ) k1 (γ 2 ) k2 . . . (γ i−1 ) ki−1 . Secondly, when the map Ψ i 1 (G) is used in [4], we notice that in our case the map will correspond to Ψ i 1 (G) = Ψ i 1 (v) = Ψ i 1 (γ li a gi )g 1 +Ψ i 1 (γ l2 a g2 )g 2 + · · · + Ψ i 1 (γ ln a gn )g n , assuming thatG is the generator matrix of a G-code and v ∈ R i G. Then Ψ i 1 (G) is the generator matrix of a G-code over F q .
The last result from [4] which we extend to G-codes is the one which considers lifts of self-dual codes over F to self-dual codes over R ∞ . The authors prove the result by starting with a generator matrix of the code C over R 1 (= F) which has the form G 1 = (I | A 1 ), and then using the induction to show that there exist matrices G i = (I | A i ) such that Ψ i+1 i (G i+1 ) = G i . To extend this to self-dual G-codes, we can define the matrix G 1 by taking the row space of σ(v) over F and perform row or column permutations to get a self-dual code of the form (I | A 1 ) where A 1 is a matrix over F = R 1 . A similar approach can be found in [3], where examples of the [16, 5,8] Reed-Muller code, the [8,4,4] extended Hamming code or [24, 12, 8] Golay code over F 2 are constructed from group rings and σ(v). Theorem 5.6. Let R = R e be a finite chain ring, F = R/ γ , where |F| = q = p r , 2 = p is a prime. Then any self-dual G-code C over F can be lifted to a self-dual G-code over R ∞ .
Proof. We know by Theorem 4.13 that a G-code over R i can be lifted to a G-code over R j , where j > i. To show that a self-dual G-code over F lifts to a self-dual G-code over R ∞ , it is enough to follow the proof in [4], but with the generator matrix G 1 being defined as above.
6. G-codes over principal ideal rings Let R 1 e1 , R 2 e2 , . . . , R s es be chain rings, where R j ej has unique maximal ideal γ j and the nilpotency index of γ j is e j . Let F j = R j ej / γ j . Let A = CRT(R 1 e1 , . . . , R j ej , . . . , R s es ).
We know that A is a principal ideal ring. For any 1 ≤ i < ∞, let A j i = CRT(R 1 e1 , . . . , R j i , . . . , R s es ).
This gives that all the rings A j i are principal ideal rings. In particular, A j ej = A. We denote CRT(R 1 e1 . . . , R j ∞ , . . . , R s es ) by A j ∞ . For 1 ≤ i < ∞, let C j i be a code over R j i . Let  be associated code over A j ∞ . We can now prove the following. Theorem 6.1. Let C j ej be a G-code over the chain ring R j ej . Then C j ∞ =CRT(C 1 e1 , . . . , C j ∞ , . . . , C s es ) is a G-code over A j ∞ .
Proof. Let g ∈ G and v i ∈ C j ej . Each row of C j ej is of the form gv i , for all i. Now, if v = CRT (v 1 , v 2 , . . . , v s ), then gv = CRT (gv 1 , gv 2 , . . . , gv s ) and so gv ∈ C j ∞ , giving that C j ∞ is an ideal in A j ∞ G.

Conclusion
In this work, we studied G-codes over the formal power series rings and finite chain rings. We generalized many known results of codes over these rings to G-codes. We showed that the dual of a Gcode is also a G-code and we studied projections and lifts of G-codes with a given type in this setting. We also extended known methods of constructing a self-dual code over F from a self-dual code over R i and a self-dual code over F to a self-dual code over R ∞ , to self-dual G-codes. We lastly considered G-codes over principal ideal rings. Throughout the paper, we constructed examples in which the codes have generator matrices that consist of blocks which are either circulant or reverse circulant matrices. We do not know if this is a general feature for any finite group ring, we therefore suggest that this is studied in the future work.