
Mentioning Numbers
By Richard Weyhrauch
This note is called:
[MENTIONING-NUMBERS]
The notations used in this note is described in
[NOTATION]
Under development
Our goal is to build an artifact that can think. This note looks at how it
might come to have mental images of some natural numbers and by what mechanism
it might come to know more about numbers. An adjunct question is: "Why doesn't
our head 'fill up' with information about numbers?"
When we are very young we lear to count. Over and over we repeat the
numbers, first maybe from one to ten, and perhaps finally from one to one
hundred. At the same time we learn that numbers can be used to answer
"how many" questions and we learn about relative size and order.
At some point we realize that a child 'knows' something about some numbers.
If we've done a good job as teachers, a pre-schooler would know quite a lot
about numbers less than 100.
When building a thinker we have the advantage of being able to 'give'
(essentialy by brain surgery) it any mental models we want. To be as smart as
a pre-schooler, we should at least give it mental images of the first hundred
numbers and also be sure it knows about 'greater than' and 'less than' (at
least for these).
Note
------------------------------------------------------------------------------
Here's how we would do this:
------------------------------------------------------------------------------
One question is what other numbers might it know about. If, for example, we
imagine that its knowledge is comparable to an advanced high school student
the it might know about the number 1492.
Columns of numbers
Suppose you are given a column of ten six digit numbers to add up. Do you
first make a mental image of these ten numbers and then add them up? Almost
certainly not. Instead you use the tricks you were taught in grade school for
adding. You would add up the one's column (only adding numbers less than ten
to your runnig total and write down the last digit you get and start adding up
the digits of the tens column starting with the number you 'carried'.
This algorithm operates on columns of arabic numerals that you have come
to use when numbers are mentioned. In fact, you never actually used any of
the numbers mentioned in the column, so you had no need to make a mental
model of those numbers at all.
We call this "adding up the column of 'numbers'" because the numeral that
is the result of our 'addition' (by good fortune - has anyone seen a proof
of this?) actually mentions the number which is actually the correct sum. So
if we do it right we get the correct answer.
The take away from this is that in normal life we may mention many numbers
but we only rarely need to have a mental image of any of them.
Above I used the phrase 'add up a column of numbers'. In light of the
previous several paragraphs I'd like to look more carefully at this phrase.
First, although I said the 'column' would be numbers, in fact what I was
given were numerals. which was lucky for otherwise my algorithm for the sum
would have not worked. If I asked you to add just two numbers, for example,
342694 to 8452731, and you actually made mental models of the two numbers
you would be hard pressed to figure out their sum. It is likely you
would write them dowm (i.e., write them as arabic base 10 numerals) and then
do the addition using these numerals.
The original implemetation of the FOL system did the following. When you
started talking about arithmetic it already knew about 0 and 1. New numbers
arose uder two circumstaces.
1) Someone mentioned a 'new one'. For example, you might ask it
what is (+ 32 68)?
When it read "(+ 32 68)" it realized that it understood the symbol '+' as a
function constant in the context 'arithmetic' and that it had an attachmet to
'+' that would compute the sum if give two numbers. Next, it looked at '32'.
It knew that a term that consisted of a sequence of digits (in the context
'arithmetic') was a mention the number 32 so it declared the individual
constant '32', the numeral, of sort [natnum] and attached it to the number
32. Likewise for '68'.
By the defiition of 'interpretation in a model' the 'value' of '(+ 32 68)'
was (sum 32 68), i.e., 100.
The problem now was that although it now knew (and had a mental model of)
the answer, there was no term in the language of 'arithmetic' for the number
100. This was solved by creating the numeral '100', declaring it to be an
individual constant of sort [hatnum] in the context 'arithmetic' and attaching
it to the number 100. FOL could then answer
(= (+ '23' '68') '100')
The language of 'arithmetic' now contained the individual constants '0'.
'1', '32', '68' and '100'. The simulation structure of 'arithmetic' included
the numbers 0. 1, 32, 64 and 100 correctly attached to their respective
numerals.
In the course of this conversation FOL determined that
(= (* '23' '68') '100')
a conclusion that could be derived in the context 'arithmetic'. The question
of whether it should be added as a fact of 'arithmetic' is still a decision
that might be made. Coclusions like this are most likely to be ephemeral and
it would not be added to the facts. The ability to choose to add a consequence
as a fact of a context or not is one of the reasons that using
If we don't add this consequece as a fact then we would also be led to
'forget' the numerals and their corresponding numbers in 'arithmetic'. The
ability to add and delete
|