console.blog()

a "technical" "blog" by Eric Zheng

An Exposition of Godel's Theorem
Summary: the best way to have great ideas is to be unoriginal

As some who know me in-person might know, I’ve recently been (very slowly) making my way through Douglas Hofstadter’s famous book Godel, Escher, Bach: An Eternal Golden Braid. The book was actually first recommended to me by my eighth grade geometry teacher (Mr. John Vallo), but I never actually bought a copy until I came to Pittsburgh last semester. So far, I have mixed feelings about the book in general, but I’ve really enjoyed the informal proof of Godel’s first incompletness theorem that is sprinkled in various sections throughout the book.

Because of this, I’ve decided to “collect” what I consider the various key parts of the proof and present them together in one document. I hope that this effort serves to consolidate my own knowledge, give a condensed summary of what Hofstadter so carefully develops over several hundred pages, and display some new pretty CSS that I wrote. This is the actual exposition that’s up on my main website. You’ll notice that I posted this as an entry under an “essays” directory, because I hope to write more such expositions in the future.

An interesting thing that happened while I was writing this: I started out using MathML to typeset all of the mathematics. Since I mostly use Firefox at home, I was oblivious to the fact that Firefox is actually the only major browser that supports MathML, even though it is part of the HTML5 standard. I considered just using MathJax for convenience, but I personally do not like to invoke the complexity of Javascript when I do not particularly need it. I then wanted to use LaTeX, rendered to DVI and SVG, but decided that my formulae were simple enough that Unicode (with a nice font) would suffice.

It saddens me that there isn’t a good way to present mathematics on the web right now, but I guess this makes sense. Typesetting mathematics is quite a tricky affair; it is difficult to capture both the semantic (e.g. MathML) and display (e.g. LaTeX) properties of an equation.

On an unrelated note: not that I expect anyone to even read this exposition in the first place, but one thing that I’m proud of is that it displays properly in a text-based browser! Ever since coming to China (at least this time around), one of my criteria for judging the quality of a website has been how well it plays with a text browser.

On a second unrelated note: I actually have a few posts from the second half of 2019 that I still need to finish/clean up before posting. (These are, hopefully, actually substantive posts, quite unlike the one you’re reading right now.) I will post them when I get around to it, which depends strongly on how I want to spend the last week of my winter break.