What Lies In Between

x

The big idea is “messaging” […]. The Japanese have a small word – ma – for “that which is in between” – perhaps the nearest English equivalent is “interstitial”. The key in making great and growable systems is much more to design how its modules communicate rather than what their internal properties and behaviors should be.

— Alan Kay

Introduction

It’s common to think in terms of things which are considered primary, solid and property-laden.  Yet sometimes we can shift to thinking in terms of the relations between things.  When we do, we may open new vistas of generality, power and insight.  In fact, when we do this we often find that things are defined by their relations.

How do we accomplish this shift?  By stripping things of all their meaning and seeing what’s left.

Happiness

Compare the following:

  1. Happiness is the reason all things are sought and is the only thing sought for its own sake.
  2. DEFINITION OF HAPPINESS: The reason all things are sought and the only thing sought for its own sake.
  3. There is a thing that is the reason all things are sought and is the only thing sought for its own sake.

I can read #1 as a definition of happiness or as an assertion about the pre-defined term “happiness”.  If the latter, then how I react to #1 depends on how I understand happiness.  Is happiness pleasure? Is it a thought? Is it Eudomania? For instance, if my experiences of happiness involve grinning polyannas, then I may think happiness is a warm fuzzy feeling and would interpret #1 as a claim that life’s ultimate goal is the warm fuzzies with all other goals a means to that end.  I’d likely disagree with that.

#2 is a definition, but it requires I let go of my preconceived notions of happiness.  Is it that easy to abandon a lifetime of associations and emotional baggage?  Will I keep thinking “warm fuzzies” every time I see “happiness”, despite my best efforts?

#3 is abstract and thus avoids all associations.  I am now free to substitute any goal that satisfies its central claim.  Indeed, the very lack of content of its key term leaves me nothing to focus on but the central claim which consists of a two-fold relation:

  1. There is one goal in my life.
  2. Every other goal is a means to the end of that goal.

Whether I agree or disagree, my focus has undergone a radical shift. Compare this understanding with that of #1.  Is this even the same thing anymore?

Language

A common view of language is that words have precise meanings, and the ambiguous words are the exception.  Yet the opposite may be true — the most common words may be the most ambiguous. This then raises questions about how sentences get their meaning.

For example, take the following sentences:

  1. That knife on the counter is sharp. 
  2. We start the counter at 9 o’clock sharp. 
  3. That suit on the sales-clerk’s counter looks really sharp!

Each one uses “sharp” and “counter” differently (although “counter” in 1 & 3 are similar, but not identical).  These words only took their final meaning from being in a sentence — from being in relation to other words.

Axiomatics

Math seems to be about property-laden objects like numbers, but is this so?  A great deal of math consists of abstracting away all properties of objects and focusing on relationships. For example, take this:

5 + 2 = 2 + 5

It can be generalized as:

x + y = y + x

Or even:

x # y = y # x

Where x and y can be anything and # can be any operation.  Now the objects are meaningless (they’re place-holders for the relationship) and even the relationship has been abstracted to a meta-relationship (order-independence).  Now we can apply a variety of interpretations to the relation above.  For instance, if x and y are persons and # = likes, we can ask:

If x likes y, does it always follow that y likes x?

Or if x and y are destinations and # = reachable, then we can ask:

If x is reachable from y, does it always follow that y is reachable from x?

I can infer other relations and then draw out chains of consequences that follow from those relations.  These consequences can be useful in reasoning about any objects that satisfy the basic relations, which gives me variety of tools to deal with whole classes of objects I never encountered.  In fact, one could arguably claim that this is one reason why numbers are useful for representing things — they are markers in this relation and the things they represent are things whose structure satisfy key aspects of the basic relations asserted.

All this power comes because the things in the relations have been “reduced” to meaninglessness.

This is a taste of the axiomatic system, and a very readable overview is here

This project has been going on for over 2,000 years, starting with Geometry.  Geometry seems to be about points and lines, but is this so?  A major axiomatizer of geometry — David Hilbert– treated the basic terms of geometry as meaningless place-holders for the relationships which is what geometry was about.  In fact, regarding these objects, Hilbert said:

“we may as well be talking about chairs, coffee tables and beer mugs.”

Of course the challenge (like the 2nd definition of happiness above) was to go beyond the association of those words and their baggage. It’s hard, and Euclid Himself  (arguably the first axiomatizer of geometry) is said to have fallen into this trap with some of his proofs.

Do We Even Need the Place-Holders?

So if the things (often represented by variables) themselves are unimportant, and its the relationship among them that’s key, then do we even need to specify these things to begin with?  No, we don’t.

This is no idle exercise as two serious fields — math and programming — have developed variable-free systems.

On the math front, we have Combinatory Logic, which is well described by this pithy Wikipedia quote:

Combinatory logic was originally intended as a ‘pre-logic’ that would clarify the role of quantified variables in logic, essentially by eliminating them.

Combinatory Logic is powerful, and there are different variants (called “bases”), depending on the primitive functions defined and many — if not all — of these bases are Turing Complete.

