Every planet is the center of the universe.

David Manifold dem@tunes.org
Mon, 22 Jun 1998 23:21:27 +0000 (GMT)

Watch out, this gets pretty wild.  But it all relates to Tunes.  I

On Mon, 22 Jun 1998, William Tanksley wrote:

> David Manifold wrote:
> > When I read this, I wonder how it can make any sense to anybody.  Tell me
> > if it makes sense to you.  Anyway, it probably isn't anything new.
> It makes sense to me --- but ONLY because I've been following Tunes for a LONG
> time and do quite well at computability theory.  And even for me, even though
> it makes sense, it's gibberish.

If gibberish has started making sense, then Tunes' goal is halfway
complete.  Remember the tower of Babel?  It failed because the designers
were more concerned about their own glory than with completing the
project.  Thus everyone started speaking a different language (the
language of individual glory).  The parallels to centralized, black-box
software design are astounding.  Tunes aspires to make the plains of
Babel.  Flat, wide, decentralized, and ultimately isn't going to fall
over.  It is theoretically possible that after Tunes absorbs natural
languages, natural languages will begin to come together into one, shared
language (or Tunes could be that language).

> > The entire system can be treated as one big expression.
> > In fact, this big expression could be written as a string.
> > Anything at all that can be done in the system comes down to an edit on
> > the expression.  (Including programming, word processing, internet, etc)
> This isn't an explanation, it's a model.  And furthermore, it's a model that's
> more complicated than the original system.

I was trying to use it as a way to explain the original system.  What is
the original system that was simpler?

> > The expression is always being evaluated.  
> And furthermore, it's a bad model --- that's not physically possible,
> nor is it correctly specified.  Here's why.  
> A mathematical expression does not need to be evaluated; it just IS. 
> Anytime you talk about evaluating something, you are thinking of taking
> a non-zero amount of time to cover the expression and find its result.
> Thus, when you say "is always being evaluated" you fail to answer the
> three most basic questions:  can two parts be evaluated at the same
> time?  Is the giant expression always consistant? 

1-- yup.  In fact, every part is evaluating at the same time.

Before the sun was the center of the universe, Earth was.  Everything
revolved around Earth.  Granted, everything had REALLY COMPLICATED orbits. 
Then someone discovered that the model would be simpler if they chose a
model in which all planets revolved around the sun.  Either model is
perfectly valid and mathematically acceptable as a description of
celestial movement.  One just takes less time to explain.  Now, in
reality, planets do not orbit the sun, or the earth.  They each move with
respect to each other in certain ways.  The ways they move can be
described in an infinite number of ways.  In this particular case I would
like to describe the planets as all orbiting each other.  So every planet
is the center of the universe, since I say so.  

Language is tricky.  If you make a statement, it necessarily excludes
other possible interpretations.  You should be aware this is how I use
language, so if I say something, I am not asserting its truth, but that is
one way of looking at things.  If I try to assert something is true, I'm
wrong, not because it's not true, but because it's not the only thing
that's true.  Living in the narrowness of one interpretation is what's

That said, I do not claim that I am proposing the "one model" that *IS*
Tunes.  Why not?  Because it's impossible.  I cannot explain Tunes as a
static entity.  Not because of my lack of communication skills, or the
partial development of ideas.  It's because static entities do not exist.
Bucky Fuller said everything is a verb.  He's right.  Not just in
functional languages.  The way we perceive nouns is not a "wrong" model,
it's just a narrow one.  "Objects" (common language usage) do not "exist"
in the sense that we think they do.  Instead, reality flows.  Do you think
you see a chair?  What IS a chair?  Don't think for an instant that the
chair is a static entity.  It's changing.  It becomes something else.
People should not become frustrated when they make chairs that
disintegrate.  Perhaps we should understand the universe better, and
create chairs that flow with their environment and sustain themselves.
The fashioning of a chair that will break apart signifies a chair designer
who believed that things exist in an unchanging state.

I'm not saying you have to adopt my worldview.  However, applying it in
the context of Tunes will help you understand Tunes.  You must learn to
constantly look at things in different ways.  No, everything "is" not one
giant expression, constantly evaluating.  But that's one way to look at
it.  Find another way, and that way will be "correct" as long as you are
thinking that way.  Then, someday you will realize that no view is right
or wrong.  All are good, and have their individual uses.

