2,464 karma · joined July 25, 2010
https://tali.link
https://twitter.com/taliesinb
Having been on this journey too, I provide this reassurance for those on the edge of quitting: trust in your superego. Your superego is always there, always watching, always asking: "is this what you should be doing?". When you are working on someone else's project, doing something you don't want to, it is easy to ignore this inner voice, because in a way it is not your own. Procrastination, and stagnation, are natural when your job isn't your dream. But when you're on your own dime, things feel very different.
It is a mistake to extrapolate your tendency to procrastinate from the world of work to that of a free agent: with no immediate constraints it is much easier to recognize and slip out of those peculiar knots of irrational behavior that tend to trap smart people with unsatisfying jobs. But on the other hand, you will be forced to confront the terrifying choice of what to actually want! This is terrifying because, in a way, it is the most important choice you'll ever make.
I worked at a company writing mathematical software for 8 years. The work was interesting, but I kept feeling there was a deeper way of thinking about some particular topic I was working on (e.g. data science, array programming, visualization, deep learning). Unfortunately, writing production code didn't leave me the time and energy to pursue these "deeper truths". Thinking deeply takes a lot of time!
It was a hugely difficult decision, but in 2018 I quit, without much of a plan. I attended some summer schools in different things, taught at some other summer schools, started reading papers and watching lectures on youtube about things that interested me. I trained with a friend to get a job as research engineer at DeepMind, but when it came time to apply, I worried I'd repeat the same pattern as before if I got the job. So I got cold feet.
The second decision, even more difficult, was to trust my instincts that I could learn topics and work on my own proto-ideas independently without the imprimatur of a PhD program or industrial lab. I had saved money, and I had enough runway for a couple years.
I have roughly 3 ideas in me that I need to formalize -- or die trying (meaning run out of money). I have cute names for them: hyperbooks, algebraic arrays, and discrete geometry. I'm working on the last one right now [1].
My inspiration was people like Andrew Kelley (author of Zig), and Rich Hickey (author of Clojure). They just did the things they believed in, worked hard, and have contributed something useful and novel to the world. Of course, I don't know if what I'm working on will be useful to others, but I have reason to be hopeful.
If one of my ideas succeeds, I'll be able to find a way to make a living off of it somehow. If they all fail, I'll have learned an enormous amount, had an adventure, and I can still go back to the ordinary career path.
In the end, the fundamental question was: "do I believe in an idea enough to pay my own salary to work on it?" Realizing I could honestly answer "yes" was a profound inflection point in my life.
It turns out orbifolds have an application in music theory. Orbifolds are a kind of generalization of a continuous manifold [0]. The mathematician Tymoczko (and others) used orbifolds to describe the abstract geometry of musical chords, in which the Möbius strip is the geometry of the dyad. The work was published in Science [1], and is quite short and readable, but is also summarized in a short article by the AMS [2].
[0]: https://en.wikipedia.org/wiki/Orbifold
[1]: https://dmitri.mycpanel.princeton.edu/files/publications/sci...
[2]: https://www.ams.org/publicoutreach/math-in-the-media/mmarc-1...
But I know think a more accurate summary would be "C was designed at a time when computer architecture had not yet consolidated, and it suffers for it, leaving you with impendence mismatch between language guarantees and hardware semantics, costing both performance and safety". It seems you need a heuristic model of compiler behavior under different optimization levels to actually achieve predictable machine behavior, really the opposite of deep control!
If we are imagining a language that could stand in the place of C and deliver on that advertised promise, I would think Zig (when stable and self-hosted), not Rust. Also, it's clear to anyone following Zig that it is just plain fun! The language reference is quite entertaining, for example. And Zig Showtime is a great YT channel.
Wildberger's has a gentle introduction to this [0], though you'll have to tolerate his idiosyncratic notation ("polynumbers" instead of "polynomials")
A more sophisticated next step would be Richard Borcherd's video [1] on them as part of his series on Galois theory. Airdropping into the middle of that series might be a bit confusing, hopefully an enticement to watch the whole thing from the beginning, and well worth it since Galois theory is a historically important and rich vein of mathematics.
You know, it's bizarre, I recently pursued a similar approach, attempting to derive quadratic kinetic energy of an automaton controlled by a computer program (it used a circular tape to decide whether to move left or right). I set up a coarse-groaning, identifying energy with information, well, negentropy of the state of the tape, and arrived at similar results: higher energy = fewer microstates, in other words, there are fewer programs that move at the speed of light than at some slower speed. Which makes sense! There is only one tape that tells the automaton to move right at every step. Toffoli says exactly this: "A low-energy state is 'cheap' because it is 'common', there are so many ways to achieve it". Conservation of energy is exactly microscopic reversibility! What could be cleaner?
That whole approach is on the shelf for now, because I first want to develop a discrete version of contact, and thence symplectic geometry, since that will provide the mathematical formalism to express a kind of "discrete classical physics", rather than just a single toy model.
Anyway, I'm beyond grateful for this reference!
As for how non-local entanglement can occur, I'll just offer my current speculation, having spent about a year working on this kind of approach. You'll have to give up SR in its traditional sense. There will be a preferred reference frame, which is the rule application order that the automata uses in any particular history. The challenge becomes to explain why it is not observable and you have approximate Lorentz covariance. I think this will be less hard than one imagines -- even in Feynman's lectures you see explanations of SR that involve an aether (or a global frame if you prefer) and clocks defined by light bouncing between mirrors moving in this aether. Of course all physical laws have to be covariant, and explaining how this happens requires you to know how the physical laws are "microphysically". But the graph itself in graph-automata models is a good candidate for an ether, with particles being e.g. topological defects. Somehow covariance must reflect how a dynamical account of defect behavior changes as one foliates rule application order, mysterious but not inconceivable.
Now, entanglement: one imagines entanglement is implemented by long-range connections, which in graph-type models could take many forms. This is a kind of discrete version of the "ER = EPR" proposal. But they will have to be such a limited form of connection that they do not permit signaling, and I think they way they can do this is via some sort of knot-theoretic braiding. Only be comparing measurement outcomes classically will it be possible to deduce the way the braiding was effected by measurement and confirm you had e.g. a GHZ state.
Now, QM is more than just entanglement, but in the words of Jaynes: "QM is a peculiar mixture describing in part realities of Nature, in part incomplete human information about Nature - all scrambled up by Heisenberg and Bohr into an omelette that nobody has seen how to unscramble." When scrambled, all the ingredients look inextricably connected. I think the unscrambling will seem beyond hope until one has the exact recipe to recreate the omelette.
Yes.
> One application of these might be to resolve the meaning of probabilities under the many-worlds interpretation...
There's some ways to go before we Hilbert spaces, operator algebras, and the like, but yes, the idea would be that some path counting procedure would be used to derive the Born rule. It would be great to bridge with Carroll's self-locating uncertainty paper [0]
> Under the section titled "Observers, Reference Frames and Emergent Laws" in this article, you can see some branches merging again in that first graph, so perhaps the probabilities of the Born rule are due to parallel computations that merge in this way...
Right!
As for the stuff I'm actively working on: even if it is successful, and uniquely suited to solve some particular problem, I'd imagine it would take at least a few years to be actively applied in the right places -- and it might end up being me helping to apply it!
If you look back at for example graph theory, it was explored on the pure mathematics and computer science side for many decades before it spawned e.g. network science and got applied in sociology, economics, etc.
So, yeah, don't hold your breath! If you'd prefer not to read any blog posts heralding XYZ as the next big thing before XYZ has already led to a concrete breakthrough, I think that's a totally fair. I myself am quite happy to work quietly on things until there is a satisfying and complete application, but Stephen isn't like that. Both stances have pros and cons.
What's promising about TEGs (and their incidence hypergraph, the rewrite hypergraph) is that they offer a clean methodology to decompose the behavior of a non-deterministic automaton into its causally independent parts. We're still trying to understand how to think about them, but the most promising approach seems to use the lens of (modular) representation theory, which gives us a rich mathematical toolkit to work with.
If this methodology works, there will be possibility to represent many kinds of systems in disparate fields, ranging from distributed computation to physics to biology to machine learning, in the common language of TEGs and their representations. Of course it may turn out to be merely a recasting of older ideas. In particular the Krohn-Rhodes theorem [1], categorical Petri nets [2], and the GNS construction [3] seem like they might be describing the same or an analogous procedure.
I hope to soon be describing this approach in full detail using quiver geometry [4].
[0]: https://github.com/maxitg/SetReplace/blob/master/Research/Lo...
[1]: https://www.wikiwand.com/en/Krohn–Rhodes_theory
[2]: https://arxiv.org/abs/2101.04238
Some parts of it are quite flexible, like using Mathematica stylesheets to separate style and content for particular mathematical forms and change them globally to find the most ergonomic thing, with Katex that matches the mathematica (though I have to manually maintain that correspondence).
Probably the cleanest examples of where visualization makes things very clear is explaining the groupoid structure of paths [1], and how to generate lattice quivers [2].
But I also enjoy some of the aesthetic qualities of the sections on coverings [3] (intricate), vertex colorings [4] (very colorful!), toroidal lattices [5], and products of quivers [6]. The last in particular involves trying to understand products from both an algebraic and geometric perspective, and 3D visualization is especially helpful there, giving intuition for how a certain product slices off hexagonal pieces of a hypercube.
[1] https://quivergeometry.net/qg/paths/
[2] https://quivergeometry.net/qg/lattice-quivers/
[3] https://quivergeometry.net/qg/covers/
[4] https://quivergeometry.net/qg/colorings/