To get an idea of how much can be accomplished, here’s an expression that finds prime numbers (using the Sieve of Erasthenes) written in the SKI Basis of Combinatory Logic.  I got it from this site. No, I haven’t even attempted to check it!

K(SII(S(K(S(S(K(SII(S(S(KS)(S(K(S(KS)))(S(K(S(S(KS)(SS(S(S(KS)K))(KK)))))(S(S(KS)(S(KK)(S(KS)(S(S(KS)(S(KK)(S(KS)(S(S(KS)(S(KK)(SII)))(K(SI(KK)))))))(K(S(K(S(S(KS)(S(K(SI))(S(KK)(S(K(S(S(KS)K)(S(S(KS)K)I)(S(SII)I(S(S(KS)K)I)(S(S(KS)K)))))(SI(K(KI)))))))))(S(KK)K)))))))(K(S(KK)(S(SI(K(S(S(S(S(SSK(SI(K(KI))))(K(S(S(KS)K)I(S(S(KS)K)(S(S(KS)K)I))(S(K(S(SI(K(KI)))))K)(KK))))(KK))(S(S(KS)(S(K(SI))(S(KK)(S(K(S(S(KS)K)))(SI(KK))))))(K(K(KI)))))(S(S(KS)(S(K(SI))(SS(SI)(KK))))(S(KK)(S(K(S(S(KS)K)))(SI(K(KI)))))))))(K(K(KI))))))))))(K(KI)))))(SI(KK)))))(S(K(S(K(S(K(S(SI(K(S(K(S(S(KS)K)I))(S(SII)I(S(S(KS)K)I)))))))K))))(S(S(KS)(S(KK)(SII)))(K(SI(K(KI)))))))(SII(S(K(S(S(KS)(S(K(S(S(SI(KK))(KI))))(SS(S(S(KS)(S(KK)(S(KS)(S(K(SI))K)))))(KK))))))(S(S(KS)(S(K(S(KS)))(S(K(S(KK)))(S(S(KS)(S(KK)(SII)))(K(S(S(KS)K)))))))(K(S(S(KS)(S(K(S(S(SI(KK))(KI))))(S(KK)(S(K(SII(S(K(S(S(KS)(S(K(S(K(S(S(KS)(S(KK)(S(KS)(S(K(SI))K))))(KK)))))(S(S(KS)(S(KK)(S(K(SI(KK)))(SI(KK)))))(K(SI(KK))))))))(S(S(KS)(S(K(S(KS)))(S(K(S(KK)))(S(S(KS)(S(KK)(SII)))(K(SI(K(KI))))))))(K(K(SI(K(KI)))))))))(S(K(SII))(S(K(S(K(SI(K(KI))))))(S(S(KS)(S(KK)(SI(K(S(K(S(SI(K(KI)))))K)))))(K(S(K(S(SI(KK))))(S(KK)(SII)))))))))))(K(SI(K(KI))))))))(S(S(KS)K)I)(SII(S(K(S(K(S(SI(K(KI)))))K))(SII)))))

Notice the lack of variables.  S,K, and I are the elements of the system and everything else is implicit.

This is widely considered the most friendly introduction to Combinatory Logic.

Here’s information on the SKI Basis, which appears to be the most popular Combinator Basis.

On the programming front, we have Tacit or Point-Free Programming, which is a style of programming without using variables. Some languages that are explicitly tacit are Factor and Forth.  What’s more, even some functional languages that use variables allow a point free style — like Haskell does.

Conclusion

This article was an attempt to encourage “relational” or “interstitial” thinking — looking at the relationships between things rather than the things themselves.

It’s hard not to wax philosophical about this.  Why is thinking about things so natural?  Is realty relational all the way down?  Is my happiness a nested series of relations with nothing at the root of it all? Is this true of my “self”?  Could my conceptions of self — the desire for something stable to hold on to — be at the root of this “object” thinking?

I’d love to hear what you think, and references to things I should read are always welcome!

 

Advertisements

2 thoughts on “What Lies In Between

  1. I had no idea there was such thing as “combinatory logic” or “variable-free programming!” I’m off to find out more about that right now. I’d tend to agree with you that all that matters is really the relationship between objects, especially in math, so it makes all the sense in the world to just get rid of variables. The fact that this stuff is Turing-complete makes it even more attractive. So I’ll just stop commenting and run to all of these sites you’ve been linking to…
    Thanks!

    1. My pleasure!

      Combinatory Logic (not to be confused with Combinatorial Logic) is also known as Combinatory Calculus. There’s some cross-pollination with functional programming as Haskell Curry worked on Combinatory Logic and his name was lent to what may be considered the canonical functional programming language (Haskell) and the method of partial function evaluation (Currying). Combinators too are a technique some people in functional programming circles try to exploit, and that all this was an attempt to find a foundation for mathematics makes it more enticing.

      Some people make a huge deal about the Y combinator, and I think there’s a combinator (the X combinator?) that alone is Turing Complete! Yes, a language consisting of a single symbol that’s Turing Complete.

      Now some of this stuff gets hairy, so while the variables are not necessary, they can definitely be convenient!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s