There are mathematical operations of all kinds with the property that doing the operation twice is tantamount to not doing anything at all. Such operations are called involutions, and you can find them all over the place in math: taking the negative of a number, taking the reciprocal of a number, rotating an object by 180 degrees1, negating a proposition, complementing a set, … I could go on and on.
When doing X twice is equivalent to doing nothing at all, then doing X thrice is equivalent to doing X once, and doing X four times is equivalent to doing X twice, and so on. In this situation, to know what happens when you do X many times, all you need to know is whether the number of times you did it (call it n) is even or odd. If n is odd, then doing the operation n times is the same as doing it once; if n is even, then doing the operation n times is the same as doing nothing. (See my earlier essay “When 1+1 Equals 0”.)
Trying to catalogue all the mathematical operations that behave in this way, or even cataloguing just the important ones, would be an enormous task, and it isn’t my goal today to embark on such a survey. But there are other operations that aren’t quite involutions – “near-involutions”, one might call them2 – that nonetheless have the property that thrice is the same as once, four times is the same as twice, etc. These rarer sorts of operations are my theme for today.
For these sorts of operations, if you want to know what happens when you do an operation n times, there are three cases, according to whether n is positive and odd, positive and even, or zero.3 Unlike mod-two arithmetic, which is about counting “zero, one, zero, one, zero, one, …,” the kind of counting that governs these operations goes “zero, one, two, one two, one two, …”
I’ll show you three examples. Two are somewhat technical but the third is easy to understand and deserves to be better known. Feel free to skip to the third one if the first two seem too arcane.
ORTHOCOMPLEMENTATION
Our first example comes from linear algebra, but to keep things accessible I’ll switch over to three-dimensional geometry, equipped with x, y, and z coordinates in the usual way. Given a set S of lines in this space, let Perp(S) be the set of all lines that are perpendicular to every line in S. For example, suppose S consists of three lines that bound a triangle in the x,y-plane. Then Perp(S) consists of all lines that are parallel to the z-axis, and Perp(Perp(S)) consists off all lines that are parallel to the x,y-plane, and Perp(Perp(Perp(S))) consists off all lines that are parallel to the z-axis, and so on. Perp(Perp(S)) isn’t the same as S, but Perp(Perp(Perp(S))) is the same as Perp(S).
A more mind-bending example arises if we let S consist of three mutually perpendicular lines. Then Perp(S) consists of no lines at all; that is, it’s the empty set, also written as { }. So what are we to make of Perp(Perp(S)) in this case? That is, what the heck is Perp({ })? If you’ve done a lot of math, you can guess what’s coming because you’ve seen us mathematicians do it before: we treat assertions like “I’ve met every unicorn in Ireland” as being (vacuously) true. (If you think I’m wrong in claiming to have met every unicorn in Ireland, then find one I haven’t met; otherwise, shut up.) So for each line L in the plane, L is perpendicular to every line of { } (because there’s no line in { } that L isn’t perpendicular to, on account of there being no lines in { } at all), which implies that Perp({ }) is the full set of all lines L in our space. So we see that when S consists of three mutually perpendicular lines, Perp(S) is the set containing no lines, Perp(Perp(S)) is the set containing all lines, Perp(Perp(Perp(S))) is the set containing no lines, and so on. Once again, Perp(Perp(S)) isn’t the same as S but Perp(Perp(Perp(S))) is the same as Perp(S).
This is no coincidence: it can be shown that Perp(Perp(Perp(S))) is always the same as Perp(S).
Doing Perp twice in succession is an example of what mathematicians call a “closure operation”. A closure operation is one with the property that the closure of the closure of a thing is the same as the closure of the thing. That is, it’s the sort of operation where “twice is once”.4 If C(S) is defined as Perp(Perp(S)), then C(C(S)) is Perp(Perp(Perp(Perp(S)))), which is equal to Perp(Perp(S)), which is C(S); so C is a closure operation.
Normally the operation Perp is applied to vector spaces (or more technically what are called inner-product spaces). You’ve got some big vector space V and some smaller vector space W sitting inside V . Then Perp(W) is another vector space sitting inside V , as is Perp(Perp(W)), and so on. When V is finite-dimensional, Perp(Perp(W)) is always equal to W, but this ceases to be true in infinite-dimensional spaces. Still, in those infinite-dimensional spaces, it remains true that Perp(Perp(Perp(W))) is always equal to Perp(W). So Perp is an example of a thrice-equals-once operation. Perp(W) is called the “orthogonal complement” or “orthocomplement” of W – hence the name of this section.
INTUITIONISTIC NEGATION
The strangest of our three thrice-equals-once operations is logical negation in a nonclassical (more specifically, constructivist) framework. Here I’m using the word “constructivist” to denote a style of logic that arose in the twentieth century, not the educational movement that goes by the same name. Constructivism is similar to, and indeed entangled with, another movement called “intuitionism”, and indeed the kind of logic I’m talking about is often called intuitionistic logic. In the constructivist setting, asserting not-p means something closer to asserting “I have a procedure that, given a proof of p as input, yields a proof of 0 = 1 as output” (where you can replace 0 = 1 by any false statement you like). In classical logic, “p or not-p” is a truism called the law of the excluded middle, but this law ceases to valid in intuitionistic logic. In fact, rejecting the law of the excluded middle is central to the intuitionistic style of mathematics. Under this view, if you can’t prove that p is true and you can’t prove that not-p is true, then you have no business claiming to know that “p or not-p” is true. So if an irresolute Hamlet had said “Tomorrow I will either be or not-be,” an intuitionist would dispute the assertion, or at least dispute Hamlet’s grounds for claiming to know it.
In intuitionistic logic, not-not-p isn’t equivalent to p, but it is nonetheless the case that p implies not-not-p, though I’ll replace the word “implies” by the word “yields” to discourage you from interpreting the assertion classically. Let’s see why p yields not-not-p. Symbolically, the intuitionistic negation of p is written as p ⇒ ⊥, where ⊥ (think of it as T -for-truth turned upside down) signifies that-which-cannot-be-true (sometimes called “falsehood”) and p ⇒ q means “a proof of p yields a proof of q”. So to show that p yields not-not-p, we have to show that a proof of p yields a proof of (p ⇒ ⊥) ⇒ ⊥. Here we can use the intuitionistic version of a rule of classical logic called modus ponens that asserts that if p is true and p ⇒ q is true then q is true, or equivalently if p is true then (p ⇒ q) ⇒ q is true. The intuitionistic version says “If you’ve got a proof of p, then you have a procedure for turning every proof of p ⇒ q into a proof of q.” Replacing q by ⊥, we obtain the result we want.
Since p yields not-not-p for all p, we can replace p by not-p to obtain another intuitionistically valid assertion: not-p yields not-not-not-p. I claim that the reverse implication holds as well: namely, not-not-not-p yields not-p. To prove it (informally), assume we’re given not-not-not-p. We have to produce not-p, that is, we have to produce p ⇒ ⊥. To do this, it will suffice to take p as given and see if we can produce ⊥. That is, we’re in a situation where we’re given not-not-not-p and p and we want to produce ⊥ from those ingredients. But one paragraph back, we showed that p yields not-not-p, so for free we have a third ingredient, not-not-p, and our goal is to use not-not-not-p, p, and not-not-p to produce ⊥. It might seem we’re going off track, but we’re almost done. Take a look at the first and third of those three ingredients, namely not-not-not-p and not-not-p. The former is equivalent to not-not-p ⇒ ⊥, so we can combine it with not-not-p to conclude ⊥. So we’ve succeeded in showing that (not-not-not-p) ⇒ (not-p) even though, if your brain is like mine, you don’t quite fathom how the trick was done.
(This proof reminds me a bit of the opening of the novel “Good Omens”, in which three babies get switched around so much that I’m never able to make sense of it!)
Anyway, since we’ve shown that not-p implies not-not-not-p and vice versa, we’ve shown that not-p and not-not-not-p are logically equivalent to one another intuitionistically, so intuitionistic negation is another example of a thrice-equals-once operation.5
NETWORKS
Our last example comes from combinatorics, more specifically graph theory, but I’ll phrase it in terms of an application to the way people connect to one another in social networks. Picture a network in which nodes correspond to people and a link between two nodes indicates that the two linked people know each other. (I’m going to assume that if person a knows person b then person b knows person a.) Then for any set S of people in the network, we can define K(S) as the set of people who know everybody in S.
It’s easy to confuse K(S) with the set of people who know somebody in S, so let me give an example that should help dispel confusion.

