https://futureofcoding.org/ logo
#thinking-together
Title
# thinking-together
d

Daniel Buckmaster

08/25/2023, 12:57 AM
In Episode 66 there was a long discussion about an idea I've come to know as the reality of abstractions. I got that phrasing from David Deutsch in The Beginning Of Infinity. I've long wanted to write about this in connection to programming, where we talk a lot about "abstractions", but in a very different sense* to the way Deutsch does. In lieu of doing that (which sounds like a lot of work) I will just post some of my favourite Deutsch quotes about it.
Reductionism and holism are both mistakes. In reality, explanations do not form a hierarchy with the lowest level being the most fundamental. Rather, explanations at any level of emergence can be fundamental. Abstract entities are real, and can play a role in causing physical phenomena. Causation is itself such an abstraction.
When we use theories about emergent physical quantities to explain the behaviour of water in a kettle, we are using an abstraction - an ‘idealized’ model of the kettle that ignores most of its details - as an approximation to a real physical system. But when we use a computer to investigate prime numbers, we are doing the reverse: we are using the physical computer as an approximation to an abstract one which perfectly models prime numbers. Unlike any real computer, the latter never goes wrong, requires no maintenance, and has unlimited memory and unlimited time to run its program.
Abstractions are essential to a fuller explanation. You know that if your computer beats you at chess, it is really the program that has beaten you, not the silicon atoms or the computer as such. [Nor, I would add, the arrangements of pixels on the screen which symbolize knights, pawns, etc.] The abstract program is instantiated physically as a high-level behaviour of vast numbers of atoms, but the explanation of why it has beaten you cannot be expressed without also referring to the program in its own right. That program has also been instantiated, unchanged, in a long chain of different physical substrates, including neurons in the brains of the programmers and radio waves when you downloaded the program via wireless networking, and finally as states of long- and short-term memory banks in your computer. The specifics of that chain of instantiations may be relevant to explaining how the program reached you, but it is irrelevant to why it beat you: there, the content of the knowledge (in it, and in you) is the whole story. That story is an explanation that refers ineluctably to abstractions; and therefore those abstractions exist, and really do affect physical objects in the way required by the explanation.
To connect this to the content of the episode - I think all the different representations of a cube on a screen are "real". The parts that you might dismiss as not having an "effect on the world", like the data structures in RAM, or the textual representation stored on disk, are as unavoidably real at their own levels of abstraction. *Colloquially, I think working programmers use "abstraction" to mean things ranging from "I can ignore the details 'below' this point" to "I can compress this implementation into fewer syntax tokens". A contrary view from Dijkstra, which I think is closer to Deutsch's view, is abstraction as "a new semantic layer in which one can be absolutely precise".
i

Ivan Reese

08/25/2023, 1:02 AM
For one, this is lovely. Thank you! "explanations do not form a hierarchy" but they may feel like they do, and I think that feeling is more real than this whole non-hierarchics idea, and probably more real than whatever the feeling pertains to. (Yes, this is my attempt at philosophical humour. Sigh, sorry, carry on.)
d

Daniel Buckmaster

08/25/2023, 1:05 AM
To pirouette your humour into a serious point - I think that there are hierarchies, but usually many overlapping hierarchies. The hierarchy with feelings at the top (or bottom?) organises the world into one tree of explanations. A hierarchy with a different root produces a different tree.
k

Kartik Agaram

08/25/2023, 3:11 AM
See also Christopher Alexander's A City is not a Tree (whose punchline is that we should all deal with the complexity of lattices a lot more when we deal with the idealized spherical cows of hierarchies without overlapping parts).
d

Daniel Buckmaster

08/25/2023, 3:36 AM
For the human mind, the tree is the easiest vehicle for complex thoughts. But the city is not, cannot and must not be a tree. The city is a receptacle for life. If the receptacle severs the overlap of the strands of life within it, because it is a tree, it will be like a bowl full of razor blades on edge, ready to cut up whatever is entrusted to it. In such a receptacle life will be cut to pieces. If we make cities which are trees, they will cut our life within to pieces.
a

Andrew F

