Zendo is an interesting game. The full rules are on the linked page, but here’s the short version:
- There are pyramids of different colours and sizes that can be arranged in various ways.
- One player has a secret rule that matches some arrangements, but not others.
- Players can guess rules, and a counterexample (which fits the secret rule but not the proposed rule) is constructed for incorrect guesses.
Examples of rules are “contains a blue pyramid”, “contains two small pyramids”, “all medium pyramids are touching a green pyramid”, and even complicated monstrosities like “pyramids are large if they are green or yellow, and there are no blue mediums”.
However, ambiguity in rules can be a problem, especially when players are guessing rules. Here are some examples of ambiguity:
- “contains two small pyramids”: at least two, or exactly two?
- “all medium pyramids are touching a green pyramid”: does this match an arrangement with no medium pyramids?
- “blue on top of yellow”: do all blues have to be on top of a yellow? do all yellows have to be under a blue? what if there’s no blue, or no yellow, or neither? directly on top or just somewhere above?
It isn’t too difficult to disambiguate rules, but unambiguous rules can get pretty wordy, and asking for disambiguation can give away information. What if there were a better way?
Lojban is a constructed language designed to be logical and avoid ambiguity. It turns out that it’s quite easy to express a large variety of Zendo rules unambiguously in Lojban, and the rules are often sometimes more concise than their English equivalents! I also find that thinking about rules in Lojban helps me consider a different set of rules, because the rules that are easily expressed in Lojban are different from those easily expressed in English.
I’m going to briefly cover the parts of the language relevant to constructing Zendo rules. That means a lot of less relevant details are going to be omitted, and other parts will be left to be inferred from examples. If you want to pronounce the words right in your head, check out the phonology guide. For more Lojban resources, check out the end of this post.
Logical Quantified Existential Variables
The most important word for Zendo rules is
da. It means “there is at least one thing you can substitute here such that the sentence is true”. Together with the word
xunre, which means “x1 is red”1, we can write the simplest possible rule:
|“there is at least one red pyramid”3|
Notice the emphasis on “at least one”. The default quantity is
su'o pa, “at least one”, but any number (or number-like word) can be stuck in front of
|“there is exactly one red pyramid”|
|“there are exactly two red pyramids”|
|“there are at least two red pyramids”|
|“there are no red pyramids”|
|“every pyramid is red”|
Take special note of the last two examples. Even though these are called “existential” variables, they can also express non-existence with
no (zero), or universality with
di are the same as
da, but represent different variables. Multiple variables can be used together.
|“x1 points at x2”|
|“there is a pyramid pointing at another pyramid”|
|“there is no pyramid that points at two or more pyramids”|
|“there is a pyramid that points at exactly two pyramids”|
The meaning can change if variables are introduced in a different order. To do this,
se farsni is used, which means “x1 is pointed at by x2” (
se swaps the first and second places).
|“some pyramid points at no pyramids”|
|“no pyramid is pointed at by some pyramid”|
This matches how existential quantifiers work in math:
To avoid reordering words in the sentence itself, you can declare the quantifiers separately in the prenex, which is separated from the main sentence by the word
Restrictive Relative Clauses
ro (all) was mentioned in the last section, but I didn’t give many examples. That’s because you usually want to say “all pyramids which [condition]” rather than just “all pyramids”. The word
poi attaches a restrictive relative clause to the preceding object; you can read it as “which”. The word
ku'o is placed after the relative clause to separate it from the rest of the sentence, if the relative clause isn’t at the end of the sentence.
|“x1 is blue”|
|“x1 is upright”|
|“all blue pyramids are upright”|
|“all pyramids which point at another pyramid are red”|
|“x1 touches x2”|
|“there is a pyramid touching a pyramid that points at exactly one pyramid”|
Lojban has several different logical connectives for different parts of speech. Here, we’ll use
gi'a (or), and
gi'o (if and only if)5. You can stick
na before or
nai after to negate the corresponding operand.
|“there is an upright blue pyramid”|
|“there is a pyramid that is upright or blue (or both)”|
|“there is a pyramid that is neither upright nor blue”|
|“there is an upright blue pyramid or a non-upright non-blue pyramid”|
|“pyramids are upright if and only if they are blue”|
|“x1 is large”|
|“pyramids are not large or are red""if a pyramid is large, then it is also red”|
Note that the last example could be expressed with a relative clause as well:
|“all large pyramids are red”|
You can connect multiple phrases together using
.i followed by
ja (or), or
jo (if and only if). Note that the final vowel is the same as before for each connective.
|“there is an upright pyramid if and only if there are no blue pyramids”|
If there are two or more logical connectives, they are evaluated using left-associativity (left to right).
|“all pyramids are blue or red, and are large”|
|“all pyramids are blue and large, or are red”|
zmadu means “x1 is greater than x2 in property x3”. To create a property to fill the third spot,
lo ka (which means “the property of”) is used along with a subphrase. The most common property in a comparison is
lo ka barda (the property of bigness).
|“there is a pyramid bigger than another pyramid”|
|“there is a red pyramid bigger than a blue pyramid”|
|“there is a red pyramid bigger than all blue pyramids (if any)”|
Another useful word that takes a property is
traji, which means “x1 is the most x2”.
|“x1 is high up”|
|“the highest pyramid is red”|
Here’s a big list of Lojban words for constructing Zendo rules.
See if you can figure out the meaning of these rules! Mouse over or tap the black text for the answers.
|"there are at least two yellow pyramids"|
|"there are exactly two pyramids which are blue or small"|
|"there are no medium green pyramids"|
|"there are at least two pyramids of the same colour"|
|"there are exactly three spots on red pyramids"|
|"all upright pieces are the same size"|
|"there is a blue pyramid touching the table"|
|"there is a pyramid pointing at a smaller pyramid"|
|"all flat pyramids point at standing pyramids"|
More About Lojban
For a broader introduction to Lojban, check out lojbo.org. For more detailed information about the language and learning resources, go to lojban.org. If you decide to try learning Lojban, I recommend reading la karda first. The actual term for a Lojban “verb” is Technically, In fact, using There’s also
selbri, which means (roughly) “predicate relationship”. ↩︎
da xunre just says that somewhere, something is red. However, in the context of a game of Zendo, one can assume that the universe is confined to the arrangement under question, and that the object is a pyramid unless otherwise specified. If you want to be pedantic, you could replace
da poi pirmidi gi'e pagbu le stura. You could also say
pirmidi gi'e pagbu le stura cei broda, which assign that qualifier to
broda, and then you only have to say
da poi broda from then on, while still being just as pedantic as before. From this point forward, I’m just going to use
zo'u is considered the “normal” way to use existential variables. I’m using the abbreviated form in this post because these are relatively simple sentences that don’t need to sacrifice brevity for clarity. ↩︎
gi'u (whether or not), but it’s not useful in this context. ↩︎
The actual term for a Lojban “verb” is
In fact, using