# Computably Uncountable

We are all familiar with Cantor’s diagonal argument that proves there exist infinite sets which are “larger” than the set of natural numbers. In this post I will show that we can express this argument in the form of a program, thus showing that there are countable sets which are “computably uncountable”.

I begin with the program itself:

type Cantor = Nat -> Bool

diagonal :: (Nat -> Cantor) -> Cantor
diagonal cs n = not (cs n n)


Cantor is “the cantor space”, the type of infinite sequences of booleans. We will call such an infinite sequence “a Cantor“. There are clearly infinitely many Cantors; e.g. take the range of this function which gives False at every position except the one specified:

unit :: Nat -> Cantor
unit m n = m == n


diagonal is (Georg) Cantor’s diagonal argument written as a program — it takes an alleged sequence of all Cantors, and returns a Cantor which does not occur in the sequence, by construction. This function shows by contradiction that we cannot put Cantors in 1 to 1 correspondence with naturals, and thus that there are more Cantors than there are naturals.

So how many Cantors are there? Since Nat -> Bool is a Haskell type — the type of computable functions from Nat to BoolCantors must be representable by programs. We can encode programs as numbers by treating their source code as base-128 numbers. Hence, there are no more Cantors than naturals, and so Cantors can be put into 1 to 1 correspondence with naturals.

Wait — what? There are more Cantors than Nats, but they both have the same size? Something is wrong. Indeed, in the process of this argument we have asserted both

1. “We cannot put Cantors in 1 to 1 correspondence with naturals”
2. Cantors can be put into 1 to 1 correspondence with naturals”

We clearly can’t have both.

### I

The erroneous statement is (2). It is undecidable whether a given program represents a Cantor. If the nth Cantor is ⊥ at n, then diagonal will fail: diagonal cs n = not (cs n n) = not ⊥ = ⊥. Because ⊥ is a fixed point of not, diagonal cannot return an element different from the one it was given. Thus for diagonal to work, we must require that Cantors be fully-defined — no infinite loops!

With this requirement, we can no longer put Cantors in 1 to 1 correspondence with the naturals, because we would have to solve the halting problem. It is not enough that the type of the term is a Cantor, it now must be fully defined for all inputs, and determining that given arbitrary source code is an undecidable problem.

### II

The erroneous statement is (1). Cantors are computable functions, so as we have argued, they have the same cardinality as the naturals. There are no more programs than numbers, so by the definition of equal cardinality we can put them in 1 to 1 correspondence with a function.

The problem with (1) occurs because diagonal takes as its first argument not an arbitrary sequence of Cantors, but a computable sequence of Cantors. If cs is not computable, then neither is diagonal cs (for we no longer have cs‘s source code with which to construct it), and Cantors are defined to be computable sequences. So diagonal fails to contradict our bijection.

### III

The erroneous statement is (2). Section II claims to put Cantors and naturals in 1 to 1 correspondence, but it is lying. Suppose Section II is formulated with respect to some axiom system A. If it were “telling the truth”, we would expect there to be some term f in the language of A such that for every fully defined Cantor program c, there is some natural number n such that we have $A \vdash f(\bar{n}) = \bar{c}$ (i.e. it is a theorem of A that f(1 + 1 + … + 1) = (source code of c)).

Let’s suppose we have written down the axioms of A into a Haskell program, and we have a (partial) function proofSearch :: Nat -> Cantor, which, given a number n, searches for theorems of the form $f(\bar{n}) = \bar{c}$ and compiles and returns the first such c it finds. In the case that there is no such statement, it just runs forever; similarly for the case that c fails to compile. Although cumbersome to write, I’m sure we agree that this is possible to write. If section II is not lying, then we expect that for every natural n, proofSearch n does in fact return a valid Cantor.

Now, let us return to familiar lands with a new program:

evidence :: Cantor
evidence = diagonal proofSearch


Oh my! If section II is the truth, then proofSearch is a total, computable function of type Nat -> Cantor, which we can pass to diagonal to find a Cantor that it missed! So it must have been lying, either (1) about its function f finding every possible Cantor or (2) about it actually possessing such a function (i.e. it “proved” that there is such a function, but it couldn’t actually represent it). In either case, it did not actually create a 1 to 1 correspondence between the naturals and Cantors.

### IV

Left as an exercise for the reader.

Which one is it really?

# What was the probability of that?

A group of college students bask in their crude weekly haven of Texas Hold’em poker. Amid the usual banter, they watch as one deals out the flop: a three of spades, a three of diamonds, and a three of clubs. The room falls silent and tensions are suspended as if the ground had fallen out from beneath the house. The highest card may win this hand, a pocket pair is almost golden, and everyone wonders if someone has the single remaining three. A round of timid betting ensues — a wrong step here could be very expensive. After the round completes, the fourth card is dealt onto the table: the three of hearts. The tensions are dropped as everyone laughs incredulously, and out of the laughter emerges “what’s the probability of that?”