Suppose our network consists of six people a, b, c, d, e, and f, as depicted above, where two nodes are joined by a link when the two corresponding people know each other. Let S be {b}, the set whose only element is b. Then K(S) consists of everyone that b knows, so K(S) consists of d and e. Now, between the two of them, d and e know a, b, and c, but b and c are the ones that both d and e know, so they’re the only ones included in K(K(S)). That is, K(K(S)) is {b,c}, not {a,b,c}. And what about K(K(K(S)))? You should check that it’s {d,e} – the same set as K(S).
I first encountered this K-operation as a math grad student in Berkeley when I was studying for my preliminary exams; one of the practice problems asked us (in graph-theory terms) to show that K(K(K(S))) equals K(S) regardless of the detail of the network. I figured that this problem must be a chestnut of sorts (albeit one that grew on a rather specialized tree) and that I’d run into it later in my career, but I never did. Thirty or so years later, I decided that such a nice problem deserved a wide audience and that if nobody had written an article about it yet, then that duty fell upon me. So I published an article called A Galois Connection in the Social Network (Mathematics Magazine, volume 85, pages 34-36) that described the problem, proved the result, and tied it in with some higher-brow mathematics. (The preceding figure is adapted from that article.)
The two-part theorem asserting that every element of K(K(K(S))) is an element of K(S) and that conversely every element of K(S) is an element of K(K(K(S))) can be expressed in the special case where S contains just a single person as “The people who know all the people who know all the people you know all are people you know, and the people you know all are people who know all the people who know all the people you know.” The exercise of singing these words to the tune of the jig “The Irish Washerwoman” is left to the musically-inclined reader.
SAME OR DIFFERENT?
Since this article is about situations in which “one equals three”, it’s only appropriate that the first example is actually the third example in disguise. The proof that K(K(K(S))) = K(S), which you can read in my Mathematics Magazine article, nowhere assumes that the network is finite. So in the geometric situation of the first example, imagine that lines are people and that two lines are friends precisely when they’re perpendicular. In this context, K is Perp, so K(K(K(S))) = K(S) implies Perp(Perp(Perp(S))) = Perp(S).
Is the second example somehow the same as the other two? I’ll leave it to readers to clarify this in the Comments section, since I’m already two days late in posting this blog.
Meanwhile, let me confess that an earlier version of this essay included a mistake. In point-set topology, there’s an operation called taking the exterior of a subset S of a topological space (let’s write it as Ext(S)), and for years I’ve been under the impression that Ext(Ext(Ext(S))) is always equal to Ext(S). But I eventually realized that this equality can fail. One thing that helped me figure this out was the Proof Wiki for Kuratowski’s Closure-Complement Problem which ChatGPT had helpfully steered me toward even while it was erroneously assuring me that Ext(Ext(Ext(S)))) is always equal to Ext(S)). This equality sometimes fails, but it’s always true that Ext(Ext(Ext(Ext(S)))) equals Ext(Ext(S)). So Ext is the sole example of “1+1+1+1 equals 1+1” that I’m aware of.
Speaking of web resources, you may have noticed that over the years I frequently refer readers of my blog to pertinent Wikipedia pages. The Wikimedia Foundation serves a vital role in the information ecosystem, so please support it at this time if you haven’t done so lately! Donations are tax-deductible and help keep the internet healthy.
ENDNOTES
#1. In quantum physics, if you’re dealing with the kind of object called a fermion, rotating the object by 180 degrees around an axis isn’t an involution but rotating it by 360 degrees is! This topic deserves, and will eventually have, a Mathematical Enchantments essay of its own, but until then, you can learn a little bit more from my past essays Band saw blades, bedbug zappers, rubber bands and me and Hamilton’s quaternions, or, the trouble with triples.
#2. The closest thing to a technical term describing such operations that I’m aware of is “idempotents of order three”.
#3. The oddball status of the number zero in these settings reminds me of the difficulty many of the students in my discrete math course have in absorbing the fact that zero is even. I explain why zero is even in the first week of class and return to the topic of how “even” and “odd” are defined throughout the semester, but still, come exam-time, I’ll get an email from a student or two saying “I keep forgetting, is zero even or odd?” There’s something in the mathematically untutored brain that resists classifying zero with 2,4,6,8,… because zero just seems so different from the positive even integers. The operations I’m talking about today don’t validate students’ tendencies to think zero might be odd, but they do validate students’ underlying feeling that zero is different.
#4. Another word for a closure operation is an “idempotent of order two”, usually just called an idempotent for short.
#5. For more on intuitionistic triple-negation, see the Stackexchange discussion of triple negation in intuitionistic logic.