How to think about the paradox of self-referential systems when thinking about cognition, language, engineered systems, and physics
Self-referential paradoxes
I don’t want to spend too much time getting into the details of examples but perhaps you’ve heard of Godel’s incomplete theorem, Tarski’s update to that, Tupper’s self-referential formula (equation that graphs its own formula), or even the Liar’s Paradox. These are all mathematical self-reference setups. For instance, Godel and Tarski created math languages which can or attempted to describe itself (and then ran into problems, and then concluded a system can’t contain its own truth predicate).
We can consider self-reference examples from the metaphysical world such as an example of a person looking into a future crystal ball, seeing themselves looking into a future crystal ball, etc. In this case, Novikov self-consistency, Hawking’s ‘chronology protection conjecture’ (or, undoubtedly, dozens of other proposed rules with proper noun labels), essentially say the solution is bringing in constraints of time, observation, or allowed realities to avoid the apparent paradoxes.
Or we can ignore math proofs and metaphysics, and just consider the ubiquitous example of human language itself which is an endless network of self-references (words defined by other words) with no grounding.
With these examples in mind, the summary for this post is to say the ‘fundamental limitations’ or ‘paradoxes’ of self-reference dissolve simply by properly tracking what’s actually being referenced. That is, self-reference requires a representation of the thing, not the thing itself. In other words, don’t treat the map as the territory. I’ll explain further below.
Computer science intuition
I may be mistaken (having never taken formal CS coursework) but it seems that most CS-trained workers (e.g. software engineers) I interact with more quickly grasp this intuition — I suspect because they physically observe the process of self-reference as being load-bearing. In other words, if you write a recursive function, the memory of the computer is taxed by the depth/path distance of recursion leaving no confusion about self-reference involving “one” object.
However, when it comes to new frameworks (such as AI evaluation frameworks), engineers can slip into the same errors that mathematicians, linguists, and metaphysicists make, which I argue is a conflation of levels of abstraction. In this case, if you have metrics for a system you are building/monitoring/optimizing, then another system (‘System B’) which automatically tries to produce those metrics (for System A), and then a third system which tries to optimize System B, etc — often, ‘evaluation frameworks’ and ‘meta-evaluatory metrics’ are sloppily conflated and collapsed in terminology.
The term “levels” work fine for a project, but I would like to establish the pattern of a closed network of nodes instead — if for nothing else, to at least unify the language around cognition, physical reality, language, and other areas. From a reference point, the term ‘levels’ may be fine as a shortcut. Even the term ‘ground level’ or ‘ground truth’, but I like the term ‘node’ over level for clarity, to get rid of the notion of absolute ordering (such as in human language where words define other words with no ‘ground’ set of words).
I will add one more metaphor here.
Infinite hallway of mirrors
You’ve probably done this before — open your bathroom cabinet mirror to reflect and produce an endless hallway effect between your main mirror and the cabinet mirror. How does this not blow up your part of spacetime or infinitely produce/consume energy (or whatever paradox you want to inject here)?
It’s simple. Its not actually infinite. There’s finite resolution of the mirrors, and even reality itself. Although I’m sure there’s a more sophisticated answer with regards to the angle of incidence of the mirrors, etc, but that distracts from my metaphor.
My point (at least one of them) is that the image is not a full copy of the universe inside the mirror. In this metaphor, that may seem obvious to the reader. However, in metaphysics, or even theoretical conjectures of cybernetics or psychology modelling, the concept that a ‘a system cannot contain a complete model of itself’ is used to prove a crystal ball would be ‘logically’ (and therefore, ‘fundamentally’) impossible:
- map cannot be large as the territory
- predictor cannot predict its own output before producing it
- storage requirement of modelling X, needing as much information as X contains, negating X fitting inside X
- etc
Any decent engineer would realize these are scope and resolution issues that can be handled by representational reduction or estimation. Undoubtedly, you (or your Roomba) can predict your own output before producing it — all without proving its sentience or a complete meta-version of itself exists. In case my point is confusing, I’m saying that estimations and models can be a reduced/compressed pattern of the system (whatever it is), and is, in a sense, an ‘image.’
What I think eventually solves many of these paradoxes is to realize every ‘node’ is an resolution-limited image, including whichever one we happen to be grounded/referenced in currently within the network of nodes.
While I cannot say anything definitive about metaphysics1, I find this pattern to be helpful when organizing thoughts on human cognition, artificial cognition, human language, programming languages, and pop-science-presented mathematical paradoxes and movies about time-travelling paradoxes.
Back to Tarski & Godel
I’m realizing now perhaps I should have set this up better but my point is that the mathematician-linguists conclude a ‘metalanguage’ is required to describe the ‘language’ — that is, the language/system set up by Godel cannot define a predicate for itself within itself. I’m merely pointing out that this new language should be treated as a connected node, not an elevated hierarchical ‘metalanguage.’ This grants more flexibility as we add more ‘metalanguages’ or even stratify a ‘level’ of language into stratified subgroups or clusters of words.
To try to make this clearer, a graph structure of nodes negates the need for us to define hierarchy and only needs us to define relationships between words, or clustered subgroups of words. I would be genuinely curious as to exploring what that looks like in our language but lets keep focused for this post on the high level and useful patterns.2
Similarly, if we take this pattern to an ‘observer observing itself’ — the Godel/Tarski setup requires (I’m aware they weren’t applying this to metaphysics but I’m simply pointing at the consistent patterns) one of the observers has to become a ‘meta-observer’, etc. Or consider in the language case, we can quickly run into an issue where three languages reference each other — which is the hierarchically dominant one? Their way of thinking (forget the academic formulations) would insist one need be the ‘base’ or the ‘top’ one.
There are more additions to this line of work since the early 1900s such as Turing, Rosser, Kripke, etc. I think the line of work keeps showing that systems can never be perfectly complete and perfectly consistent. In other words, at least with mathematical proof languages (and probably with other types of systems), I think they would still say: Systems with self references cannot fully describe their own semantics or truth, from within.
To mathematicians hoping to ‘absolutely’ prove a mathematical system as true and complete (or even the possibility of one), using math proofs themselves as the tool, this seems to be a disappointing blow to them. To many of us with a certain kind of intuition, this type of attempt failing seems blindingly obvious. However, there’s more to take away other than a criticism of an absolutist attempt; rather, I think we can assemble a specific collection of detailed patterns regarding these systems of language, cognition, and self-reference.
Rough framework
I am half-journaling this out, probably after ingesting a recent combination of bad ‘panpsychist’ theories on ‘conscious observers’ in my feed, flipping through a book on math paradoxes, and an engineering problem at work that started with unclear abstraction definitions, but roughly, for now, I would cut through all of these with this list:
- Self-reference is always cross-reference. As soon as a part of the system or object is serving a new role (including being observed or described), it is necessarily a new node in order to serve that role. Computer scientists often understand this implicitly but its often not kept distinct in many academic fields and postulations and new proposed systems. This principle dissolves many of these paradoxes. 3
- Networks don’t require a ground reference. Language, cognition, physics — none of these may need a foundational layer that isn’t a node in the network: words define words, models model models, timepoints constraint timepoints. Self-supporting networks, not a stack.
- Also, ‘ground’ or ‘base’ is a chosen reference frame, not ontological. We can pick a node and call it fundamental, but that’s a relativity/bounded perspective, because we can pick other nodes and consider its view.
- Resolution limits is how closed loops can be finite. Our ‘infinite’ hallways of mirrors doesn’t contain a universe many times larger than our own, nor does a system predicting itself, or a system monitoring another system, or an observer watching another observer in a separate universe — require complete description or blow up in a paradox or is doomed to infinite regress.
- There may be other properties needed for convergence or coherence of a particular system but the above one solves a lot of proposed paradoxes. Poorly done self-reference imports infinity but there other ways infinity can be (unnecessarily) imported (such as assumptions about infinite richness of a particular node).
Node conflation (or “level” conflation)… or referential collapse…. or maybe non-stratified references (? I’m still trying to wordsmith this one) produces a lot of confusion, bugs, and paradoxes. Don’t treat distinct nodes as identical or demand a ground that isn’t needed. For real world projects, we may need to start at a grounded reference frame and summarize similar nodes into descriptive groupings, but still keep this pattern in the back of your mind as not to get stuck and then wonder how escape is possible.
.
.
.
1Although I’ve always found the retrocausality option to be the most satisfying to me as to the solution of Bell’s inequality, even though my amateur reading of the field makes me vaguely aware that retrocausality, non-locality, and superdeterminism may appear identically to us, and potentially irrelevant. But just as a way for my mind to grasp it, I always found that one the most appealing when I think through scenarios. If you essentially assume computation/updates are occurring outside our own experience moment, potentially updating future moments — in essence, abandon our reference frame of time — one view of it can look like a simulation converging on a solution as it continually gets perturbed from any or all points in time. Finally, to continue this pattern further for the metaphysical crystal ball setup, the ‘original’ observer (or the ‘current’ timepoint) may also, too, be an ‘image’ or having a reduced representational summary — within a larger network of observers or moments computing based on their nodal relationships. This is beyond the scope of this post but it seems to resolve the paradoxes I read about.
2It would be interesting to take an organization of human language, perhaps by a modern LLM or otherwise, and attempt to define the nodal relationships (perhaps thresholding it into a discrete logic or fuzzy logic relationships), in order to see the level or amount of “self-consistency.” In other words, assuming language isn’t bifurcated into actual islands (although more densely connected subnetworks surely exist), we clearly do not have a meta-language describing another language. Given that, we can show a relative ‘completeness’ of a system, that, by principle, should have a trade-off in self-description. To what extent the system “self-describes” itself might be interesting (within its structure), as well as the level of ‘paradoxes’ or the failures in logical coherence as the full nodes are forcibly traced (path length) and potentially the nodal relationship adjustments/rules that can reduce this. My point isn’t that our language is fatally flawed, but more to try to improve the representation of self-referential systems and the way we attempt to engineer them when artificial (not natural like language or human cognition). This will be more relevant in the future as automated systems are explicitly formed to be self-referenced and their evolution is directed by us.
3As an example, this principle dissolves the Liar’s Paradox. In my view, the Liar’s Paradox (“This statement is false.”) should treat the statement and its self-referenced evaluation as separate, perhaps multiple nodes. As far as I can search, despite it being a 2000 year old problem, the essential responses are: (1) Kripke would say ‘some sentences are neither true nor false’, or (2) a paraconsistent logic view would say its ‘both true and false’. Instead, I would say you simply define Node A as the statement, Node B as the evaluation of Node A, and Node C as the evaluation of Node B. Then, there’s no paradox (e.g. B: True, C: False; or B: False, C: True). Not only that, you are left with cleaner descriptions [“evaluation of the statement is false” and “the evaluation of the evaluation is true”]. This occurs because I abandon the assumption of a ‘single’ answer to multiple questions. While, perhaps, calling the question malformed. There are probably other angles on this but that’s what immediately occurs to me. I don’t think this is original pattern on my part but a pattern inherently done by our minds within the context of language, psychology, etc all the time and likely missed when we think explicitly.