27.04.2015 Views

Computability and Logic

Computability and Logic

Computability and Logic

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

46 ABACUS COMPUTABILITY<br />

Historically, the notion of Turing computability was developed before the age of<br />

high-speed digital computers, <strong>and</strong> in fact, the theory of Turing computability formed<br />

a not insignificant part of the theoretical background for the development of such<br />

computers. The kinds of computers that are ordinary today are in one respect more<br />

flexible than Turing machines in that they have r<strong>and</strong>om-access storage.ALambek or<br />

abacus machine or simply abacus will be an idealized version of computer with this<br />

‘ordinary’ feature. In contrast to a Turing machine, which stores information symbol<br />

by symbol on squares of a one-dimensional tape along which it can move a single<br />

step at a time, a machine of the seemingly more powerful ‘ordinary’ sort has access<br />

to an unlimited number of registers R 0 , R 1 , R 2 , ..., in each of which can be written<br />

numbers of arbitrary size. Moreover, this sort of machine can go directly to register<br />

R n without inching its way, square by square, along the tape. That is, each register<br />

has its own address (for register R n it might be just the number n) which allows the<br />

machine to carry out such instructions as<br />

which we abbreviate<br />

put the sum of the numbers in registers R m <strong>and</strong> R n into register R p<br />

[m] + [n] → p.<br />

In general, [n] is the number in register R n , <strong>and</strong> the number at the right of an arrow<br />

identifies the register in which the result of the operation at the left of the arrow is<br />

to be stored. When working with such machines, it is natural to consider functions<br />

on the natural numbers (including zero), <strong>and</strong> not just the positive integers (excluding<br />

zero). Thus, the number [n] in register R n at a given time may well be zero: the<br />

register may be empty.<br />

It should be noted that our ‘ordinary’ sort of computing machine is really quite<br />

extraordinary in one respect: although real digital computing machines often have<br />

r<strong>and</strong>om-access storage, there is always a finite upper limit on the size of the numbers<br />

that can be stored; for example, a real machine might have the ability to store any<br />

of the numbers 0, 1, ..., 10 000 000 in each of its registers, but no number greater<br />

than ten million. Thus, it is entirely possible that a function that is computable in<br />

principle by one of our idealized machines is not computable in practice by any real<br />

machine, simply because, for certain arguments, the computation would require more<br />

capacious registers than any real machine possesses. (Indeed, addition is a case in<br />

point: there is no finite bound on the sizes of the numbers one might think of adding,<br />

<strong>and</strong> hence no finite bound on the size of the registers needed for the arguments <strong>and</strong><br />

the sum.) But this is in line with our objective of abstracting from technological<br />

limitations so as to arrive at a notion of computability that is not too narrow. We seek<br />

to show that certain functions are uncomputable in an absolute sense: uncomputable<br />

even by our idealized machines, <strong>and</strong> therefore uncomputable by any past, present, or<br />

future real machine.<br />

In order to avoid discussion of electronic or mechanical details, we may imagine<br />

the abacus machine in crude, Stone Age terms. Each register may be thought of as a<br />

roomy, numbered box capable of holding any number of stones: none or one or two<br />

or ..., so that [n] will be the number of stones in box number n. The ‘machine’ can

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!