Description

Error-correcting codes allow for information to be encoded such that even if a number of errors occur during the transmission of a message, the original message may still be recovered. Linear codes of length \(n\) are subspaces of \(n\)-dimensional vector spaces over finite fields. These codes may be equipped with an inner-product, valued in the underlying field, which allows us to define the dual of a code as the set of vectors in the underlying vector space which have an inner-product of zero with every word of our code. A code is known as self-orthogonal if it is contained within its dual code, and self-dual if it is equal to its dual code.

In this project, we will first study some particular examples of self-dual codes (such as the extended binary Golay code), before moving on to consider some general results constraining the possible weight-distributions of such codes. We will then consider examples of so-called ‘mass formulas’ for codes, which provide a method for counting all inequivalent codes of a given type, and use this result to investigate the classification of codes of these types up to equivalence.

Not only are many notable codes self-dual, such codes also have very interesting connections to other mathematical topics such as modular forms, often via associated (real) unimodular lattices, and these are topics a student on this project might choose to investigate further. Famous examples of unimodular lattices include the \(E8\) lattice, as well as the Leech lattice, which are known to describe the most effective ways of packing (hyper)spheres into \(8\)- and \(24\)-dimensional space respectively (see here for an interesting and accessible article on this).

This picture shows the Fano plane This diagram depicts the data bits and check bits for the extended [8,4] binary Hamming code. An animation of a rotating icosahedron.
On the left is the Fano plane, whose lines describe the weight 3 codewords of the length 7 binary Hamming code. The middle diagram depicts the data bits and check bits for the extended $[8,4]$ binary Hamming code. The animation on the right shows an icosahedron, which may be used to construct the extended binary Golay code.

Prerequisites

Codes and Cryptography III is a prerequisite for this project. Students taking this project will also be expected to have a good understanding of linear algebra.

Resources