Useful or inevitable? Emergentism versus dualism

If sentience is useful, it should leave traces: matter behaving in ways physics alone does not predict.

Author
Manu Herrán
Code
gaiabasic-projects/useful-or-inevitable
Status
Concept and simulation design
Started at
Sentience Research
Open draft. This project is being developed in the open. The text is incomplete and the code uses the planned GaiaBasic API, so it will change. Comments and collaboration are welcome on GitHub.

The question

Within an emergentist view, there are two very different ways to understand sentience:

  • Sentience is inevitable. It is a by-product of certain physical processes, like the noise of an aircraft engine. It is real, but it does not keep the plane in the air. Evolution cannot select for it, because it does nothing.
  • Sentience is useful. It changes what organisms do. Then evolution can select for it, but there is a price: somewhere, matter must behave in ways our physics does not predict.

The second option has consequences that could, in principle, be detected.

Approach

The simulation does not have to be built and run to be useful. The first goal is to design it, explain it clearly, and ask scientists and philosophers what they expect. Their answers show which view they really hold, often without having noticed.

A real experiment could use three kinds of substrate: a living body, isolated neural tissue, or a computer. Treating the three equally is what the project calls ontological antisubstratism: no substrate is assumed to be special in advance.

Design in GaiaBasic

Agents follow programmed rules driven by pleasure and pain. If experience is causal, it can push agents to act against their programmed rules. GaiaBasic counts these "rule breaks" and measures whether sentience is selected for.

import gaiabasic as gb

for causal in (False, True):
    w = gb.World(f"causal={causal}", seed=3)
    w.ontology  = gb.Dualism(gb.Matter, gb.Experience)
    w.sentience = gb.Emergentism(causal=causal)
    w.populate(gb.species.Mouse, n=500,
               rules=[gb.rules.ApproachPleasure(), gb.rules.AvoidPain()])
    r = w.run(steps=30_000)
    print(causal, r.rule_breaks.count, r.selection_pressure("sentience"))

Caveats

If panpsychism is true, the method may not work: real anomalies caused by experience could be mistaken for ordinary physics, because experience would be everywhere and part of what we already call physical.

Status

Concept and simulation design. Next step: implement the required GaiaBasic components and publish the code and results here.

Related: Short version in Examples · Concepts · Documentation.