# Systems and Abstractions

My previous post was a bit of a mess, and I’m starting to think it’s because I put that topic too early in the sequence. This post (and possibly the next couple, we’ll see) should have come first. Anyways.

Abstractions are a key part of systems theory. Recalling our base terminology for systems, an abstraction is a way of talking about collections of elements as single entities. The glider from our trusty example of Conway’s Life is a perfect example of this. From the pure systems-level view of Life, there exists nothing but the grid of cells. However, the glider abstraction lets us talk about a particular set of cells in a particular pattern (there’s that word again) that exhibits a particular behaviour.

It’s interesting (and important) to note that gliders exhibit their own, higher-level behaviour that can be expressed in rules without apparent reference to the underlying system rules: they cycle through a set of four states, and move diagonally by one cell each time they complete a cycle. The underlying system has no concept of movement, cells simply turn on and off – but we say that the gliders move, nonetheless.

Now consider a Life setup that consists of a couple-dozen gliders scattered about, and nothing else (all other cells are “off”). What does this resemble? Another system! Except instead of talking about cells as elements, with the property of location and being on or off, we talk about gliders as elements with the property of location, state, and moving in a direction. But it’s the same system. We say the latter, by grouping the elements of the former, is an abstraction on top of it.

However, there’s a catch; what happens in our shiny new abstract system if two gliders collide? The simple rules above say nothing about collision, so they just sort of cross over each other and keep going, but of course reality is different.  The underlying system doesn’t know about gliders, and so following the “real” rules of cell life and death, the gliders may disappear entirely or form some other pattern (depending on the precise nature of the collision). It is here where the abstraction breaks down; it lets us hide the messy details of cell manipulation and deal with higher-level gliders, but there’s a situation in which that simplicity doesn’t track and the abstraction is wrong.

(If you’re familiar with information theory then there’s all sorts of neat stuff we can say at this point about the informational content and rule complexity of abstractions versus the underlying system etc, but it’s not strictly necessary. Fun math though.)

In this case we call the glider-abstraction an incomplete system; it is a system that matches the underlying reality to a point, but not perfectly. The base system of cells is, naturally, called a complete system.