Platonists, Conceptualists, and Synthetists


In the Introduction to Consequences of Pragmatism, Richard Rorty wrote of Platonists, Positivists, and Pragmatists.

In my philosophical interactions over the years, I see the contrasts as being Platonists, Conceptualists, and Synthetists.

Synthetism (in philosophy)

There is synthetism as a movement in art [wikipedia:synthesiism], and there have been proposals for a Synthetic Philosophy [ wikipedia:herbert_spencer] [philosophynow], but philosophical synthetism comes from the perspective of the synthetic sciences: synthetic biology, synthetic materials, synthetic intelligence (which stands in contrast to artificial intelligence), computational matter. In Synthetism, the abstract (code) and the physical (matter) are synthetized.


Platonists believe that there is an external, etermal reality in addition to the material world. Mathematical Platonists, for example, believe in an immaterial, independent world of mathematical objects. Conceptualists hold “that universals exist only within the mind and have no external or substantial reality” [thefreedictionary:conceptualism]. But still there is a latency of Platonism in Conceptualists: They tend to think that logic and mathematics are “content-free” – that such subjects are independent of the material world and refer to immaterial things.

Synthetists (as materialists) do not believe in platonistic or mentalistic worlds, and that even logic itself is a synthetic enterprise, adapting to various domain-specific material contexts. [unconventiona_logics].

(The Materialist view of Conceptualism is it’s a bit like Schrödinger’s cat [S’s_cat]: Is Platonism alive or dead?)

What about infinite entities, like the “complete” set of natural numbers? For the Platonists, they “real”ly exist in an immaterial realm. For the Conceptualists, they exist, but in the “mind” (and are not material somehow – how could they be?). For the Synthetists they do not exist – unless they ironically do! (e.g. if there is the possibility for physical hypercomputers to exist.) The default for Synthetists is that infinite entities are Fictional entities [sep:fictionalism-math].
cf. “The Meaning of Pure Mathematics” (Jan Mycielski) [jstor:30227216].

Synthetists are prone to view mathematics as a combination of theory, computer-based proofs, and computer-based experiments.

Synthetists are aligned with materialists and pragmatists (“How did we ever get the notion of the mind as something distinct from the body? Why did this bad idea enter our culture?”
– Richard Rorty [rorty_2005].

Codicalism is Synthetism – with emphasis on the programatic aspect of the synthesis of code and matter.


Philip Thrift


Computational Matter


Reservoir Computing with a Chaotic Circuit

It is argued that many natural systems perform some form of “intrinsic” computation.

Reservoir Computing has been highlighted as a promising methodology to perform computation in dynamical systems. This makes Reservoir Computing particularly interesting for exploiting physical systems directly as computing substrates, where the computation happens “for free” in the rich physical domain.


Computational Matter: Evolving Computational Solutions in Materials


Computational Matter (Springer, 2018)

This book is concerned with computation in materio, harnessing the physical properties of materials in order to execute algorithms. It offers an overview of the field, covering four main areas of interest: theory, practice, applications and implications. Each chapter synthesizes current understanding by deliberately bringing together researchers across a collection of related research projects.

The book is useful for graduate students, researchers in the field, and the general scientific reader who is interested in inherently interdisciplinary research at the intersections of computer science, biology, chemistry, physics, engineering and mathematics.

cf. Compilation and Synthesis for Embedded Reconfigurable Systems: An Aspect-Oriented Approach; Review: Physical Computation: A Mechanistic Account (Gualtiero Piccinini)


Computational matter is catter (code|matter).


Philip Thrift


σCP – Stochastic Concurrent Prolog


a preliminary specification


σCP is defined more formally here, updating and revising its preliminary definition in Mirror, mirror.

The syntax and terminology follows that presented in

The Family of Concurrent Logic Programming Languages
Ehud Shapiro
ACM Computing Surveys, Vol. 21, No. 3, September 1989
[pdf] [pdf-a]

cf. [Wikipedia:Concurrent_logic_programming]

There is one major change from the “Edinburgh syntax” defined in the above paper (which will be referred to as CLPL): All logical variables in σCP must begin with an underscore (‘_’). So _X is a logical variable, but X is a function symbol or predicate. As usual, _ by itself is the anonymous logical variable.

With that notational change, σCP begins with the language FCP(?) [section 3.8, CLPL]. “FCP(?) assumes two types of variables, writable (ordinary) variables and read-only variables, and uses read-only unification, which is an extension of ordinary unification, to unify terms containing read-only variables.”

FCP stands for “Flat Concurrent Prolog”: “In a flat language, a process can perform only a simple computation, specified by a conjunction of atoms with primitive predicates, before making a committed nondeterministic choice” [Introduction, CLPL]. σCP is a flat language. (The possibility of extending σCP to include FCP(:,?) [section 3.9, CLPL] is a possibility. In that case the language would be referred to as σCP(:), since ? is already included in σCP.)

Where σCP extends the syntax of FCP(?) is by the introduction of assigning probabilities [cf.
Stochastic Prolog] to clauses:

A :- G | P / B.

where P is a number or a read-only variable.

The read-only variable, like _P?. is assumed to have the value of a number if that clause is selected.

The semantics of stochastic clauses is as follows: Given a goal A, the set of clauses that can reduce A is { A1 :- G1 | p1 / B1, A2 :- G2 | p2 / B2, …}. The ps are the numbers or read-only variables that have achieved a numerical value. (The goal cannot be reduced until all clauses for the A predicate have a probability assignment.) They act as weights: A clause is selected stochastically – after the head A and guard G succeed for that clause – based on the weights: sum the weights and normalize to get a probability). (in the case where the ‘/’ symbol is not there, assume that that clause gets assigned the maximum weight of the other clauses. If there is no ‘/’ for any clause that predicate, assume equal probabilities.)

