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