Latex

Sunday, 9 August 2020

The ontology of God's game

 In this post I want to discuss a sort of view that I am sympathetic about and I think helps us understand concepts such as truth, objectivity, properties and realness. I call this analogy "God's game" and I hope that this analogy will help us better understand various issues. I also want to discuss some issues I think there are with this analogy in particular with social concepts.

 Before I formally describe God's game, I want to discuss some important claims that I believe in that I hope to explain using the analogy.

1) Truth as some kind of correspondence to a mind independant reality.

2) The ability to characterise 'real' and 'unreal' properties, in particular things like Gender, Race.

3) To understand what it means to have objects and properties.

4) To understand what it means for a property to be formally reductive or supervenient on other properties.

5) To understand how we can have abstract properties that cannot be directly experienced by any existing agent.

6) The concept of meta-agents

7) The concept of property extentionality and extenional oracles.

 I think these are very much non trivial ideas to express and spread across various areas of epistemology, metaphysics, logic, truth and so on.  

As in various religions, God is often thought to be some omniscient and omnipotent entity. The nature of God is very much distinct from not only us as humans but also other entities such as animals or trees. It is first useful to consider the possibility that such a God genuinely exists, that such a God has full power to create various entities and also that such a God has full knowledge over everything in God's universe. 

Now take that exact possibility and imagine instead that we exist in some kind of video game and that 'God' is instead the almighty game designer that has full view of the entire game.

Let us now take a minor aside to a basic concept in objective orientated programming. A programmer can write constructors that are basically a formulaic way for constructing objects with various properties. The programmer can create an object and has the full view of the properties that the object has. For example, we can imagine the game designer writing a 'human' constructor to create a 'Jesus' object with a height property of say 175cm. The programmer can view the property by doing something like Print(Jesus.height).

We can therefore imagine that our game designer is such a programmer who can freely construct different objects. These objects will be the various entities of our game and will include things like people, animals, chairs and so on. Each entity will be its own object and will contain various properties. The game designer can pick out any object and see its various properties.

Now we can think about truth as a how we correspond our game state to truth. In programming speak we can think of this as a unit test. We write something like "assert Jesus.height == 175". What this does is it queries the 'height' property of the 'Jesus' object and checks if it is equal to 175cm. If it equal, then our assertion will come out as true. If not it will come out as false.

We can think about facts as these kinds of assertion statements. A fact makes a claim about reality, which is then queried against the game state to see if it is true or false.

It is important to note that I have said nothing so far about what objects exist and what properties exist. The game designer will of course know because they are a meta-agent, they exist outside the game and they are not an object of the game. With our concepts so far we can now discuss what it means for an object to be real and for a property to be real.

An object is real if it corresponds to an object in the game. Properties are things that are had by an object. However there will often be common property types that are shared by many objects. For example, we might expect all human objects to possess the property type of 'height' but potentially possess different values. We can query whether a property is a real if there exists an object that has the property. This is particularly important for the more controversial properties such as gender. We're saying that 'male' and 'female' are 'real' if and only if there exists an object that has one of these properties assigned to it. Note that the property assignment is done by the game designer only. It's 'real' because the game agrees that it is.

Truth and realness all correspond to the game state. Furthermore, truth and reality are very much mind independant concepts. They are theoretically verified by querying the game state using some kind of assert statement. Note however that this does not require any sort of 'thinking' on behalf of any of the agents in the game. The agents in the game can all think one thing, but the truth is exactly what the game state says. 

OBJECTS WITH FREE WILL

Let us extend God's game further where the game designer allows the objects in their game the freedom to do various things. The objects always live within the confines of the game but can choose to do whatever they wish within the game, as long as they follow the programmatically defined rules. For example, the game designer may create concepts such as gravity. Human objects will need to follow the game rules and thus will be unable to fly unless they develop new things.

Humans (and other objects) can manipulate various objects that exist within God's game. They can take trees to create chairs, kill animals to make food and so on. This a good point to note an objection - how does this object conversion work? Does a cow object somehow become a meat object upon death? 

Now Human's are also able - to some extent - view the properties of other objects. For example, they can broadly detect rocks from trees, short from tall, water from salt. Human's can also build upon existing properties to create new properties. For example we might say that an object that contains the property of 'male', 'adult' and 'unmarried' will also have the property of 'bachelor'. This bachelor property we might say is a 'reductively real' property. The game designer might never have thought of it but it is full understood in terms of properties that the game designer has understood.

Let us consider now one of the more controversial properties. E.g. let's consider now 'race'. We know that the property type 'race' is real if and only if there exists an object that actually has a property with the 'race' property type. This can be directly queried against the game state. Suppose however that there is no 'race' property type in the game. We can now consider whether 'race' is 'reductively real' which means it can be reduced to properties that we do understand in our game state.