08/25/2023, 4:49 AM
Going just by the quotes, not having read Deutsch's book: he seems to lean really hard on the concept of "explanations" being important, and basically assumes that if something is useful or even essential for an explanation, that makes it "real". I think this is extremely wrong. Explanations are just another model, and all models are wrong. Even if you can't write in terms of fundamental particles how the x86 PC running Stockfish beat you at chess, that has no actual bearing on the ontology of abstractions. That's a statement about your own information processing ability, not about reality. One can imagine a superintelligence that can in some sense directly understand highly complex systems, enough to predict its outputs as well or better than the abstract view, without the need for intermediate abstractions (though it would certainly understand those too). More accessibly, imagine a system where humans can both directly understand it and describe it in abstract terms, and imagine how we would see an entity who can only handle the abstract description and concludes that it is equally real to the deeper one, even if, in fact, the abstraction is leaky. (the example stuck in my head is temperature vs individual particle velocities, but it's not great because it takes really weird circumstances to break temperature as an abstraction)
k

Konrad Hinsen

08/25/2023, 7:06 AM
A frequent confusion is to take strata as a sign of hierarchy. Many systems are layered, including systems of abstractions, but this doesn't imply that higher layers are or should be in control of lower layers. Interactions go both ways.
d

Daniel Buckmaster

08/25/2023, 7:06 AM
Explanations are just another model, and all models are wrong.
I think Deutsch would probably agree with this. The "beginning of infinity" in his book's title is referring to his fallibilist philosophy that our explanations and models will never fully capture the entirety of reality, that we will improve on them infinitely - that there is no upper bound on the creation of new knowledge. By "real" in the quotes above, I think one should read something like "our best current approximation of reality", not absolute. objective reality itself.
That's a statement about your own information processing ability, not about reality.
I think Deutsch's argument there is that even assuming you can model the entire operation of the computer (down to whatever most-granular level we are currently aware of) - even then, it would be an incomplete explanation, because it would not capture the higher-level abstractions that are real. "Chess" is as real an abstraction as "algebra". Temperature, not so much I think - it's a "rule of thumb" that works well locally, like Newton's laws. But the rules of chess work universally.
a

Alex Cruise

08/25/2023, 6:05 PM
I’ve had a bullshit microtheory rattling around in my head for a few years… It’s easy to say that some (“Playmobil”) things are smooth-surfaced modules that expose a limited number of abstractions, and other (“Lego”) things are more like assemblies whose compositional properties are not accidental but useful… But when you move up and down the layers of nesting, you find that these properties almost alternate … e.g. most people would agree with characterizing a smartphone as much more of a Playmobil thing than a Lego thing, but if you open it up, guess what, it’s composed of a bunch of specialized bits… Each of which is trying really hard to be a module, not a Lego thing
Drill down another layer, into say an IMU module, it’s an assemblage of a bunch of truly wild MEMS hacks that are not only invisible from the outside, but will break if exposed to atmosphere…
“a new semantic layer in which one can be absolutely precise”
+1; and also all models are wrong. some are useful 😉
Now it would be very remarkable if any system existing in the real world could be exactly represented by any simple model. However, cunningly chosen parsimonious models often do provide remarkably useful approximations. For example, the law PV = nRT relating pressure P, volume V and temperature T of an “ideal” gas via a constant R is not exactly true for any real gas, but it frequently provides a useful approximation and furthermore its structure is informative since it springs from a physical view of the behavior of gas molecules. For such a model there is no need to ask the question “Is the model true?“. If “truth” is to be the “whole truth” the answer must be “No”. The only question of interest is “Is the model illuminating and useful?“.
<https://www.youtube.com/watch?v=9X4frIQo7x0
|truly wild MEMS hacks>
The reason everything is built out of bits, not atoms, is that in the digital realm, abstractions actually work. mostly. sometimes. please.
a

Andrew F

08/25/2023, 6:47 PM
By "real" in the quotes above, I think one should read something like "our best current approximation of reality", not absolute. objective reality itself.
I can only interpret this as "by 'real' in the quotes above one should read 'definitely not real'". Once you've admitted "we don't understand reality, we only have our current best approximation", you've already reached the correct conclusion. Moving on from there to redefine "real" to something more conveniently accessible is not justified. IMO you continue to need separate terms for "real" and "current best understanding", and hey, both those existing terms do alright. You can't lose track of what you're optimizing your models toward, what you're measuring them against.
I think I'm prepared to endorse the idea that math and programming enable one to create abstractions that are equally real, in whatever (possibly multidimensional) way you want to grade reality/realness, to whatever they are defined in terms of.
d

