Skip to content →

Author: lievenlb

Boolean and Heyting islands

Raymond Smullyan‘s logic puzzles frequently involve Knights (who always tell the truth) and Knaves (who always lie).

In his book Logical Labyrinths (really a first course in propositional logic) he introduced islands where the lying or truth-telling habits can vary from day to day—that is, an inhabitant might lie on some days and tell the truth on other days, but on any given day, he or she lies the entire day or tells the truth the entire day.

An island is said to be Boolean if is satisfies the following conditions:

  • $\mathbf{N}$ : For any inhabitant $A$ there is an inhabitant who tells the truth on all and only those days on which $A$ lies.
  • $\mathbf{M}$ : For any inhabitants $A$ and $B$ there is an inhabitant $C$ who tells the truth on all and only those days on which $A$ and $B$ both tell the truth.
  • $\mathbf{J}$ : For any inhabitants $A$ and $B$ there is an inhabitant $C$ who tells the truth on all and only those days on which either $A$ tells the truth or $B$ tells the truth (or both). (In other words, $C$ lies on those and only those days on which $A$ and $B$ both lie.)

On any given day there are only Knights and Knaves on the island, but these two populations may vary from one day to the other. The subsets (of all days) for which there is an inhabitant who is a Knight then and a Knave on all other days form a Boolean algebra with operations $\wedge = \cap$ ($\mathbf{M}$eet), $\vee= \cup$ ($\mathbf{J}$oin) and $\neg=$ set-complement ($\mathbf{N}$egation).

Here’s a nice puzzle from Smullyan’s book:

Solomon’s Island also turned out to be quite interesting. When Craig arrived on it, he had the following conversation with the resident sociologist:

Craig : Is this island a Boolean island?
Sociologist : No.
Craig : Can you tell me something about the lying and truth-telling habits of the residents here?
Sociologist : For any inhabitants $A$ and $B$, there is an inhabitant $C$ who tells the truth on all and only those days on which either $A$ lies or $B$ lies (or both).

Show that the sociologist didn’t go native, and that his research is lousy.
(My wording, not Smullyan’s)

Smullyan’s version: This interview puzzled inspector Craig; he felt that something was wrong. After a while he realized for sure that something was wrong, the sociologist was either lying or mistaken!

Extending Smullyan’s idea, we can say that an island is Heyting if, in addition to $\mathbf{M}$ and $\mathbf{J}$ is satisfies the following rules

  • $\mathbf{T}$ : at least one inhabitant tells the truth on all days.
  • $\mathbf{F}$ : at least one inhabitant lies on all days.
  • $\mathbf{I}$ : For any inhabitants $A$ and $B$ there is an inhabitant $C$ sharing Knight-days with $A$ only when $B$ tells the truth, and there are no inhabitants doing this while telling the truth on more days than $C$.

Let’s give an example of an Heyting island which is not Boolean.

On Three-island there are only three kinds of people: Knights, Knaves and Alternates, who can neither lie nor tell the truth two days in a row. All Alternates tell the truth on the same days.

Here’s a riddle:

You meet John, who is a Knight, James, an Alternate, and William, a Knave. You don’t know who is who. You can only ask one question containing at most four words, giving you a Yes or No answer, to just one of the three. The answer must tell you whether that person is James or not.

You may like to watch Smullyan on the Carson show for a hint.

Or, you might just watch it reminiscing long forgotten times, when talkshow-hosts still listened to their guests, and could think for themselves…

Leave a Comment

Know thy neighbours

Two lattices $L$ and $L’$ in the same vector space are called neighbours if their intersection $L \cap L’$ is of index two in both $L$ and $L’$.

In 1957, Martin Kneser gave a method to find all unimodular lattices (of the same dimension and signature) starting from one such unimodular lattice, finding all its neighbours, and repeating this with the new lattices obtained.

In other words, Kneser’s neighbourhood graph, with vertices the unimodular lattices (of fixed dimension and signature) and edges between them whenever the lattices are neighbours, is connected.



Martin Kneser (1928-2004) – Photo Credit

Last time, we’ve constructed the Niemeier lattice $(A_1^{24})^+$ from the binary Golay code $\mathcal{C}_{24}$
\[
L = (A_1^{24})^+ = \mathcal{C}_{24} \underset{\mathbb{F}_2}{\times} (A_1^{24})^* = \{ \tfrac{1}{\sqrt{2}} \vec{v} ~|~\vec{v} \in \mathbb{Z}^{\oplus 24},~v=\vec{v}~mod~2 \in \mathcal{C}_{24} \} \]
With hindsight, we know that $(A_1^{24})^+$ is the unique neighbour of the Leech lattice in the Kneser neighbourhood graph of the positive definite, even unimodular $24$-dimensional lattices, aka the Niemeier lattices.