Builtins: uniform(_X) unifies _X with a value in [0.0,1.0] with uniform distribution. boolean(_X) unifies _X with 0 or 1 with equal distribution.



From Mirror, mirror, assigning probabilities to the hidden variables (states) in the Ypiaria example:


% This is equivalent to
%     yes_or_no(Y) :- 0.5 / true.
%     yes_or_no(N) :- 0.5 / true.

genes(_S1,_S2,_S3) :- yes_or_no(_S1), yes_or_no(_S2), yes_or_no(_S2).


% A query question(_Q) binds _Q to 1, 2, or 3 with equal probability.

prob(_S,_S,_,1,2) :- 0.01 / true.
prob(_S,_,_S,1,3) :- 0.01 / true.
prob(_S,_S,_,2,1) :- 0.01 / true.
prob(_,_S,_S,2,3) :- 0.01 / true.
prob(_S,_,_S,3,1) :- 0.01 / true.
prob(_,_S,_S,3,2) :- 0.01 / true.
prob(_,_S2,_S3,1,1) :- _S2 != _S3 | 0.0158 / true.
prob(_S1,_,_S3,2,2) :- _S1 != _S3 | 0.0158 / true.
prob(_S1,_S2,_,3,3) :- _S1 != _S2 | 0.0158 / true.

state(_S1,_S2,_S3,_Aq,_Bq) :- 
   question(_Aq), question(_Bq), 


σCP has the following dynamic features:

The syntax { term1, term2, … } constructs a bundle of terms (like a set). Bundle is a builtin datatype.

There are the basic predicates for creating bundles:
1. add(_Term,_Bundle,_NewBundle)
2. remove(_Term,_Bundle,_NewBundle)
3. get(_Bundle,_N,_Term)

σCP becomes dynamic with these predicates:
1. assert(_BundleOfClauses, _Asserted)
2. retract(_BundleOfClauses, _Retracted)
3. spawn(_BundleOfTerms,_Completed)

Spawns a swarm of processes from a bundle of terms.

A clause is a term of the form

(Head :- Guard | Probability* / Body)

* a number or a read-only variable

_Asserted is bound to true when all assertions are completed. Likewise for _Retracted. _Completed is bound to true when all terms (spawed as processes are finished.

The builtin makeID(_ID) makes a new identifier.


Define σ_unify (from Mirror, mirror) in σCP:

Let D = { x[1]/p[1], …, x[n]/p[n] }. A bundle B of clauses is created via a σCP predicate

dist2clauses(_ID, _D,_B)

with terms

(outcome(_ID, x[i]) :- p[i] / true)

_ID is a unique identifier. Define

σ_unify (_X,_ID,_C?) :- outcome(_ID?,_X).

Then when processes makeID(_ID), dist2clauses(_ID?,_D,_B), assert(_B,_C) have run, any goal σ_unify (_X,_ID,_C) will bind _X to a random element of D.

More examples coming … (including the path_integral).

In the σCP / Reflective Path Integral formulation, stochastic unification (σ-unify) – selecting one clause from a bundle of clauses -corresponds to “wave-function collapse”.


Philip Thrift


Synthetic pancomputationalism


“Pancomputationalism is an idealist notion that the whole world is a vast computation, with information as the essential substrate of nature.” [1]; c.f. [2], [3]. Critics of pancomputationalism are not impressed [4].

In contrast to information-substrate platonic pancomputationalism, in synthetic pancomputationalism (or material pancomputationalism), matter is the essential substrate of nature, and computation is of the natural computational [5] kind.

While platonic pancomputationalism is philosophically detached from the material world, synthetic pancomputationalism is in the realm of maker culture [6].


Philip Thrift


Taking stock


This site’s first post is dated April 10, 2015, so it’s coming up on 3 years. (There was a hiatus of 2 years — 2016-17 — so it’s really 1 year with 70 posts.) Here is what I think sums it up:

  • The cosmos is made of catter.
    (catter = symbiosis of code and matter)
    This is the philosophy of caterialism.

    (I speculated on whether Catwoman was a Caterialist.)

  • Caterialism is how we understand the cosmos.
    Existentialism is how we understand ourselves.

    (I proposed Codicalism = Caterialism+Existentialism.)

  • There’s a domain-specific language (DSL) for that.

    (Code theorists look for DSLs in virtually all domains.)

  • Molecular compilers are coming.

    (And maybe molecular decompilers as well.)


A sidenote: There have been some recent articles about brain “uploading”, or freezing the brain (neuropreservation) for a future uploading to a (conventional) supercomputer. But such a scenario is only half-baked at best. A simulation is not a synthesis. Assuming we can molecularly decompile brains into neurobiological programs, their execution on conventional supercomputers is not real: They will not experience consciousness. The only possibility for real existence is to have a molecular compiler compile them back into bio-materials. (Although the possibility exists that substituting other materials could have surprising results.)

Philip Thrift


Not conscious of mind


To me, consciousness and mind are not the same kinds of things (whatever confusion many, including philosophers, have caused aside). Consciousness is physical. Mind is platonistic. (Rorty in Philosophy and the Mirror of Nature wrote about Persons Without Minds, not Persons Without Consciousnesses.) To be a “consciousness is real” physicalist means that “consciousness talk” is OK but “mind talk” isn’t.

How did we ever get the notion of the mind as something distinct from the body? Why did this bad idea enter our culture?
— Richard Rorty (2007)

What would be an approach to consciousness. Begin with “Consciousness as a State of Matter” ( – Tegmark’s Mathematical Universe Hypothesis is “Platonism on steroids”, but even some form of panpsychism is better than Platonism – or some other physics language. But then one must then add formal biochemical and neurobiological language.

In the end though, you need a biocompiler.


Philip Thrift