Daniel Buckmaster

08/25/2023, 10:52 PM
@Andrew F I think that I've misled both you and myself by including the kettle example, and then reading "real" the way I did to make it fit with the rest of what's going on. After thinking through it again, I should emphasize that most of the things Deutsch is calling "real" through that chapter are more like "chess", "war", "Manhattan", "prime numbers" - not models or rules of thumb about the physical world. I think models and abstractions share similarities, but I'd hesitate to call a model "real" in the way I would call mathematics "real" - and I think your objection is to doing that? For example, it's not right to say that mathematics is "real" because it is our "current best approximation" ...of what? Nor is it right to call Manhattan "real" because it is a "current best approximation". And when programming, we often deal with both abstractions and models. The "cube" in the pod episode was an abstraction. "Customer" is an abstraction when writing a CRM, as are, IMO, many business rules. Their applicability or reach is more limited than mathematics, but within their own tiny worlds, I'd argue they're real.
a

Andrew F

08/25/2023, 11:42 PM
Wasn't I the one to bring up thermodynamics? Just looking for a simpler example than "war". :D I'm still not willing to give Manhattan the same status as fundamental fields (or whatever those end up being made of). Even to the extent the physical boundaries are sharply defined, they only have effect in a very fuzzy way mediated by human brains. Useful model, only approximately real. Math is a tricky case. We really want to believe that it exists outside our heads. I too feel the platonist urge. But the fact is the rules can be redefined whenever we want. Even "logic" only exists as a field of study because the rules are mutable: first order, higher order, linear, etc. It's hard to even call math an approximation in the same way "Manhattan" is. Math itself can't be measured against anything to verify it. I'm not sure at this point what you're calling a model vs an abstraction, but I don't think mathematics can be the same one as Manhattan/chess/war. I guess in my mind, when you start seriously asking about what's "real", I draw the line at fundamental fields (or whatever those end up being made of). If you're talking about math or software, I think you're asking an analogous but fundamentally different question, in an imaginary world where base reality is defined by the language implementation or something, so the answer is different too. You can do useful work there, but if you try to zoom out it collapses back into physics.
d

Daniel Buckmaster

08/26/2023, 5:26 AM
The kettle was briefly in my original post, I thought your reference to temperatures versus particle velocities was a continuation of that! I think we're past the point that I can argue from my own position - all the things I want to reply with are more Deutsch quotes and that is tiresome so I'll refrain. I highly recommend his book; it sounds like you'll have plenty to disagree with ;)
s

Stefan

08/26/2023, 7:23 AM
What is real is very much dependent on how you make sense of the world. Scientifically, realness seems to be related to truth. If you can make true statements about something, it feels more real than when the statements about it turn out to be false. Eventually, in pretty much any scientific discipline, including math or theoretical physics, you’ll bump into issues with modeling the real world, some of which you touched on above. It seems our hope of a completely objective external reality of which we just have to figure out its rules, is not achievable, either because formal systems cannot be powerful enough (incompleteness) or because models begin to face issues with observation itself (observer effect). Yes, incomplete models that assume independence from observers have turned out to be immensely useful and brought us scientific and then industrial revolutions. But they are ultimately still limited. So you could either try to figure this out and reconcile this (and at least one Nobel prize will be yours), or you’d have to open yourself up to the idea that realness is perhaps just a subjective experience you have, which in the knowledge category of belief in true propositions comes across as quite independent and universal, so you might feel the urge to object to its subjectivity for as long as you can. Maybe that sounds unscientific, but many different fields, including hardcore theoretical physics and quantum mechanics conclude that models of the world can’t just be independent of the observer, but need to include the observer within the model — and, boom, now you have to deal with consciousness and the mind/body problem. The word “real” seems so simple and clear and insignificant that all this metaphysical and philosophical depth seems unnecessary to unpack just to talk about things like models or abstraction, but look at how consistently we end up in debating definitions. There aren’t really statements about reality and then statements about your own processing ability. Every statement we make will necessarily be about both simultaneously.
w