One of the more mathematically adept players pulls out his phone and does a quick calculation: $\frac{4}{52}\frac{3}{51}\frac{2}{50}\frac{1}{49}$ — about 1 in 270,000. Everyone is wowed by the rarity of the event they just witnessed.

That is indeed the correct probability to get four consecutive threes from a deck of cards. But is that really the question here? Surely nearly the same response would have occurred if it had been four fours, or four nines. If it were four aces people would be even more astonished. The same response would have occurred if the cards had been four to a straight flush; e.g. the five through eight of spades. There are many such situations. “Four threes” is the most immediate pattern that we recognize as anomalous, but it is not the only anomalous pattern.

So what event is really being referred to by that? Those specific four cards had a 1 in 6.5 million chance of coming up in the order they did from a player’s perspective before the hand, and a 100% chance of coming up in the order they did from a perspective after the hand [some will note that I am using a Bayesian interpretation of probability at this point]. The probability of the specific real world event that occurred (including the orientations and temperatures of the cards, the reactions of the players, and the taste of Jake Danser’s bite of Chinese dinner 500 miles away), from the perspective of any of the players, is unbelievably small.

In situations where this question is asked, I always jokingly answer the question with “1”. Most of the time people laugh and let the question rest, but sometimes the conversation turns more serious. In this case I try (in all cases so far, in vain) to explain the plurality of perspective at play here. The “serious” answer I have for this question, doing my best to interpret the intended meaning of the statement while incorporating these issues, is a number I cannot calculate but that I can describe: it is the probability that the speaker would have been astonished by the event that occurred; essentially the probability that he would remark “what’s the probability of that?”. I think that is quite a bit higher than one in 270,000, so the event we witnessed was not as rare as the simple calculation would have us believe.

The dissonance of such situations points to a common simplistic view of probability: that events (in the colloquial sense) have probabilities. A distinction that is commonly understood (and commonly misunderstood) is that between frequentism, which talks about running an experiment a bunch of times and calculating the proportion of experiments that satisfied some criterion, and Bayesianism, which talks about the confidence one has in some property being true in terms of a subjective state of knowledge. This is a fascinatingly subtle distinction: they coincide on most but not all questions, and there is much argument about which one is “right” (I think that is a rather silly argument, as if a probability were something bestowed to us from nature). However, both of these views are calculating the probability of a property (a set of events) being true (happening), and both of these views rely on an assumption of prior information: the frequentists on the set-up of the experiment and the Bayesians on their prior state of knowledge about the world. The idea that an event has a single, objective probability says something very strong about the universe: that there is some essential, natural source of randomness (to dispel any quantum objections, I point to E.T. Jaynes’s critique of the view that the randomness in quantum theory is an essential property of nature). But even if there were some essential source of randomness, surely the universe is more determined than our probabilistic calculations assume: from the view of this universe, the deck cannot be uniformly shuffled after only seven shuffles because it knows how your hands and your brain work. So we were never talking about an essential, natural randomness.

In our normal use of probabilities, we don’t run into this problem because we are predicting the future: e.g. “what is the probability that Obama will be re-elected?”. We conceive of this as a single event, but it is actually a wide collection of events. Given some prior knowledge, this set of events has a definite probability. But we are inconsistent about how we treat future events and past events: past events are not collections — they happened, and they happened in exactly one way. From the perspective of now, the probability that it would happen any other way is zero. From the perspective of before the event, we are asking whether “it” would happen or not, but we are entirely unclear about what measurable property we mean by “it”. We mean something different when we refer to events in the future and events in the past.

In summary, probabilities are functions of (1) prior information and (2) a criterion for judging when it is to be considered true. Probability is meaningless to apply to a single event.

N.B. in probability theory, the word event is already defined to mean a set of outcomes. If you read this article with that definition in mind, you will have been very confused :-).

If this post helped you think more clearly about probability, show your appreciation and .

# Sentences and Paradigms

As our understanding progresses, what once were rigid distinctions tend to become blurred. Hence, I am fascinated by the pervasiveness and stability of the three programming language paradigms: imperative, functional (here I mean that word in the pure sense, not HOFs sense — Conal Elliott would probably have me call it denotational), and logical. Whole languages are beginning to blur their orientation, but specific solutions to problems are still typically classifiable along these lines nonetheless. We will see how the three are linked to forms human communication and the style of our discourse — and thus why these distinctions are so stable.

Each paradigm corresponds to a syntactic unit of language. The imperative, as the name suggests, corresponds to sentences in the imperative mood:

