Here are Golay’s original generators which appear at the end of page 13 of this paper :
(define G '( (1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1) (0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0) (0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0) (0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 0 1 1 0) (0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0) (0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 0) (0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 1 1) (0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1) (0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1) (0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 1 0 1 1 1) (0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1) (0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 1)))The respective weights of these generators are (12 8 8 8 8 8 8 8 8 8 8 8). Linear combinations of these (over the field GF(2)) compose C24, the 212 Golay codes. Said otherwise the set of Golay codes = {Σs | s⊆G} where G is the set of 12 generating vectors and Σs = (the component-wise sum mod 2 of a set s of vectors) = (the vector sum of elements of s in the 24 dimensional vector space over GF(2)) and G is the set of 12 generating vectors above. Note that ΣG is the vector of 24 1’s. Two distinct Golay codes differ by at least 8 bits. The exclusive or of two codes is a code. Here is a C program that explores variations on the generation of C24.
Here are putative rules that apply to the three low order binary bits of the 24 integer coordinates of a point of the Leech lattice which we will call “LL” until we have proved that LL is a lattice.
This formula agrees with my first clause but I do not understand the Golay restrictions as described there. This paper gives different rules on page 2 that are equivalent. The routine Lq in this C code is a small fast obscure test of membership in the Leech lattice.
We outline the proof here that the above restrictions define a lattice. It suffices to show that the set LL of vectors satisfying these constraints, is closed under addition. Let x and y be two vectors in LL. Since the 1-bits of each vector are uniform, the 1-bits of x+y are uniform.
If x and y are not both odd then there are no carries into the 2-bits and the 2-bits of x+y are merely the component-wise sum mod 2 of the 2-bits of x and y and this is another Golay code. There are an even number of carries into the 4-bits.
If x and y are both odd then each of the 2-bits of x+y is flipped from what is calculated above; see gi here. The complement of a Golay code is a Golay code. The carries from the 2-bits into the 4-bits happen when either of the 2-bits is on. This happens an even number of times; see go here.
In either case there are an even number of carries into the 4-bits and the correspondence between the 4-bit parity and the 1-bits is thus inherited from x and y.
Q.E.D: The LL vectors set is closed under addition and LL is a lattice.
Every point in a lattice is like every other point via translation. That the Leech lattice is highly symmetric thru rotations about the origin is the subject of many volumes.
Contemplating a program to produce all of the lattice points in the cell [0, 7]24:
There are 224 possibilities for the 4-bit in the 24 coordinates.
Given one of those possibilities each 1-bit is determined.
There remain the 212 Golay codes that inhabit the respective 2-bits.
It would seem that there are 236 points to enumerate.
This is daunting.
The density is (Volume of sphere)∙(number of spheres in cell)/(volume of cell)
= (π12((√32)/2)24/12!)∙236/824.
(* (expt pi 12) (expt (/ (sqrt 32) 2) 24) (/ (fac 12)) (expt 2 36) (expt 8 -24)) ; => 0.001929574309403925
All of the other points with odd coordinates are farther away from the origin. Another close point is (4, 4, 0, 0, 0, ... 0) which is also at distance √32. (−4, 4, 0, 0, ... 0) is also in this category and there are 4∙24∙23/2 = 1104 in this category.
There are also the ‘pure Golay points’ such as
(0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 2, 2, 0, 0, 2, 2) at distance √32 from the origin.
The signs of an even number of the 2’s can be flipped while conforming with the 4-bit rule.
There are just 759 Golay codes of weight 8 (See c8 here) and allowing for an even number of sign flips we have 128∙759 = 97152 lattice points of this sort.
Summing these three sorts of lattice point we get 98304 + 1104 + 97152 = 196560 (an oft quoted number) lattice points all at distance √32 from the origin.
For a natural number n we define an n-lump to be n balls in which each ball touches every other ball. For each n any two n-lumps are congruent in n! ways. The origin and the 24 balls (−3, 123) form a 25-lump in LL that we call the standard lump. For each Golay code there is a distinct lump that includes the origin. A 25-lump defines a set of oblique coördinates.
Some Leech questions
Some of these problems are hard.
Lattice Group