wtaysom

08/26/2023, 9:12 AM
Hmm... the measurement problem. It's a big jump from quantum observer to conscious one, but it's a jump that plenty of physicists have been willing to make and then unmake later

https://www.youtube.com/watch?v=CT7SiRiqK-Q

.
s

Stefan

08/26/2023, 1:52 PM
Just judging from the video “make and then unmake later” doesn’t mean they realized they were wrong and corrected their mistake, but that it’s a lot more complicated. I admit that I jumped over a lot of complexity there, and I wasn’t even aware that there actually was an assumption of such a direct connection between quantum to conscious observer, and I’m not surprised that this didn’t hold for long. I only knew about some other, more complex… hehe… entanglement between the two. Bohm, Hoffmann, Penrose, Wolfram come to mind as names of people who had things to say about that, some of them quite recently. It seems the connection between the deepest foundations of physics and the mind are a very hot topic still and that is true for “both sides”, where psychologists and cognitive scientists and even AI researchers are running into issues with physics when they nerd hard about what consciousness could be. Well, you studied quantum mechanics and for sure know more about that than I ever will. I’d be interested to learn more, so please keep sending pointers. I wasn’t trying to explain the metaphysics, however (I’m not clever enough to do that), I’m mostly just trying to point out that the Cartesian idea of a mechanistic reality following universal rules aka truth that “just” needs to be discovered and understood is often still the prevalent folk theory that undergirds our discussions (for interesting reasons especially in tech), but is itself limited, profoundly challenged in many disciplines, and introduces all kinds of issues that we can only deal with properly by stepping out of this system. And there are other theories that allow us to do that — and I’m not talking about mystical or esoteric ones, but equally scientific ones — that offer at least some interesting ideas that we software people could benefit tremendously from learning about so we can stop running into the same issues over and over again.
b

Beni Cherniavsky-Paskin

08/29/2023, 11:21 AM
Hofstadter in Gödel, Esches, Bach had pretty similar arguments in a whole chapter on reductionism vs. holism. The leading example was "Aunt Hillary", a sentient entity that is physically an ant hill 🐜 where the ants and chemical signalling happen to implement rules isomorphic to some "symbol activation". He argues that while the ants are real, they hold little explanatory power for her thinking; the relashionships between symbols are more insightful, and those explanations won't care much if you replaced the ants with neurons, or a software model.
I loved that because (1) it gave useful meaning to mind/body dualism without dragging in religious/mystic axioms; (2) this philosophic idea is particularly clear & quantifiable to us programmers through the measure of portability. What would it actually take to swap one underlying platform for another?
w

wtaysom

08/30/2023, 7:55 AM
Aunt Hillary wasn't a Chinese ant hill by any chance?
d

Daniel Buckmaster

08/30/2023, 8:00 AM
Deutsch cites Hofstadter in the chapter I'm quoting from, extensively on the domino machine which sounds like a very similar concept.
b

Beni Cherniavsky-Paskin

08/31/2023, 8:27 PM
One interesting angle is porting vs. emulation. If I recompile my Go program for another CPU/OS, and it works with little modification, that proves the underlying instruction set or OS didn't matter much; the Go-level concepts (functions, interfaces, channels etc.), and OS concepts (files etc.) have a "reality of their own". On the other hand if I have a C game directly accessing IBM PC registers, and playing with interrupt vectors, I can still run without modifications on another CPU/OS inside an emulator like DOSBox - but that's different! The hardware and DOS/BIOS internals now do matter, and they still exist byte-for-byte in DOSBox, even if virtually. The C-level behavior hern cannot be understood other than by reductionism to assembly-level concepts. At least not all of it. Some parts probably have "abstract reality"... Ironically, if you look one layer above to the player's experience, that's usually well-insulated from the implementation. If you ask a player what game XYZ is, they'll probably talk of the game rules, strategies for winning, plot etc. -- and not a particular sequence of bytes on disk implementing those! (And they certainly won't care whether the implementation used abstract layers or strongly tangled with lower layers.) Well, unless you get into glitching/cheating/modding... which are things many gamers enjoy too :-)