def bfs(predicate, root):
queue = Queue()
queue.add(root)             # First, add the root to the queue.
while not queue.empty():    # While the queue is not empty, do the following:
node = queue.dequeue()    #   Take a node off the queue.
if predicate(node):       #   If it satisfies the predictate,
return node           #     return it.
for n in node.children(): #   Otherwise,
queue.add(n)          #     add each of its children to the queue.


The program is written as a recipe, telling the computer what to do as if a servant. Note that, after qualifying phrases, each sentence begins with an action word in the imperative form, just as this sentence begins with “note”. The object-oriented aspect adds a sort of directorial role to the program, wherein the program is read not as the user telling the computer what to do, but the program telling objects in the program what to do. Sentences are still written in the imperative mood, they can now be directed: “queue, give me an element”, “handle, write down this line.”

But not every sentence in human discourse is imperative, for example this one. The logical captures sentences of relationship, such as:

captures(logical, relationships).


But perhaps we should see a more practical logical program as an example:

mirrors([], []).                  % The empty list mirrors itself.
mirrors([X|XS], L) :-             % [X|XS] mirrors L if
append(LS,[X],L),            %    LS and [X] compose L, and
mirrors(XS, LS).             %    XS mirrors LS.


The program is written as a set of assertions, building a model of its world up from nothing. To run this program, you ask it questions about the world:

?- mirrors(X, [1,2,3]).           % What mirrors [1,2,3]?
X = [3,2,1]


A great deal of human discourse falls into this category: propositional sentences. Most of the sentences in this post fall into that category. However, those familiar with Prolog will know that this is a poor implementation of mirrors (it is quadratic time), and would write it this way instead:

