My career centered on software engineering and a significant part was as a coder, someone who wrote computer code all day. And my primary employers were financial services firms. So I was doing very abstract work for firms that traded in abstractions or even abstractions of abstractions. I was very happy doing that work.
As a coder you must create and name many things. Since the names of arbitrary labels you can call them what you will. One colleague named them after his girlfriends. But if you are serious about your craft you try very hard to give them meaningful names so the inevitable maintenance engineer who must read your code has a clue what is going on. Some will be explicit references to some physical or logical objects in the business. But often they are temporary things which are fleeting in the processing and only have an internal meaning.
I was shocked one day to have my client talk about a record we had not previously spoken of. And in his processing of that record he needed to calculate and record a value. It was exactly the data item I had named the day before. This correspondence between the naming of a data structure in code with a temporary value in the business processing was an epiphany of how the programming can actually foretell what may happen in the real world. It shouldn’t have surprised me that much in retrospect but I was young. It was my first inkling of what we now call a mirror world.
Thirty years later I was coding in a new style called object oriented. In this alternative paradigm of computer programming we speak of abstract data types and instantiation of objects of that type. As a computer geek I had learned enough to know how what I coded would be translated into instructions in the computer and I took a moment to ponder the philosophy of what i was doing. I need to drill into some engineering here.
To gloss over many details, when the computer executes the instruction to instantiate (create) the object, memory inside the machine must be set aside and it will represent that object. Sometimes that object may have an analog in the world like the status of a switch on the control board of a nuclear reactor. For obvious reasons a control system must maintain the correspondence between the state of that physical switch on the control board and the state of the object in memory. So for the second time I came across the concept of mirror world at the lowest level of physical memory.
There is a philosophical issue I must observe having to do with truth. The naive theory of truth in the world is called the correspondence theory of truth. It says that a proposition stated by someone is true when it corresponds to some state in the world. So in that sense my instantiated object can be said to be stating a true proposition when it claims the switch is on when the panel switch is actually in the on position and false otherwise.
The author David Gelernter wrote a book in 1993 called Mirror Worlds: or the Day Software Puts the Universe in a Shoebox…How It Will Happen and What It Will Mean. I can’t claim it was all that groundbreaking but it was a nice prediction of the many things that have come to pass and also an anticipation of what we now call metaverse.
I am not going to say that we are simulations in the machine as some do a la the Matrix. However it is easy to see how this theme comes up repeatedly when you try to research this technology and philosophy.