[From Bill Powers (940602.1045 MDT)]
Rick Marken (940602.0850) --
It had never occurred to me before reading your brilliant post that
what comes out of the program level couldn't possibly be a
"program." At best, it's a set of reference signals specifying a
particular sequence or list of perceptions. The output of any
control system is a reference signal with a meaning in terms of the
perceptual variables of the level BELOW.
A program, by my definition, is a branching network of computations
in which the path is determined by tests at each branch-point. The
error signal resulting from a program-level control process is
obviously NOT "a branching network of computations in which the path
is determined by tests at each branch-point." The outputs going to
lower level systems are the outputs generated by a program, but they
are not themselves programs. This is perfectly obvious once pointed
out. Thank you for pointing it out. Your example of controlling a
program by pushing or not pushing a button clinched it for me.
A _sequence_, which I proposed to be the next lower level of
perception, is not a program, but a linked list. A sequence is
recognized not by containing branch points but by not containing
branch points; one perception follows another in a fixed order from
start to end, with the ordering being the variable of interest.
I was just interrupted by a phone call from someone who asked if
this was Nifty Auto Glass (it wasn't). Mary looked up the number for
Nifty; it is 247-7968. Our number is 247-7986. A simple sequence
error. But if sequences were simply generated open-loop, how could
such an error occur? It is more likely that a sequence error would
occur if the outputs of a sequence control system were not
sequences, but reference signals for perceptions of other kinds,
like where a finger is to go on a bank of buttons. The sequence that
is perceived is a _consequence_ of the actions at lower levels.
I'm still fuzzy, however, about the exact meaning of a "program
level of control." As you said, strictly speaking controlling at
this level is seeing to it that events progress according to a
certain program, recognizing the program and making sure it remains
the same program. Maybe, because of the peculiar inside-out way that
control works, this is how the brain executes programs, which is
quite different from the way my PC executes them, open-loop.
But this doesn't satisfy me, because we obviously do reason and
calculate about things in a very PC-like way, and it's hard to
classify everything that goes on as a perception. Maybe if we could
build or simulate a machine that would do programs in the manner of
a control system it would all become clearer, but right now I don't
see it. I see how it _might_ work, but the details elude me.
We can be pretty sure that the inputs to the program level are
symbols, and that the perceptions must be functions of some aspect
of the symbols, perhaps logical functions such as are found in
propositions or continuous functions as in algebraic expressions.
The computing that then goes on, however, doesn't seem to fit the
pattern of perception-comparison-action very readily. What we need
are some examples to go on; I'm coming up blank.
It's clear now, however, thanks to you, that whatever goes on that
is program-like in a program level or computation level, what comes
out is neither programs nor computations, but settings for lower-
level reference signals. All the main processes that determine what
is to happen are as usual on the perceptual side; the output side
merely adjusts the lower-level systems to make sure that the input
side is producing the right results.
Spending a few hours contemplating the program level (including a
little nap) has at least made it clear to me why I distrust complex
mathematics. Carrying out a complex mathematical manipulation is
like writing any program. You're running a computing machine. The
mathematics, done without mechanical errors, never lies, but neither
does it tell the truth. It simply does exactly what you tell it to
do. You can tell it to do useful things or useless things. You can
misinterpret what it is actually doing, because it can get too
complex for you to check it out in every detail. Ninety percent of
using mathematics lies not in theorems or lemmas or proofs or
derivations, but in finding a link between the various ways the
symbols present themselves and the experiences those symbols are
supposed to be about. These links are always the weakest parts of
any mathematical analysis.
If the meanings of symbols are not clearly and unequivocally
established, as well as the meanings of each mathematical operation
and equation and each step in the development, one can end up
running the mathematical machine just to hear it hum, and really
have no idea whether its outputs have any significance at all. This
is the logic level running in the imagination mode, where all things
are possible and every result has a meaning.