mirror([], R, R).         % The mirror of [] prepended to R is R
mirror([X|XS], Y, R) :-   % The mirror of [X|XS] prepended to Y is
mirror(XS, [X|Y], R). %   the mirror of XS prepended to [X|Y|.


In proper logical style, mirror expresses itself as propositional relationships, with the caveat that the only relationship is “is”. Code written this way, relating things by identity rather than propositionally, is actually characteristic of functional style:

mirror [] r = r           -- The mirror of [] prepended to r is r
mirror (x:xs) y =         -- The mirror of (x:xs) prepended to y is
mirror xs (x:y)       --   the mirror of xs prepended to (x:y)


The R in the Prolog code is only connecting together propositions so that we can express this idea in a functional way. The original mirrors predicate is quite unlike this; expressing it in Haskell requires more than a mindless transliteration (however there are still hints of a structural similarity, if a bit elusive).

But I claim that “is” is not the defining linguistic characteristic of functional programs. We could write a functional program with a single equals sign if we were so obfuscatedly-minded; the analogous claim is invalid for logical and imperative programs. The characteristic device of functional programming is the noun: functional programs do not give instructions or express relationships, they are interested in defining objects.

bfs children xs =               -- the BF traversal of xs is
xs ++                       -- xs itself appended to
bfs (concatMap children xs) -- the BF traversal of each of xs's children


The monad is typically used to express instructions as nouns:

main =                            -- the main program is the recipe which
getLine >>= \name ->          -- gets a line then
putStrLn \$ "Hello, " ++ name  -- puts "Hello, " prepended to that line


Haskell elites will object to me using IO as a prototypical example of a monad, but the claim is still valid; look at the words used to define monad actions: tell, ask, get, put, call. These are imperative words. This is not a sweeping generalization, however; for example, the constructors of Escardó’s search monad are nouns.

The following table summarizes the linguistic analogies:

 Paradigm Mechanism Example Imperative Imperative mood Put a piece of bread; put meat on top; put bread on top. Logical Propositional relationships Bread sandwiches meat. Functional Noun phrases Meat sandwiched by bread

Each of these paradigms is pretty good in its area. When we’re issuing commands in a functional language, we pretend we are using an imperative language; when we want to treat complex nouns (such as lists) in an imperative language, we are learning fall back on functional concepts to operate on them. When we are documenting our code or talking about types, we use logical ideas (typeclasses, generics).

The thing that makes me hubristically curious is the realization that these three categories hardly cover the mechanisms available in language. What else can we learn from human languages when expressing ourselves to computers?

This post has focused on the “content code” of the various paradigms. There is another kind of code (mostly in statically typed languages) that is interspersed with this, namely declarations:

class Player {...}
data Player = ...


I have not yet been able to find a good analogy for declarations in language; perhaps they introduce something like a proper noun. I will save this topic for another post.

# Relativism and Language

It is hard for me to imagine that so many people are so wrong. Sure, core beliefs go unexamined. Yes, we often unconsciously repeat taglines we have heard from those we respect instead of attempting to translate our true views. But I must admit I think of all people as essentially wanting to figure it out. Life, the universe, their meaning, how to make the world a better place. Some, who see the world as a competitive, dog-eat-dog place, want to figure it out because it will help them survive. Others, like me, who see the modern (Western — that is all I have direct experience with) world as an essentially benign place, just want to figure it out because of a innate curiosity (no doubt a result of past generations with the former motivation).

So when someone says something which strikes me as wrong, when I have the kneejerking impulse to correct them, this belief of mine kicks in and stops me. Oh my, it didn’t used to; I would happily correct the abundant wrongness in the world. After all, if people think the right way, they will do better for themselves and others. I can’t remember a time when I didn’t have this belief, however, but it has taken a while to trickle its way into my choice of actions.

All through my youth, I was told that I was smart (a pedagogically questionable practice). I didn’t buy it (I’ve always had a rebellious streak). What makes me so special? I wasn’t just born with smartness, I thought. At first this manifested as an individualistic self-righteousness: I must be smart because of the intelligent ways I chose to spend my youth (what? Trampoline, video games, and Power Rangers?). More recently it has manifested as a skepticism of the views of those who tell me I am smart: you only say that because I am articulating things you agree with, so the compliment is a way of affirming your own worldview. Those both seem naive to me now. I don’t know what I currently think about it, I will probably only be able to articulate that once I move to some other view.

I am still skeptical of any innate superiority (however not enough so to avoid writing this post in a way that comes across as advice). So when I stop myself from correcting a wrongness, what do I do? This is the relativism I’ve been talking about.

Words don’t have meaning; in a conversation, the speaker translates meaning into words, and then the listener translates the words into meaning. We have a soft social agreement about how words are used, and that gives rise to trends in our patterns of thought. But the possibility remains — and I use the word possibility only because of a timidness, I really think of it more as a high probability — that the meanings that I have assigned to the words when I hear them are different from the meanings that were used to form them. Indeed, it is unclear what is even meant by two people having the same thought. My brain is not likely to have the ability to represent the thought that produced the words, especially if I disagree with them.

The exercise, then, is this: try to represent those thoughts anyway. How can I think of these words so that the sentence becomes true? Not just slightly less false, but really true. I might have to temporarily reorient my value system; I might have to imagine I grew up in a religious family; I might have to picture the scary possible worlds that might result if the statement were false (that is, beyond the proportion of the consequences I actually predict, already thinking the statement is false). When I remember to do this, I am brought to a calm, understanding level, with few fiery arguments in sight. My contributions to these conversations are transformed into questions instead of assertions — not Socratic “let me lead you to the right answer” questions, but genuine “I want to understand you” questions.

And that is the essence of relativism to me. What you mean by your words is not what I mean by your words. Sentences are uttered with the concept of their truth in mind, and before blasting forth a correction, I first have to understand how they are true. And more often than not, my planned correction is dismantled and replaced by a connected friendship.

# Perspectives on Truth and Realism

Lately I have been considering myself a relativist. To cast away the kneejerks, I don’t consider all belief systems equally valid (with caveats1). Wikipedia sums it up nicely:

… that truth is always relative to some particular frame of reference, such as a language or a culture.

I have noticed an increase in my opposition to what I am currently calling “scientific realism” — the belief that discoveries made by science are true, and other things are false (basically just an incarnation of absolutism). Yesterday I had an impassioned argument (still in good fun, though) with my roommate about our differences in perception. I noticed my emotions firing up around this subject, a symptom begging me to analyze its cause. Humans get very emotional when their thoughts approach a shattering of a core belief, so I am curious if one is near.

This time, instead of a philosophical persuasive essay, I’m just going to write down some of my observations.

In the conversation with my roommate Monty (who I consider quite intelligent), mostly a battle over semantics, I found the following ensemble of his ideas to leave an impression on me:

1. Newtonian gravity is false, and General Relativity is true.
2. If he lived 200 years ago, Newtonian physics would be true.
3. One thing cannot be more true than another (except in the trivial case of one thing being true and the other false, of course).
4. General Relativity and The Standard Model, which are mathematically incompatible, can both be true at the same time.
5. He hasn’t yet seen any evidence that would suggest there are things that can’t eventually be explained by our current scientific ideas.

Taken together, these ideas are fascinating to me. They indicate a different definition of truth than the one I use, and I’m fascinated because I don’t have a concept that I could substitute for it. On surface interpretation, these statements seem inconsistent to me, so I am really curious about the concept from which they arise. (I am pretty sure (5) is just a fallacy though: what would such evidence look like?)

I have met others who claim that they do not have beliefs. I find this to be common among scientific realists. I wonder what definition of “belief” they use to be able to consider themselves devoid of it; so far when I have pried I am just evaded. There are two reasons I evade inquiries: (1) I am not taking the conversation seriously, which may be because it is threatening my beliefs, or other reasons; and (2) the inquiries are using words in ways that don’t have meaning to me, so I answer in riddles that bring out the dissonance2. I usually assume they are doing it because their beliefs are being threatened3; what makes me curious is the possibility that they are evading because of (2)4. Perhaps I am using “belief” incorrectly when asking that question.

Among Skeptics, there is another possible reason to avoid the word “belief”: because it is very close to “faith”, the buzzword of the enemy. Maybe they use the word “truth” to mean what I call “belief”… but then the idea that someone’s beliefs can be false would be nonsense.

I think most of my anti-realism comes from a desire to (at least give due diligence to) respect the belief systems of others. I think I may start considering “true” to be a value judgement (which, as an experiment, I am trying to avoid). I had a debate with a young earth creationist, a belief system I typically have a hard time respecting. After a long time, I think I heard an essential difference, when he said (paraphrasing): “I believe there is a God because I don’t want to live in a world without a God.” That indicates to me a different relationship to truth — that truth and desirability are related concepts — and opened to me the possibility of respecting his belief system a little more.

Dan Piponi made a brilliant comment on twitter during a conversation about realism: “I don’t think ‘reality’ means much. It’s just a placeholder to make the sentence grammatical.”

Notes

1 What exactly does a belief system being “valid” mean?

2 This will happen, for example, if you ask me whether I believe extra-terrestrial life exists, because I get hung up on the definition of “life”. People seem to acknowledge the subtlety of that word, but then keep using the word anyway as if the inability to define it is no big thing: “you know what I mean.” No, I actually don’t.

3 Probably because it confirms my superiority.

4 Possibly because it threatens my superiority.

# New Languages

It has been some time since I learned a new programming language. Perhaps Haskell has me so firmly entrenched in “desirable properties” that any new language I look at either looks like another Javascript (a decent language sullied by terrible syntax) or Smalltalk (a decent language sullied by terrible engineering). I completely admit that I have had opportunities to learn new languages that I have turned down because I didn’t find the language’s ideas aesthetically pleasing after reading about them for ten minutes. But all in all I have been unimpressed by new languages and haven’t felt inspired to learn them to the degree I would need to use them.

It has also been some time since I have been excited about programming. My readers are surely aware of this as the topics of this blog meander this way and that away from my expertise. I used to love seeking the elegant design, simmering 200 lines down into 40, hypothesizing about language features and module systems, imagining worlds in which all modern software was built upon my paradigm.

I think these two things are related. I am not sure which way the causation goes, or even if there is a causal relationship. But thinking back on my time as a programmer, the times when I was most productive I was learning: working in a new language or working in a new domain. I still think CodeCatalog is a great idea, in total a few hard weeks’ work, and I can’t convince myself to write another line of the damned thing. That’s because I know how it’s gonna go; I know what I have to do; there is no mystery to it.

What if, instead of twisting my arm and trying to force myself into “good behavior”, I embraced this aspect of myself? There has to be some beautiful experimental kernel to that project; there has to be some beautiful way to express it. And it is certainly possible, even likely, that the result won’t end up looking and feeling like StackOverflow or Google Whatever (beta).

So what?

Have I been so brainwashed by the business of software that I will abandon a project because I cannot inspire myself to bring it to business standards? I think it’s because we wanted to make money. It would be nice not to have to worry about paying rent, I admit, but not worth exchanging for the beauty of an inspired work of code.

Someone invent a beautiful web/database language. I mean beautiful and unique — not practical or productive or real-world or familiar or interoperable or scalable. I don’t care about those adjectives, those are for engineers.

# The Culture of Reason

I have heard the term “The Church of Reason” to refer to our modern disposition toward rationality and science. Some thinkers are upset by this analogy, claiming that rationality is fundamentally distinct from a religion. In some ways this is true: for instance, rationality does not entrust a single institution or treatise with control of its truth (though some sects — I mean branches — come very close to a blind trust of scientific consensus). However, I sometimes get the distinct impression of a further belief, however never explicitly stated, that logic and science are not just the latest way, but the way to discover truth.

A succinct criticism from within the logical discipline describes my thoughts well. I quote:

If I see a coin come up heads twenty times in a row, I’m going to use the power of induction to predict that the coin is biased towards heads. Induction tells me that, the more something has happened in the past, it’s more likely to continue to do so in the future. I trust induction because induction has worked for me before.

Somewhere out there in mind-space is someone who believes in anti-induction: each coin flip of heads convinces him that the coin is biased toward tails. Anti-induction tells him that, the more something has happened in the past, the less likely it is to do so in the future. If asked why he trusts anti-induction, he exclaims: “Because it’s never worked before!”

(Concept by Eliezer Yudkowsky, phrasing by Chronos) (EDIT: It appears that this concept is not Yudkowsky’s creation, but a ‘well-known’ joke in some circles, however I cannot locate its origin)

This delightful morsel is so much more than an idle curiosity to me. Please do not mistake me for taking the surface interpretation: I do not claim that induction and anti-induction are equally valuable. But the anti-induction hypothetical illuminates, in an entertaining way, that belief in induction is circular. Observe that our unwavering trust in logic rests upon induction.

In this modern age it is sometimes easy to forget that there was a time when most of humanity was deeply religious. Humans of every intellectual prowess saw “God did it” as a sound explanation (allow me to assume omnipotent monotheism for the sake of argument). Some theorized about how God thought, what he looked like (whether that was a legitimate question), what would appease him, what actions would cause him to create rain or not. Instead of conjuring thoughts of mockery, I would like the reader to put him or herself into one of those minds. You are not stupid; you are deeply immersed in a cultural belief system. It rains — you think back upon the actions of your town recently to try to determine why it must have done so; determining this is of the utmost importance. You may even engage in scientific practices, coming up with hypotheses and testing them: if I sing to one, but not both, of my children at night, the probability that God will be pleased is increased. But this science is based upon a faulty foundation: a whole host of different phenomena could be attributed to “God will be pleased”, and the method is not scientific by modern standards. It is still superstition. What I am putting forth is that the very process of modern science and reasoning may be considered superstition — or perhaps some yet-uninvented term to describe our primitive thinking — to the cultures of the future. Maybe, like the character above, what we are doing is analogous to the search for truth, but we’re missing the point.

But we can make predictions! I will grant that we can make better predictions than traditional religious belief systems used to. I am no scholar of religion, but I can at least imagine a tribe understanding that the fire spirit, who loves the taste of dry wood, will duplicate himself to any nearby dry wood. This makes a prediction as well (at the time of this understanding, it had not yet been observed that he would duplicate himself from Honto’s wood to Jumara’s wood). Nowadays we have only a more accurate idea of the spirits, and we call them by silly names like Boson and Gluon. (I would like to stress that we cannot yet predict anything perfectly. E. T. Jaynes argues that the stunningly accurate probabilistic results of quantum electrodynamics do not count as perfection; i.e. that interpreting the quantifiable uncertainty of its predictions as fundamental to nature rather than to the theory is a boneheaded arrogance.)

Speaking of quantum theory, in the last century we have come across physical laws with an unsettling interpretation problem. Quantum systems are defined in terms of measurement amplitudes, and measurement occurs when a quantum system interacts with a classical system. Of course, if quantum theory wishes to be foundational, the term “classical system” must refer to a mathematical interpretation of a system, not a specific, real system, for every system ought to be a quantum system. So now we are talking about the point of measurement being one interpretation interacting with another — we are speaking on the mathematical and the physical level at the same time. Philosophically, this is utter nonsense. A dominant viewpoint among physicists is that of instrumentalism, summarized by Feynman as “shut up and calculate”. In other words: our logical and intuitive explanations fail us, but the mathematics work out. We have stumbled upon a stunningly accurate mathematical theory with fuzzy, unintelligible edges; could this not indicate an impedance mismatch between our logic and reality? Electrons do not obey classical physics, though large ensembles of them converge on classical physics. Why should we assume nature obeys classical logic; perhaps only large ensembles of truths converge on classical logic? Indeed, the calculation structure of quantum amplitudes seems to be logic-esque, with rules at least for conjunction and disjunction. Maybe the barrier lies not in the transition to a classical system, but the transition to classical logic. Perhaps, if we could only think differently, there would be no barrier.

In order to be heard, I am arguing from a position that we just have the laws of logic slightly wrong, and that a successor would take the same form merely with different laws. I do not necessarily believe this — my inner mathematician wishes it, for it would be comfortable and familiar — but it is simply the most concrete way, the smallest step I can take, to cast doubt upon the logical absolute.

You and I are immersed in a culture of reason, just as many generations of humans before us were immersed in a culture of theism. I cannot simply show you an alternative way to see the world; I am as clouded by these conceptions as anyone of our time. I do not wish to replace your foundation, just erode it. I wish to illuminate the possibility that we may, still, be looking at clouds, and not at the stars.

In the midst of philosophizing, do you mind supporting my writing?

# ∃

So many philosophical pseudo-debates focus on the existence or non-existence of this or that “thing”. Pop-skepticism is at odds with most sects of Christianity about the existence of a God; many skeptics, somehow oblivious of the hypocrisy in which they engage, argue simultaneously that claims must be supported with evidence and that there must be no God. I engaged fleetingly with the university’s skeptics society in a debate about the existence of the electron, in which I argued that the electron was a mathematical tool that enjoyed the same level of existence as a number, and not so much existence as…

Fortunately for me, I did not have to complete the above thought, as the debate was on facebook so I was permitted not to respond once the level of abstraction exceeded me. Rather than the inevitable fate of a face-to-face debate on the subject — in which I would make a fool of myself for failing to possess a well-collected, self-consistent argument, my opponents permitting me to exit the arena now having failed to disrupt their conceptual status quo — the debate fizzled out, and they will probably not remember of their own volition that they had even engaged in it. It is all for the better that my medium has changed, since after some time spent meditating on the question, I have come across something I have not been able to distill into a snappy epigram.

To a “standard model” logical mind, and even to the working mathematician who has not studied logic, existence is a straightforward concept. One can ask whether a mathematical object exists with some property, and assume without argument that one is asking a reasonable question with a yes-or-no answer. However, in the world of mathematical logic — the only logical world whose paradoxes I can comfortably resolve — the notion of existence is rather more slippery. There are the standard objects which one can prove to exist from the axioms, and there are — or perhaps I should say, there are not — objects whose existence is contradictory. But there is a neglected middle class. These objects _____ whether or not you choose to exclude the middle.

The Twin Prime Conjecture (TPC), a famous question still open today in 2011, conjectures that there are infinitely many numbers p such that both p and p+2 are prime. One of these pairs is called a “twin prime”, for example 5 and 7, or 179 and 181. There are many who believe TPC is true, some who believe TPC is false, but among logicians (who crave this sort of result), many believe TPC is “independent of the axioms.” Let us explore the consequences of this latter belief. To be concrete (insofar as such a word can mean anything in such matters), let us suppose that TPC is independent of “ZFC”, the Zermelo Frankel axioms with the Axiom of Choice, the axioms of choice (no pun intended) for popular set theory.

It would be helpful to be reminded of what exactly ZFC is. Aside from the deep fantastic worlds of intuition inhabiting many mathematicians’ minds, it is merely a set of 9 statements about the world of sets. For example, “if two sets have the same members, then they are the same set”, and “given any set, you may form the subset of elements satisfying a particular property”. These are stated in rigorous, precise logical language, so by formal manipulation we can exclude the subtleties of meaning that would abound in any English presentation of these axioms. Logicians like to say that a proof is nothing more than a chain of formal logical sentences arranged according to some simple rules; this view has spread since the advent of programming languages and computerized mathematical assistants.

If TPC were true, then given any number, you could count up from that number and eventually reach a twin prime. If TPC were false, then there would be some number, call it L, above which it would not be possible to find any twin primes. However, since TPC is independent (because we have supposed it), then we know we cannot prove it either way. It may be true, or it may be false; whether there is a third option is too deep a philosophical question to explore here. We may be able to count up from any number and find a twin prime, but we will never be sure that we will not arrive at a point after which there are no more. Or there may in fact be an L above which there are no more, but we shall never be able to write L as a sequence of digits. Again, whether these two comprise all possibilities is not a matter capable of absolute resolution.

There can be no proof that L exists, so, like God to the skeptics, it must not exist. By their own standard, this conclusion is not justified, for, by our assumption, there is no evidence in favor of its nonexistence either. Indeed, we may safely believe in L; if a contradiction would arise from its use, then we could leverage that contradiction to provide a proof that there are infinitely many twin primes, thus TPC would have been provable. After centuries of cautious hypothesis of what would happen if L did exist, we may begin to treat L as any other number. As the ancient Greeks’ unease about the existence of irrational numbers has faded, so too would ours. The naturals would become: 1, 2, 3, 4, 5, … L, L+1, …. We will have answered questions about L, for example it is greater than one million, because have found twin primes greater than one million.

This all happens consistently with the proof that the set of natural numbers is made up of only the numbers 1, 2, 3, 4, 5, …, for that proof does not mean what we think it means. We cannot enumerate all the natural numbers in a theorem; that proof only states that the set of natural numbers is the smallest set made up of zero and successors of elements in that set. If we can actually find a twin prime above any number, but merely not know it, then we might claim L cannot be the successor of any element in this set. But this claim is false, because L is clearly the successor of L-1! L, whether or not or ___ it is one of the familiar numbers, manages to sneak its way into the smallest set containing zero and successors. It is not the set of numbers, but the language about numbers that can be extended by this independence of TPC, and L is not logically distinguishable from “regular” numbers. It is a symbolic phenomenon. But so, too, are the familiar numbers. The only difference is we have chosen to say that zero exists.

# My Lovely Delinquent

“I Am Unique,” he shouts in forceful desperation as the Church to Galileo. His thoughts deeper, more profound than those of unquestioning masses, so sayeth the Lord. He sees himself pushing the boundaries of social construction, tangling with sanity, becoming the unimaginable sage he thinks he is creating. Like me, he seeks a life like none other, a life with color and breath, without limits. He believes that he is distinguished by these young thoughts.

I have stolen when I had desires beyond my means. I have lied. I have felt the weight of regret. He steals things he does not desire that are within his means. He would happily lie. He feels little regret in the name of his experiment, which he calls “growth”. He is ashamed of me, and wishes to break free from my quiet, well-meaning shackles.

He gives expectations of him the finger, trying to release his ultimately inward-focused frustration. He screams with my closed mouth. He would have me explain himself if he were ever in a position of true compromise. I can’t help but feel his adolescent influence as I write.

But we are a team. We both want to be heard. When we both have one thing to say, he will be the one with the balls to say it. He’s the one who kisses the girl, he’s the one who sings at open mic, he’s the one who writes music and love letters, who drops my secure life plan to make us happy.

And now, he is asking for the keys to my car.

# Self-Deconstruction

I suspect those around me think I am losing my mind. They may be right — I mean, if I am right — and in that case I am not qualified to judge the rightness of either of us. Alright, enough of that, I had something I wanted to say.

Self-deconstruction is the phrase I use to describe why I think I think they see what I think they see. I have have been using that phrase being relatively certain it describes what I am doing, but not really knowing what it means. I had a rather vivid experience of it today after a bath, and I would like to give it as an example.

The lights were off, and I had stuffed my pants in front of the crack at the bottom of the door to prevent any light from leaking in. I could only feel whether my eyes were open or closed, sight was not a thing. I usually take a black bath to deeply relax or meditate. This time, it was a little too hot, and I was rather full of caffeine so my body had a natural affinity for being tense.

Squirming around in the tub, I had a little conversation with myself about whether I wanted to get out of the bath. It went something like this:

Self: Self, I would like to get out of the bath now.
Self: But you don’t feel like going to bed yet.
Self: Oh, hmm, you are right. Ok, I’ll stay here.

Self: Hey wait a minute! This is uncomfortable and I’m not enjoying this.
Self: But you still don’t feel like going to bed.
Self: Right… I get that… hmm how to resolve this.

Self: Hey wait a minute! Who said I have to go to bed if I get out?
Self: Well what are you going to do then?
Self: Hmm, I could, ummm… mmm….
Self: See?
Self: Wait, I don’t have to answer that. I’m just going to get out now.

After this argument I had been jolted into a place of self-conversation, just kind of describing why I was doing each thing I did. I unplugged the drain plug “because that’s what I do when I’m getting out of the bath”, and I up I stood, to Self’s disappointment. As the drain blurped the bathwater down, I pawed for the towel I had so consciously placed on top of the toilet, and began to dry myself off, “because I don’t want to get water on the floor, to be courteous.”

I am typically not a terribly courteous person. I’m often lost in my own world, oblivious of the existence of others. But I am aware that not everyone is like that. I get the impression that my roommate is very often thinking of how he is impacting people around him. In a moment of egotistical superiority-confirmation I thought “and some people get consumed by that.”

While I can be awfully egotistical for long periods of time without noticing, criticizing others is one of the things that always jolts my thought process out of its self-serving little world. I almost unconsciously catch myself and try to apply the criticism to myself. Thus:

I am trying not to be consumed by anything.
Nonsense, we are all consumed by something.
You just can’t see what it is.
One could say that being consumed by something, simultaneously being aware and accepting of that, is the definition of “living in alignment with yourself.”
But who said living in alignment with yourself is a desirable goal?
Because it makes you happy.
But who said being happy is a desirable goal?

And usually once I get to happiness the deconstruction stops and the usual motivators, the way I had for relating to the world, for measuring “how I am doing”, all that stuff falls apart and I have this wonderful feeling of blankness. Yes “wonderful”, shut up, I know.

Sometimes it goes into evolutionary ideas: happiness is a desirable goal because it reflects control and comfort, which attracts women because it used to help for raising healthy children. But that starts its own all-too-familiar chain of deconstruction about goals, free will, and the meaning and dynamics of reproduction. It’s similar to the above, and similarly I am eventually left with blankness.

Blankness is an, ehem, goal of meditation, but I seem to stumbling on it by accident over and over. Just little ones though, meditation still has a stronger effect.

But this deconstructive trend is popping up in many aspects of my life. I suspect it makes it very frustrating to argue or discuss with me, because I compulsively deconstruct the terms of the argument until I am not certain the thing we are arguing about has any meaning — or anything has any meaning for that matter. I have no idea what the other person’s experience of this is (aware that others’ ability to have experiences is one of my beliefs).

For now, I’m just basking in the liberation that this mental state is giving me. I seem to believe that it will end sometime and go back to “normal”, but I don’t really have any justification for that. I’ve been intentionally pushing the boundaries of conventional sanity, trying to experience the world in a unique way… and the other night I had the frightening sensation that it might be possible to succeed, losing touch with what others call reality. Now that I am on this path, can I stop? If I hold on to my conventional “realistic” worldview, I simply notice myself holding onto something that is not what it claims to be and deconstruct again.

Kind of cool, kind of scary, kind of … blank.