2-- yup.  The expression itself must be consistent, because two
conflicting specifications cannot both be implemented.  If you are
wondering how you can write an inconsistent expression in Tunes, that is a
good question.  Inconsistent specifications cannot be implemented, so
evaluation terminates.  The expression remains in an "undetermined state"
until it is made consistent and reevaluated.  Does anybody know of a
better way to do it?

> And the last question: why should it matter if the giant expression was always
> being evaluated?  What happens when I turn my computer off?  Doesn't that
> violate the statement "the expression is always being evaluated"?

3-- when you turn your computer off, the expression is no longer in ram,
and no evaluations can take place, but the current state of all objects
(including evaluating objects) is stored to disk.  The evaluation can
resume as soon as the system boots up again, though.

> Thus, I've uncovered two problems with the statement: first, it doesn't say
> anything about the evaluation itself, and second, it doesn't say anything about
> 'always'.

OK, what I meant was, the Tunes system is supposed to simulate a system
where everything occurs instantaneously.  Since it is supposed to simulate
instant response, the best model to use when designing the system is one
of an instantaneous response.  Tunes should be modeled after the idea of
"always evaluating", to get an idea of continuity, responsivity, and
interconnectedness between members.

> > The reason it is always
> > evaluating is that each object has at least one element in its
> > specification, that of "existing".
> Non sequitur.  Big-time.  (What's the Latin word for "big-time"?  "Tempus
> gravis"?)

I'll explain this one a little more.  Each object has at least one
constraint, that of "persist."  All this means is that the object is
inside a persistant storage abstraction.  Being in a persistant store has
the effect of existence.  

If constraints are always being evaluated (Not in reality, since a
computer is finite, but we can think about it that way), then the
"persist" constraint is performed an infinite number of times per second.
OK, so maybe I shouldn't have said, "The reason..."  but instead "One
example of why the 'always evaluating' model is useful is...".  Well, it's
true, isn't it?  The object exists at an infinite number of times per
second.  Wouldn't the ideal computer be "evaluating" the object's
existence at every point in its existence?  It should, if the computer is
responsible for the object's existence.  In reality, the evaluation may be
implemented by a DRAM refresh cycle, and some electrons in a cirtcuit.  In
my mind, I am thinking, "Yes, this object exists at every one of the
infinite moments between two seconds", and I don't think about it very
much; I take it for granted.  In PRACTICAL IMPLEMENTATION, the RAM memory
only needs to actually have electrons available during the possible time
when the CPU might access it.  So to me, the user, I am fooled to think
that the RAM has a constant state.  This model is not irrelevant to the
development of Tunes.  Why?  Because it makes the distinction between
ideals and reality.  At every stage of development, we should have the
ideals in mind, but implement something that can be real.

> > Since the system is constantly evaluating, an edit on the expression will
> > cause changes to take place immediately.  Any changes that are not to take
> > place immediately (or subexpressions that are not to be evaluated yet)
> > will simply be specified to not evaluate yet.  The constraint to not
> > evaluate will still be constantly evaluated.  (Until it is changed, at
> > which time the expression it is referring to gets evaluated.)
> Aside from your talking about "constantly evaluated", which we have already
> shown to be a false model, this is good.  In fact, I would go so far as to say
> that this is a tautology --- you're saying that the system is an expression,
> and that therefore any changes in the expression model changes in the system.
> I agree, but I don't see any use.

I agree it is a tautology, and I'll explain the use.  If you use the word
'tautology' without its negative connotation, that of "needlessly
redundant", it simply means truth by definition, or analytic truth.  Tunes
is supposed to be the ultimate analytic system: it demonstrates truth by
definition interactively.  That is, it allows a user to create a model,
and interact with it, and watch it interact with other models.  If I use
tautologies excessively, it is because Tunes uses them exclusively-- every
object is the embodiment of truth by definition.  When the system follows
the specifications for an object (which can be thought of as evaluating an
expression), it is creating analytic truth.  It cannot do otherwise;
that's its nature.

In addition, I think I was trying to give a feel for dynamic reflection,
or interactivity.  I'd phrase it slightly differently than you have: "The
system is an expression, therefore changes in the expression are reflected
by changes in the system."  The previous sentence shows the connection
between the common English use of 'reflected' and reflection in Tunes.

[The rest:  I will try to check out those resources.  I am still thinking
about the proof system.  I might not be the best person to work on it. 
Any help would be appreciated.  And thanks for being a friendly opponent. 
It's been fun fighting with you.]

David Manifold <dem@tunes.org>