Let’s try to construct the Leech lattice $\Lambda$ from $L=(A_1^{24})^+$ by Kneser’s neighbour-finding trick.



Sublattices of $L$ of index two are in one-to-one correspondence with non-zero elements in $L/2L$. Take $l \in L – 2L$ and $m \in L$ such that the inner product $l.m$ is odd, then
\[
L_l = \{ x \in L~|~l.x~\text{is even} \} \]
is an index two sublattice because $L = L_l \sqcup (L_l+m)$. By definition $l.x$ is even for all $x \in L_l$ and therefore $\frac{l}{2} \in L_l^*$. We have this situation
\[
L_l \subsetneq L = L^* \subsetneq L_l^* \]
and $L_l^*/L_l \simeq \mathbb{F}_2 \oplus \mathbb{F}_2$, with the non-zero elements represented by $\{ \frac{l}{2}, m, \frac{l}{2}+m \}$. That is,
\[
L_l^* = L_l \sqcup (L_l+m) \sqcup (L_l+\frac{l}{2}) \sqcup (L_l+(\frac{l}{2}+m)) \]
This gives us three lattices
\[
\begin{cases}
M_1 &= L_l \sqcup (L_l+m) = L \\
M_2 &= L_l \sqcup (L_l+\frac{l}{2}) \\
M_3 &= L_l \sqcup (L_l+(\frac{l}{2}+m))
\end{cases}
\]
and all three of them are unimodular because
\[
L_l \subsetneq M_i \subseteq M_i^* \subsetneq L_l^* \]
and $L_l$ is of index $4$ in $L_l^*$.

Now, let’s assume the norm of $l$, that is, $l.l \in 4 \mathbb{Z}$. Then, either the norm of $\frac{l}{2}$ is odd (but then the norm of $\frac{l}{2}+m$ must be even), or the norm of $\frac{l}{2}$ is even, in which case the norm of $\frac{l}{2}+m$ is odd.

That is, either $M_2$ or $M_3$ is an even unimodular lattice, the other one being an odd unimodular lattice.

Let’s take for $l$ and $m$ the vectors $\lambda = \frac{1}{\sqrt{2}} (1,1,\dots,1) \in L – 2L$ and $\mu = \sqrt{2}(1,0,\dots,0) \in L$, then
\[
\lambda.\lambda = \frac{1}{2}\times 24 = 12 \quad \text{and} \quad \mu.\lambda = 1 \]
Because $\frac{\lambda}{2}.\frac{\lambda}{2} = \frac{12}{4}=3$ is odd, we have that
\[
\Lambda = L_{\lambda} \sqcup (L_{\lambda} + (\frac{\lambda}{2} + \mu)) \]
is an even unimodular lattice, which is the Leech lattice, and
\[
\Lambda_{odd} = L_{\lambda} \sqcup (L_{\lambda} + \frac{\lambda}{2}) \]
is an odd unimodular lattice, called the odd Leech lattice.



John Leech (1926-1992) – Photo Credit

Let’s check that these are indeed the Leech lattices, meaning that they do not contain roots (vectors of norm two).

The only roots in $L = (A_1^{24})^+$ are the $48$ roots of $A_1^{24}$ and they are of the form $\pm \sqrt{2} [ 1, 0^{23} ]$, but none of them lies in $L_{\lambda}$ as their inproduct with $\lambda$ is one. So, all non-zero vectors in $L_{\lambda}$ have norm $\geq 4$.

As for the other part of $\Lambda$ and $\Lambda_{odd}$
\[
(L_{\lambda} + \frac{\lambda}{2}) \sqcup (L_{\lambda} + \mu + \frac{\lambda}{2}) = (L_{\lambda} \sqcup (L_{\lambda}+\mu))+\frac{\lambda}{2} = L + \frac{\lambda}{2} \]
From the description of $L=(A_1^{24})^+$ it follows that every coordinate of a vector in $L + \frac{\lambda}{2}$ is of the form
\[
\frac{1}{\sqrt{2}}(v+\frac{1}{2}) \quad \text{or} \quad \frac{1}{\sqrt{2}}(v+\frac{3}{2}) \]
with $v \in 2 \mathbb{Z}$, with the second case instances forming a codeword in $\mathcal{C}_{24}$. In either case, the square of each of the $24$ coordinates is $\geq \frac{1}{8}$, so the norm of such a vector must be $\geq 3$, showing that there are no roots in this region either.

