Introduction

This chapter describes those functions which are applicable to linear codes over finite rings. Magma currently supports the basic facilities for codes over integer residue rings and galois rings, including cyclic codes, constructions, complete weight enumerators and decoding. Much additional functionality specific to codes defined over Z4, the integers modulo 4, can be found in Chapter LINEAR CODES OVER THE INTEGER RESIDUE RING Z4.

For modules defined over rings with zero divisors, it is of course not possible to talk about the concept of dimension (the modules are not free). But in Magma each code over such a ring has a unique generator matrix corresponding to the Howell form. The number of rows k in this unique generator matrix will be called the pseudo-dimension of the code. It should be noted that this pseudo-dimension is not invariant between equivalent codes, and so does not provide structural information like the dimension of a code over a finite field. Note that the rank of the generator matrix is always well-defined and unique (based on the Smith form which is well-defined over PIRs), but k may sometimes be larger than the rank.

Without a concept of dimension, codes over finite rings are referenced by their cardinality. A code C is called an (n, M, d) code if it has length n, cardinality M and minimum Hamming weight d.

The reader is referred to [Wan97] as a general reference on codes over Galois rings, especially linear codes over Z4.

In this chapter, as for codes over finite fields, the term "code" will refer to a linear code, unless otherwise specified.

V2.28, 13 July 2023