If one takes for $l$ a vector of the form $\frac{1}{\sqrt{2}} v = \frac{1}{\sqrt{2}}[1^a,0^{24-a}]$ where $a=8,12$ or $16$ and $v \in \mathcal{C}_{24}$, takes $m=\mu$ as before, and repeats the construction, one gets the other Niemeier-neighbours of $(A_1^{24})^+$, that is, the lattices $(A_2^{12})^+$, $(A_3^8)^+$ and $(D_4^6)^+$.

For $a=12$ one needs a slightly different argument, see section 0.2 of Richard Borcherds’ Ph.D. thesis.

Leave a Comment

The Leech lattice neighbour

Here’s the upper part of Kneser‘s neighbourhood graph of the Niemeier lattices:



The Leech lattice has a unique neighbour, that is, among the $23$ remaining Niemeier lattices there is a unique one, $(A_1^{24})^+$, sharing an index two sub-lattice with the Leech.

How would you try to construct $(A_1^{24})^+$, an even unimodular lattice having the same roots as $A_1^{24}$?

The root lattice $A_1$ is $\sqrt{2} \mathbb{Z}$. It has two roots $\pm \sqrt{2}$, determinant $2$, its dual lattice is $A_1^* = \tfrac{1}{\sqrt{2}} \mathbb{Z}$ and we have $A_1^*/A_1 \simeq C_2 \simeq \mathbb{F}_2$.

Thus, $A_1^{24}= \sqrt{2} \mathbb{Z}^{\oplus 24}$ has $48$ roots, determinant $2^{24}$, its dual lattice is $(A_1^{24})^* = \tfrac{1}{\sqrt{2}} \mathbb{Z}^{\oplus 24}$ and the quotient group $(A_1^{24})^*/A_1^{24}$ is $C_2^{24}$ isomorphic to the additive subgroup of $\mathbb{F}_2^{\oplus 24}$.

A larger lattice $A_1^{24} \subseteq L$ of index $k$ gives for the dual lattices an extension $L^* \subseteq (A_1^{24})^*$, also of index $k$. If $L$ were unimodular, then the index has to be $2^{12}$ because we have the situation
\[
A_1^{24} \subseteq L = L^* \subseteq (A_1^{24})^* \]
So, Kneser’s glue vectors form a $12$-dimensional subspace $\mathcal{C}$ in $\mathbb{F}_2^{\oplus 24}$, that is,
\[
L = \mathcal{C} \underset{\mathbb{F}_2}{\times} (A_1^{24})^* = \{ \tfrac{1}{\sqrt{2}} \vec{v} ~|~\vec{v} \in \mathbb{Z}^{\oplus 24},~v=\vec{v}~mod~2 \in \mathcal{C} \} \]
Because $L = L^*$, the linear code $\mathcal{C}$ must be self-dual meaning that $v.w = 0$ (in $\mathbb{F}_2$) for all $v,w \in \mathcal{C}$. Further, we want that the roots of $A_1^{24}$ and $L$ are the same, so the minimal number of non-zero coordinates in $v \in \mathcal{C}$ must be $8$.

That is, $\mathcal{C}$ must be a self-dual binary code of length $24$ with Hamming distance $8$.



Marcel Golay (1902-1989) – Photo Credit

We now know that there is a unique such code, the (extended) binary Golay code, $\mathcal{C}_{24}$, which has

  • one vector of weight $0$
  • $759$ vectors of weight $8$ (called ‘octads’)
  • $2576$ vectors of weight $12$ (called ‘dodecads’)
  • $759$ vectors of weight $16$
  • one vector of weight $24$

The $759$ octads form a Steiner system $S(5,8,24)$ (that is, for any $5$-subset $S$ of the $24$-coordinates there is a unique octad having its non-zero coordinates containing $S$).

Witt constructed a Steiner system $S(5,8,24)$ in his 1938 paper “Die $5$-fach transitiven Gruppen von Mathieu”, so it is not unthinkable that he checked the subspace of $\mathbb{F}_2^{\oplus 24}$ spanned by his $759$ octads to be $12$-dimensional and self-dual, thereby constructing the Niemeier-lattice $(A_1^{24})^+$ on that sunday in 1940.

John Conway classified all nine self-dual codes of length $24$ in which the weight
of every codeword is a multiple of $4$. Each one of these codes $\mathcal{C}$ gives a Niemeier lattice $\mathcal{C} \underset{\mathbb{F}_2}{\times} (A_1^{24})^*$, all but one of them having more roots than $A_1^{24}$.

Vera Pless and Neil Sloan classified all $26$ binary self-dual codes of length $24$.

Leave a Comment