On Computable Numbers, with an Application to the Entscheidungsproblem
Proceedings of the London Mathematical Society, Series 2, Vol. 42 (1936), pp. 230–265. [Received 28 May, 1936.—Read 12 November, 1936.]
《伦敦数学会会刊》(Proceedings of the London Mathematical Society)第 2 辑第 42 卷(1936),第 230–265 页。[1936 年 5 月 28 日收稿,1936 年 11 月 12 日宣读。]
(译注:本对照所据 PDF 为 1936 年原刊第 230–265 页的扫描本,不含图灵后来发表的更正“On Computable Numbers, with an Application to the Entscheidungsproblem. A Correction”(Proceedings of the London Mathematical Society, Series 2, Vol. 43 (1937), pp. 544–546)。原刊中的排印错误一律照录,并在相应位置加译注。)
On Computable Numbers, with an Application to the Entscheidungsproblem
论可计算数及其在判定问题上的应用
The "computable" numbers may be described briefly as the real numbers whose expressions as a decimal are calculable by finite means. Although the subject of this paper is ostensibly the computable numbers, it is almost equally easy to define and investigate computable functions of an integral variable or a real or computable variable, computable predicates, and so forth. The fundamental problems involved are, however, the same in each case, and I have chosen the computable numbers for explicit treatment as involving the least cumbrous technique. I hope shortly to give an account of the relations of the computable numbers, functions, and so forth to one another. This will include a development of the theory of functions of a real variable expressed in terms of computable numbers. According to my definition, a number is computable if its decimal can be written down by a machine.
“可计算”数可以简要地描述为:其小数表达式能用有限手段算出的那些实数。虽然本文表面上的主题是可计算数,但定义和研究以整数变量、实变量或可计算变量为自变量的可计算函数、可计算谓词等,几乎同样容易。不过,各种情形涉及的基本问题是相同的,我选择可计算数作明确处理,是因为它涉及的技术最不繁琐。我希望不久能阐述可计算数、可计算函数等等彼此之间的关系,其中将包括用可计算数来表述的实变函数论的发展。按照我的定义,一个数如果其小数能由一台机器写出,它就是可计算的。
In §§ 9, 10 I give some arguments with the intention of showing that the computable numbers include all numbers which could naturally be regarded as computable. In particular, I show that certain large classes of numbers are computable. They include, for instance, the real parts of all algebraic numbers, the real parts of the zeros of the Bessel functions, the numbers , , etc. The computable numbers do not, however, include all definable numbers, and an example is given of a definable number which is not computable.
在第 9、10 节中,我给出一些论证,意在表明可计算数包括了一切可以自然地被看作可计算的数。特别是,我证明某些很大的数类是可计算的,例如所有代数数的实部、贝塞尔函数零点的实部、、 等数。然而,可计算数并不包括一切可定义的数;文中给出了一个可定义但不可计算的数的例子。
Although the class of computable numbers is so great, and in many ways similar to the class of real numbers, it is nevertheless enumerable. In § 8 I examine certain arguments which would seem to prove the contrary. By the correct application of one of these arguments, conclusions are reached which are superficially similar to those of Gödel†. These results have valuable applications. In particular, it is shown (§ 11) that the Hilbertian Entscheidungsproblem can have no solution.
† Gödel, "Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme, I", Monatshefte Math. Phys., 38 (1931), 173–198.
尽管可计算数类如此之大,并在许多方面与实数类相似,它却是可枚举的。在第 8 节中,我考察了一些似乎能证明相反结论的论证。正确运用其中一个论证,可以得到表面上与哥德尔†的结论相似的结论。这些结果有重要的应用,特别是证明了(第 11 节)希尔伯特的判定问题(Entscheidungsproblem)不可能有解。
† Gödel, "Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme, I", Monatshefte Math. Phys., 38 (1931), 173–198.
In a recent paper Alonzo Church† has introduced an idea of "effective calculability", which is equivalent to my "computability", but is very differently defined. Church also reaches similar conclusions about the Entscheidungsproblem‡. The proof of equivalence between "computability" and "effective calculability" is outlined in an appendix to the present paper.
† Alonzo Church, "An unsolvable problem of elementary number theory", American J. of Math., 58 (1936), 345–363.
‡ Alonzo Church, "A note on the Entscheidungsproblem", J. of Symbolic Logic, 1 (1936), 40–41.
在最近的一篇论文中,阿隆佐·丘奇†提出了“能行可计算性”(effective calculability)的概念,它与我的“可计算性”等价,但定义方式截然不同。丘奇对判定问题也得出了类似的结论‡。“可计算性”与“能行可计算性”等价的证明,在本文附录中给出概要。
† Alonzo Church, "An unsolvable problem of elementary number theory", American J. of Math., 58 (1936), 345–363.
‡ Alonzo Church, "A note on the Entscheidungsproblem", J. of Symbolic Logic, 1 (1936), 40–41.
1. Computing machines
1. 计算机器
We have said that the computable numbers are those whose decimals are calculable by finite means. This requires rather more explicit definition. No real attempt will be made to justify the definitions given until we reach § 9. For the present I shall only say that the justification lies in the fact that the human memory is necessarily limited.
我们说过,可计算数是那些小数能用有限手段算出的数。这需要更明确的定义。在讲到第 9 节之前,我们不会真正尝试为所给出的定义辩护。目前我只想说,其理由在于人的记忆必然是有限的。
We may compare a man in the process of computing a real number to a machine which is only capable of a finite number of conditions which will be called "-configurations". The machine is supplied with a "tape" (the analogue of paper) running through it, and divided into sections (called "squares") each capable of bearing a "symbol". At any moment there is just one square, say the -th, bearing the symbol which is "in the machine". We may call this square the "scanned square". The symbol on the scanned square may be called the "scanned symbol". The "scanned symbol" is the only one of which the machine is, so to speak, "directly aware". However, by altering its -configuration the machine can effectively remember some of the symbols which it has "seen" (scanned) previously. The possible behaviour of the machine at any moment is determined by the -configuration and the scanned symbol . This pair will be called the "configuration": thus the configuration determines the possible behaviour of the machine. In some of the configurations in which the scanned square is blank (i.e. bears no symbol) the machine writes down a new symbol on the scanned square: in other configurations it erases the scanned symbol. The machine may also change the square which is being scanned, but only by shifting it one place to right or left. In addition to any of these operations the -configuration may be changed. Some of the symbols written down will form the sequence of figures which is the decimal of the real number which is being computed. The others are just rough notes to "assist the memory". It will only be these rough notes which will be liable to erasure.
我们可以把一个正在计算某个实数的人,比作一台只能处于有限个状态 的机器,这些状态称为“-格局”(-configurations)。机器配有一条穿过它的“纸带”(相当于纸),纸带被分成若干段(称为“方格”),每一段都可以承载一个“符号”。在任一时刻,恰有一个方格,比如第 个,承载着符号 ,它“在机器中”。我们可以称这个方格为“被扫描方格”,其上的符号称为“被扫描符号”。可以说,“被扫描符号”是机器唯一“直接意识到”的符号。不过,机器可以通过改变自己的 -格局,有效地记住它先前“见过”(扫描过)的某些符号。机器在任一时刻可能的行为,由 -格局 和被扫描符号 决定。 这一对称为“格局”:因此,格局决定了机器可能的行为。在被扫描方格为空白(即不带符号)的某些格局下,机器在被扫描方格上写下一个新符号;在另一些格局下,它擦去被扫描符号。机器也可以改变正在被扫描的方格,但只能向右或向左移动一格。除了这些操作中的任何一种之外,-格局也可以改变。写下的符号中,有一些将构成正在计算的实数的小数数字序列;其余的只是“辅助记忆”的草稿。只有这些草稿才可能被擦除。
It is my contention that these operations include all those which are used in the computation of a number. The defence of this contention will be easier when the theory of the machines is familiar to the reader. In the next section I therefore proceed with the development of the theory and assume that it is understood what is meant by "machine", "tape", "scanned", etc.
我的论点是,这些操作包括了计算一个数时所用的一切操作。等读者熟悉了这种机器的理论,为这一论点辩护就会容易些。因此,我在下一节继续发展这一理论,并假定读者已经明白“机器”“纸带”“被扫描”等的含义。
2. Definitions
2. 定义
Automatic machines
If at each stage the motion of a machine (in the sense of § 1) is completely determined by the configuration, we shall call the machine an "automatic machine" (or -machine).
For some purposes we might use machines (choice machines or -machines) whose motion is only partially determined by the configuration (hence the use of the word "possible" in § 1). When such a machine reaches one of these ambiguous configurations, it cannot go on until some arbitrary choice has been made by an external operator. This would be the case if we were using machines to deal with axiomatic systems. In this paper I deal only with automatic machines, and will therefore often omit the prefix -.
自动机器
如果在每个阶段,机器(第 1 节意义上的)的运动都完全由格局决定,我们就称这台机器为“自动机器”(或 -机器)。
出于某些目的,我们也可以使用运动只部分地由格局决定的机器(选择机器,或 -机器)(因此第 1 节中使用了“可能的”一词)。当这样的机器到达某个这种不确定的格局时,必须等外部操作者作出某种任意选择后才能继续。如果我们用机器来处理公理系统,就会是这种情形。本文只讨论自动机器,因此常常省去前缀 -。
Computing machines
If an -machine prints two kinds of symbols, of which the first kind (called figures) consists entirely of 0 and 1 (the others being called symbols of the second kind), then the machine will be called a computing machine. If the machine is supplied with a blank tape and set in motion, starting from the correct initial -configuration, the subsequence of the symbols printed by it which are of the first kind will be called the sequence computed by the machine. The real number whose expression as a binary decimal is obtained by prefacing this sequence by a decimal point is called the number computed by the machine.
At any stage of the motion of the machine, the number of the scanned square, the complete sequence of all symbols on the tape, and the -configuration will be said to describe the complete configuration at that stage. The changes of the machine and tape between successive complete configurations will be called the moves of the machine.
计算机器
如果一台 -机器打印两类符号,其中第一类(称为数字)完全由 0 和 1 组成(其余的称为第二类符号),这台机器就称为计算机器。如果给机器配上一条空白纸带,从正确的初始 -格局开始让它运转,它所打印的符号中属于第一类的那个子序列,称为机器所计算的序列。在这个序列前面加上小数点,得到一个二进制小数表达式,它所表示的实数称为机器所计算的数。
在机器运动的任一阶段,被扫描方格的编号、纸带上全部符号的完整序列以及 -格局,被说成描述了该阶段的完全格局。机器和纸带在相继的完全格局之间的变化,称为机器的动作(moves)。
Circular and circle-free machines
If a computing machine never writes down more than a finite number of symbols of the first kind, it will be called circular. Otherwise it is said to be circle-free.
A machine will be circular if it reaches a configuration from which there is no possible move, or if it goes on moving, and possibly printing symbols of the second kind, but cannot print any more symbols of the first kind. The significance of the term "circular" will be explained in § 8.
Computable sequences and numbers
A sequence is said to be computable if it can be computed by a circle-free machine. A number is computable if it differs by an integer from the number computed by a circle-free machine.
We shall avoid confusion by speaking more often of computable sequences than of computable numbers.
有环机器与无环机器
如果一台计算机器写下的第一类符号从不超过有限个,就称它为有环的(circular);否则称它为无环的(circle-free)。
如果机器到达一个无法再作任何动作的格局,或者它继续运动、也许还打印第二类符号,但再也不能打印第一类符号,那么它就是有环的。“有环”一词的含义将在第 8 节解释。
可计算序列与可计算数
如果一个序列能由一台无环机器计算出来,就说它是可计算的。如果一个数与某台无环机器所计算的数相差一个整数,它就是可计算的。
为避免混淆,我们将更多地谈论可计算序列,而不是可计算数。
3. Examples of computing machines
3. 计算机器的例子
I. A machine can be constructed to compute the sequence 010101…. The machine is to have the four -configurations "", "", "", "" and is capable of printing "0" and "1". The behaviour of the machine is described in the following table in which "" means "the machine moves so that it scans the square immediately on the right of the one it was scanning previously". Similarly for "". "" means "the scanned symbol is erased" and "" stands for "prints". This table (and all succeeding tables of the same kind) is to be understood to mean that for a configuration described in the first two columns the operations in the third column are carried out successively, and the machine then goes over into the -configuration described in the last column. When the second column is left blank, it is understood that the behaviour of the third and fourth columns applies for any symbol and for no symbol. The machine starts in the -configuration with a blank tape.
| m-config. | symbol | operations | final m-config. |
|---|---|---|---|
| None | |||
| None | |||
| None | |||
| None |
(The first two columns are headed "Configuration", the last two "Behaviour".)
I. 可以构造一台机器来计算序列 010101……。这台机器有四个 -格局“”“”“”“”,能够打印“0”和“1”。机器的行为由下表描述,表中“”表示“机器移动,使它扫描原先所扫描方格紧右边的方格”,“”类似。“”表示“擦去被扫描符号”,“”表示“打印”。这张表(以及以后所有同类的表)应理解为:对于前两栏所描述的格局,依次执行第三栏中的操作,然后机器转入最后一栏所描述的 -格局。当第二栏空着时,理解为第三、四栏的行为适用于任何符号以及无符号的情形。机器从 -格局 开始,纸带为空白。
| m-格局 | 符号 | 操作 | 最终 m-格局 |
|---|---|---|---|
| 无 | |||
| 无 | |||
| 无 | |||
| 无 |
(前两栏总标题为“格局”,后两栏为“行为”。)
If (contrary to the description in § 1) we allow the letters , to appear more than once in the operations column we can simplify the table considerably.
| m-config. | symbol | operations | final m-config. |
|---|---|---|---|
| None | |||
| 0 | |||
| 1 |
如果(与第 1 节的描述相反)允许字母 、 在操作栏中出现不止一次,就可以大大简化这张表。
| m-格局 | 符号 | 操作 | 最终 m-格局 |
|---|---|---|---|
| 无 | |||
| 0 | |||
| 1 |
II. As a slightly more difficult example we can construct a machine to compute the sequence 001011011101111011111…. The machine is to be capable of five -configurations, viz. "", "", "", "", "" and of printing "ə", "", "0", "1". The first three symbols on the tape will be "əə0"; the other figures follow on alternate squares. On the intermediate squares we never print anything but "". These letters serve to "keep the place" for us and are erased when we have finished with them. We also arrange that in the sequence of figures on alternate squares there shall be no blanks.
| m-config. | symbol | operations | final m-config. |
|---|---|---|---|
| 1 | |||
| 0 | |||
| Any (0 or 1) | |||
| None | |||
| ə | |||
| None | |||
| Any | |||
| None |
II. 作为稍难一点的例子,我们可以构造一台机器来计算序列 001011011101111011111……。这台机器能处于五个 -格局,即“”“”“”“”“”,能够打印“ə”“”“0”“1”。纸带上的前三个符号将是“əə0”;其他数字隔一格依次排列。在中间的方格上,我们只打印“”。这些字母为我们“占位”,用完后就擦掉。我们还规定,在隔格排列的数字序列中不留空白。
| m-格局 | 符号 | 操作 | 最终 m-格局 |
|---|---|---|---|
| 1 | |||
| 0 | |||
| 任意(0 或 1) | |||
| 无 | |||
| ə | |||
| 无 | |||
| 任意 | |||
| 无 |
To illustrate the working of this machine a table is given below of the first few complete configurations. These complete configurations are described by writing down the sequence of symbols which are on the tape, with the -configuration written below the scanned symbol. The successive complete configurations are separated by colons.
:əə0 0:əə0 0:əə0 0:əə0 0 :əə0 0 1:
𝔟 𝔬 𝔮 𝔮 𝔭
əə0 0 1:əə0 0 1:əə0 0 1:əə0 0 1:
𝔭 𝔭 𝔣 𝔣
əə0 0 1:əə0 0 1 :əə0 0 1 0:
𝔣 𝔣 𝔬
əə0 0 1x0:....
𝔬
This table could also be written in the form
in which a space has been made on the left of the scanned symbol and the -configuration written in this space. This form is less easy to follow, but we shall make use of it later for theoretical purposes.
为了说明这台机器如何工作,下面列出最初几个完全格局。描述这些完全格局的方法是:写下纸带上的符号序列,并把 -格局写在被扫描符号的下方。相继的完全格局用冒号隔开。
:əə0 0:əə0 0:əə0 0:əə0 0 :əə0 0 1:
𝔟 𝔬 𝔮 𝔮 𝔭
əə0 0 1:əə0 0 1:əə0 0 1:əə0 0 1:
𝔭 𝔭 𝔣 𝔣
əə0 0 1:əə0 0 1 :əə0 0 1 0:
𝔣 𝔣 𝔬
əə0 0 1x0:....
𝔬
(译注:-格局字母在原刊中写在被扫描符号正下方;此处用等宽文本近似原排版,对齐位置以原文 PDF 为准。)
这张表也可以写成如下形式
即在被扫描符号左边留出一个空位,把 -格局写在这个空位里。这种形式不太容易看懂,但我们以后会为理论目的而使用它。
The convention of writing the figures only on alternate squares is very useful: I shall always make use of it. I shall call the one sequence of alternate squares -squares and the other sequence -squares. The symbols on -squares will be liable to erasure. The symbols on -squares form a continuous sequence. There are no blanks until the end is reached. There is no need to have more than one -square between each pair of -squares: an apparent need of more -squares can be satisfied by having a sufficiently rich variety of symbols capable of being printed on -squares. If a symbol is on an -square and a symbol is on the -square next on the right of , then and will be said to be marked with . The process of printing this will be called marking (or ) with .
只在隔一格的方格上写数字,这一约定非常有用:我将始终采用它。我把隔格方格中的一个序列称为 -方格,另一个序列称为 -方格。-方格上的符号可以被擦除。-方格上的符号构成一个连续序列,直到末尾都没有空白。每两个 -方格之间不需要多于一个 -方格:表面上对更多 -方格的需要,可以通过让能够打印在 -方格上的符号种类足够丰富来满足。如果符号 在 -方格 上,而符号 在 右边紧邻的 -方格上,就说 和 被 标记了。打印这个 的过程,称为用 标记 (或 )。
4. Abbreviated tables
4. 简化表
There are certain types of process used by nearly all machines, and these, in some machines, are used in many connections. These processes include copying down sequences of symbols, comparing sequences, erasing all symbols of a given form, etc. Where such processes are concerned we can abbreviate the tables for the -configurations considerably by the use of "skeleton tables". In skeleton tables there appear capital German letters and small Greek letters. These are of the nature of "variables". By replacing each capital German letter throughout by an -configuration and each small Greek letter by a symbol, we obtain the table for an -configuration.
The skeleton tables are to be regarded as nothing but abbreviations: they are not essential. So long as the reader understands how to obtain the complete tables from the skeleton tables, there is no need to give any exact definitions in this connection.
有几类过程几乎为所有机器所用,在某些机器中还在许多场合使用。这些过程包括抄写符号序列、比较序列、擦去某种形式的全部符号等。凡涉及这类过程时,借助“骨架表”可以大大简化 -格局的表。骨架表中出现大写德文字母和小写希腊字母,它们具有“变量”的性质。把每个大写德文字母处处替换为一个 -格局,把每个小写希腊字母替换为一个符号,就得到某个 -格局的表。
骨架表只应看作缩写,并非必不可少。只要读者明白如何由骨架表得到完整的表,就无需在这方面给出任何精确的定义。
Let us consider an example:
| m-config. | Symbol | Behaviour | Final m-config. |
|---|---|---|---|
| ə | |||
| not ə | |||
| not | |||
| None | |||
| not | |||
| None |
From the -configuration the machine finds the symbol of form which is farthest to the left (the "first ") and the -configuration then becomes . If there is no then the -configuration becomes .
If we were to replace throughout by (say), by , and by , we should have a complete table for the -configuration . is called an "-configuration function" or "-function".
我们来看一个例子:
| m-格局 | 符号 | 行为 | 最终 m-格局 |
|---|---|---|---|
| ə | |||
| 非 ə | |||
| 非 | |||
| 无 | |||
| 非 | |||
| 无 |
从 -格局 出发,机器找到最左边的那个形如 的符号(“第一个 ”),然后 -格局变为 。如果没有 ,-格局就变为 。
如果把 处处换成(比如),把 换成 ,把 换成 ,就得到 -格局 的完整表。 称为“-格局函数”或“-函数”。
The only expressions which are admissible for substitution in an -function are the -configurations and symbols of the machine. These have to be enumerated more or less explicitly: they may include expressions such as ; indeed they must if there are any -functions used at all. If we did not insist on this explicit enumeration, but simply stated that the machine had certain -configurations (enumerated) and all -configurations obtainable by substitution of -configurations in certain -functions, we should usually get an infinity of -configurations; e.g., we might say that the machine was to have the -configuration and all -configurations obtainable by substituting an -configuration for in . Then it would have , , , , … as -configurations.
Our interpretation rule then is this. We are given the names of the -configurations of the machine, mostly expressed in terms of -functions. We are also given skeleton tables. All we want is the complete table for the -configurations of the machine. This is obtained by repeated substitution in the skeleton tables.
可以代入 -函数的表达式,只有机器的 -格局和符号。这些必须或多或少明确地列举出来:其中可以包括像 这样的表达式;事实上,只要用到了 -函数,就必须包括。如果我们不坚持这种明确的列举,而只是说明机器具有某些(列举出的)-格局,以及在某些 -函数中代入 -格局所能得到的一切 -格局,那么通常会得到无穷多个 -格局;例如,我们可以说机器具有 -格局 ,以及在 中用 -格局代替 所能得到的一切 -格局。这样它就会以 、、、……为 -格局。
于是我们的解释规则是:给定机器各 -格局的名称,它们大多用 -函数来表示;也给定骨架表。我们要的只是机器各 -格局的完整表,这可以通过在骨架表中反复代入得到。
Further examples
(In the explanations the symbol "→" is used to signify "the machine goes into the -configuration. . . .")
| m-config. | Symbol | Behaviour | Final m-config. |
|---|---|---|---|
From the first is erased and → . If there is no → .
| m-config. | Symbol | Behaviour | Final m-config. |
|---|---|---|---|
From all letters are erased and → .
更多的例子
(在说明中,符号“→”表示“机器转入 -格局……”。)
| m-格局 | 符号 | 行为 | 最终 m-格局 |
|---|---|---|---|
从 出发,擦去第一个 ,并 → 。如果没有 ,→ 。
| m-格局 | 符号 | 行为 | 最终 m-格局 |
|---|---|---|---|
从 出发,擦去所有字母 ,并 → 。
The last example seems somewhat more difficult to interpret than most. Let us suppose that in the list of -configurations of some machine there appears , say. The table is
or
| . |
Or, in greater detail:
| . |
In this we could replace by and then give the table for (with the right substitutions) and eventually reach a table in which no -functions appeared.
最后一个例子似乎比大多数例子更难理解。假设在某台机器的 -格局列表中出现了 (比如记为 )。其表为
或
| 。 |
或者更详细地:
| 。 |
在这里,我们可以把 换成 ,然后给出 的表(作适当的代入),最终得到一张不出现任何 -函数的表。
| m-config. | Symbol | Behaviour | Final m-config. |
|---|---|---|---|
| Any | |||
| None |
From the machine prints at the end of the sequence of symbols and → .
| m-config. | Symbol | Behaviour | Final m-config. |
|---|---|---|---|
From it does the same as for but moves to the left before → .
| m-config. | Symbol | Behaviour | Final m-config. |
|---|---|---|---|
. The machine writes at the end the first symbol marked and → .
The last line stands for the totality of lines obtainable from it by replacing by any symbol which may occur on the tape of the machine concerned.
| m-格局 | 符号 | 行为 | 最终 m-格局 |
|---|---|---|---|
| 任意 | |||
| 无 |
从 出发,机器在符号序列的末尾打印 ,并 → 。
| m-格局 | 符号 | 行为 | 最终 m-格局 |
|---|---|---|---|
从 出发,机器所做的与 相同,只是在 → 之前先向左移动一格。
| m-格局 | 符号 | 行为 | 最终 m-格局 |
|---|---|---|---|
:机器在末尾写下第一个被标记为 的符号,并 → 。
最后一行代表这样一组行的全体:把其中的 换成所涉机器纸带上可能出现的任何符号所得到的所有行。
| m-config. | Symbol | Behaviour | Final m-config. |
|---|---|---|---|
. The machine copies down in order at the end all symbols marked and erases the letters ; → .
| m-config. | Symbol | Behaviour | Final m-config. |
|---|---|---|---|
. The machine replaces the first by and → → if there is no .
. The machine replaces all letters by ; → .
| m-config. | Symbol | Behaviour | Final m-config. |
|---|---|---|---|
differs from only in that the letters are not erased. The -configuration is taken up when no letters "" are on the tape.
| m-格局 | 符号 | 行为 | 最终 m-格局 |
|---|---|---|---|
:机器按顺序在末尾抄下所有被标记为 的符号,并擦去字母 ;→ 。
| m-格局 | 符号 | 行为 | 最终 m-格局 |
|---|---|---|---|
:机器把第一个 换成 ,并 → ;如果没有 ,→ 。
:机器把所有字母 换成 ;→ 。
| m-格局 | 符号 | 行为 | 最终 m-格局 |
|---|---|---|---|
与 的唯一区别在于不擦去字母 。当纸带上没有字母“”时,进入 -格局 。
| m-config. | Symbol | Behaviour | Final m-config. |
|---|---|---|---|
| not | . |
The first symbol marked and the first marked are compared. If there is neither nor , → . If there are both and the symbols are alike, → . Otherwise → .
| m-config. | Symbol | Behaviour | Final m-config. |
|---|---|---|---|
differs from in that in the case when there is similarity the first and are erased.
| m-config. | Symbol | Behaviour | Final m-config. |
|---|---|---|---|
| . |
. The sequence of symbols marked is compared with the sequence marked . → if they are similar. Otherwise → . Some of the symbols and are erased.
| m-格局 | 符号 | 行为 | 最终 m-格局 |
|---|---|---|---|
| 非 | 。 |
(译注:第一行中的 按原刊照录,按上下文应为 。)
比较第一个被标记为 的符号与第一个被标记为 的符号。如果既没有 也没有 ,→ 。如果两者都有且符号相同,→ 。否则 → 。
| m-格局 | 符号 | 行为 | 最终 m-格局 |
|---|---|---|---|
与 的区别在于:在相同的情形下,第一个 和第一个 被擦去。
| m-格局 | 符号 | 行为 | 最终 m-格局 |
|---|---|---|---|
| 。 |
:把被标记为 的符号序列与被标记为 的序列相比较。如果两者相同,→ ;否则 → 。部分符号 和 被擦去。
| m-config. | Symbol | Behaviour | Final m-config. |
|---|---|---|---|
| Any | |||
| None | |||
| Any | |||
| None | |||
| not |
. The machine finds the last symbol of form . → .
| m-config. | Symbol | Behaviour | Final m-config. |
|---|---|---|---|
. The machine prints at the end.
| m-config. | Symbol | Behaviour | Final m-config. |
|---|---|---|---|
. The machine copies down at the end first the symbols marked , then those marked , and finally those marked ; it erases the symbols , , .
| m-config. | Symbol | Behaviour | Final m-config. |
|---|---|---|---|
| ə | |||
| Not ə | |||
| Any | |||
| None |
From the marks are erased from all marked symbols. → .
| m-格局 | 符号 | 行为 | 最终 m-格局 |
|---|---|---|---|
| 任意 | |||
| 无 | |||
| 任意 | |||
| 无 | |||
| 非 |
:机器找到最后一个形如 的符号,→ 。
| m-格局 | 符号 | 行为 | 最终 m-格局 |
|---|---|---|---|
:机器在末尾打印 。
| m-格局 | 符号 | 行为 | 最终 m-格局 |
|---|---|---|---|
:机器在末尾先抄下被标记为 的符号,再抄下被标记为 的,最后抄下被标记为 的;并擦去符号 、、。
| m-格局 | 符号 | 行为 | 最终 m-格局 |
|---|---|---|---|
| ə | |||
| 非 ə | |||
| 任意 | |||
| 无 |
从 出发,擦去所有被标记符号上的标记,→ 。
5. Enumeration of computable sequences
5. 可计算序列的枚举
A computable sequence is determined by a description of a machine which computes . Thus the sequence 001011011101111… is determined by the table on p. 234, and, in fact, any computable sequence is capable of being described in terms of such a table.
It will be useful to put these tables into a kind of standard form. In the first place let us suppose that the table is given in the same form as the first table, for example, I on p. 233. That is to say, that the entry in the operations column is always of one of the forms or no entry at all. The table can always be put into this form by introducing more -configurations. Now let us give numbers to the -configurations, calling them , as in §1. The initial -configuration is always to be called . We also give numbers to the symbols and, in particular, blank , , . The lines of the table are now of form
| m-config. | Symbol | Operations | Final m-config. | |
|---|---|---|---|---|
一个可计算序列 由计算 的机器的描述所确定。例如,序列 001011011101111… 由第 234 页上的表确定;事实上,任何可计算序列都能用这样的表来描述。
把这些表化为某种标准形式会很有用。首先假设表的形式与第一个表(例如第 233 页上的 I)相同,也就是说,操作栏中的条目总是 这几种形式之一,或者根本没有条目。通过引入更多 -格局,总能把表化为这种形式。现在给 -格局编号,像 §1 那样称之为 。初始 -格局总是称为 。我们也给符号编号为 ,特别地,空白 ,,。于是表中各行具有如下形式
| m-格局 | 符号 | 操作 | 最终 m-格局 | |
|---|---|---|---|---|
Lines such as
are to be written as
and lines such as
to be written as
In this way we reduce each line of the table to a line of one of the forms , , .
像
这样的行要写成
而像
这样的行要写成
这样,表的每一行都化为 、、 三种形式之一。
From each line of form let us form an expression ; from each line of form we form an expression ; and from each line of form we form an expression .
Let us write down all expressions so formed from the table for the machine and separate them by semi-colons. In this way we obtain a complete description of the machine. In this description we shall replace by the letter "" followed by the letter "" repeated times, and by "" followed by "" repeated times. This new description of the machine may be called the standard description (S.D). It is made up entirely from the letters "", "", "", "", "", "", and from "".
If finally we replace "" by "1", "" by "2", "" by "3", "" by "4", "" by "5", "" by "6", and "" by "7" we shall have a description of the machine in the form of an arabic numeral. The integer represented by this numeral may be called a description number (D.N) of the machine. The D.N determine the S.D and the structure of the machine uniquely. The machine whose D.N is may be described as .
To each computable sequence there corresponds at least one description number, while to no description number does there correspond more than one computable sequence. The computable sequences and numbers are therefore enumerable.
由每个 形式的行,构成表达式 ;由每个 形式的行,构成表达式 ;由每个 形式的行,构成表达式 。
把由机器的表这样得到的所有表达式写下来,用分号隔开,就得到该机器的完整描述。在这一描述中,我们把 换成字母“”后接重复 次的字母“”,把 换成“”后接重复 次的“”。机器的这种新描述可称为标准描述(S.D)。它完全由字母“”“”“”“”“”“”以及“”组成。
最后,如果把“”换成“1”,“”换成“2”,“”换成“3”,“”换成“4”,“”换成“5”,“”换成“6”,“”换成“7”,就得到用阿拉伯数字表示的机器描述。这个数字所表示的整数可称为该机器的描述数(D.N)。D.N 唯一地确定 S.D 和机器的结构。D.N 为 的机器可记作 。
每个可计算序列至少对应一个描述数,而任何描述数都不对应一个以上的可计算序列。因此,可计算序列和可计算数都是可枚举的。
Let us find a description number for the machine I of §3. When we rename the -configurations its table becomes:
Other tables could be obtained by adding irrelevant lines such as
Our first standard form would be
The standard description is
DADDCRDAA;DAADDRDAAA;DAAADDCCRDAAAA;DAAAADDRDA;
A description number is
31332531173113353111731113322531111731111335317
and so is
3133253117311335311173111332253111173111133531731323253117
A number which is a description number of a circle-free machine will be called a satisfactory number. In §8 it is shown that there can be no general process for determining whether a given number is satisfactory or not.
我们来求 §3 中机器 I 的一个描述数。把 -格局重新命名后,它的表变为:
添加一些无关的行,比如
就能得到其他的表。我们的第一种标准形式为
标准描述为
DADDCRDAA;DAADDRDAAA;DAAADDCCRDAAAA;DAAAADDRDA;
一个描述数是
31332531173113353111731113322531111731111335317
下面这个也是:
3133253117311335311173111332253111173111133531731323253117
无循环机器的描述数称为满意数。§8 将证明,不可能有一般的过程来判定一个给定的数是否满意。
6. The universal computing machine
6. 通用计算机器
It is possible to invent a single machine which can be used to compute any computable sequence. If this machine is supplied with a tape on the beginning of which is written the S.D of some computing machine , then will compute the same sequence as . In this section I explain in outline the behaviour of the machine. The next section is devoted to giving the complete table for .
Let us first suppose that we have a machine which will write down on the -squares the successive complete configurations of . These might be expressed in the same form as on p. 235, using the second description, (C), with all symbols on one line. Or, better, we could transform this description (as in §5) by replacing each -configuration by "" followed by "" repeated the appropriate number of times, and by replacing each symbol by "" followed by "" repeated the appropriate number of times. The numbers of letters "" and "" are to agree with the numbers chosen in §5, so that, in particular, "0" is replaced by "", "1" by "", and the blanks by "". These substitutions are to be made after the complete configurations have been put together, as in (C). Difficulties arise if we do the substitution first. In each complete configuration the blanks would all have to be replaced by "", so that the complete configuration would not be expressed as a finite sequence of symbols.
可以设计出一台单一的机器,用来计算任何可计算序列。如果给这台机器 一条纸带,纸带开头写着某台计算机器 的 S.D,那么 将计算出与 相同的序列。本节概述这台机器的行为,下一节给出 的完整表。
首先假设有一台机器 ,它会在 -格中写下 相继的完整格局。这些格局可以用第 235 页上的形式表示,即使用第二种描述 (C),所有符号写在一行上。或者更好的办法是像 §5 那样变换这种描述:把每个 -格局换成“”后接重复适当次数的“”,把每个符号换成“”后接重复适当次数的“”。字母“”和“”的个数要与 §5 中选定的编号一致,特别地,“0”换成“”,“1”换成“”,空白换成“”。这些替换要在像 (C) 那样把完整格局拼接起来之后再进行。如果先做替换就会出现困难:每个完整格局中的空白都必须换成“”,于是完整格局就无法表示为有限的符号序列。
If in the description of the machine II of §3 we replace "" by "", "ə" by "", "" by "", then the sequence (C) becomes:
(This is the sequence of symbols on -squares.)
It is not difficult to see that if can be constructed, then so can . The manner of operation of could be made to depend on having the rules of operation (i.e., the S.D) of written somewhere within itself (i.e. within ); each step could be carried out by referring to these rules. We have only to regard the rules as being capable of being taken out and exchanged for others and we have something very akin to the universal machine.
One thing is lacking: at present the machine prints no figures. We may correct this by printing between each successive pair of complete configurations the figures which appear in the new configuration but not in the old. Then becomes
It is not altogether obvious that the -squares leave enough room for the necessary "rough work", but this is, in fact, the case.
The sequences of letters between the colons in expressions such as may be used as standard descriptions of the complete configurations. When the letters are replaced by figures, as in §5, we shall have a numerical description of the complete configuration, which may be called its description number.
如果在 §3 机器 II 的描述中,把“”换成“”,“ə”换成“”,“”换成“”,那么序列 (C) 变为:
(这是 -格上的符号序列。)
不难看出,如果 能够构造出来,那么 也能。可以让 的运作方式依赖于把 的操作规则(即 S.D)写在它自身内部的某处(即写在 内);每一步都可以参照这些规则来执行。只要把这些规则看作可以取出并换成别的规则,我们就得到了与通用机器非常接近的东西。
还缺一点:目前机器 不打印任何数字。可以这样补救:在每一对相继的完整格局之间,打印出现在新格局中而不在旧格局中的数字。于是 变为
-格是否给必要的“草稿工作”留有足够的空间,这一点并不完全显然,但事实上确实足够。
在像 这样的表达式中,冒号之间的字母序列可以用作完整格局的标准描述。像 §5 那样把字母换成数字,就得到完整格局的数字描述,可以称之为它的描述数。
7. Detailed description of the universal machine
7. 通用机器的详细描述
A table is given below of the behaviour of this universal machine. The -configurations of which the machine is capable are all those occurring in the first and last columns of the table, together with all those which occur when we write out the unabbreviated tables of those which appear in the table in the form of -functions. E.g., appears in the table and is an -function. Its unabbreviated table is (see p. 239)
| ə | |||
| not ə | |||
| Any | |||
| None |
Consequently is an -configuration of .
下面给出这台通用机器行为的表。机器可能处于的 -格局,是表中第一栏和最后一栏出现的全部 -格局,再加上把表中以 -函数形式出现的那些格局的表完整写出(不加简化)时所出现的全部 -格局。例如, 出现在表中,它是一个 -函数。它的完整表是(见第 239 页)
| ə | |||
| 非 ə | |||
| 任意 | |||
| 无 |
因此 是 的一个 -格局。
When is ready to start work the tape running through it bears on it the symbol ə on an -square and again ə on the next -square; after this, on -squares only, comes the S.D of the machine followed by a double colon "::" (a single symbol, on an -square). The S.D consists of a number of instructions, separated by semi-colons.
Each instruction consists of five consecutive parts
(i) "" followed by a sequence of letters "". This describes the relevant -configuration.
(ii) "" followed by a sequence of letters "". This describes the scanned symbol.
(iii) "" followed by another sequence of letters "". This describes the symbol into which the scanned symbol is to be changed.
(iv) "", "", or "", describing whether the machine is to move to left, right, or not at all.
(v) "" followed by a sequence of letters "". This describes the final -configuration.
The machine is to be capable of printing "", "", "", "0", "1", "", "", "", "", "", "". The S.D is formed from "", "", "", "", "", "", "".
当 准备开始工作时,穿过它的纸带上,在一个 -格上有符号 ə,在紧接着的 -格上又有一个 ə;此后仅在 -格上写着某台机器的 S.D,后面跟一个双冒号“::”(这是一个单独的符号,写在一个 -格上)。S.D 由若干条指令组成,指令之间用分号隔开。
每条指令由五个相继的部分组成:
(i) “”后接一串字母“”。它描述有关的 -格局。
(ii) “”后接一串字母“”。它描述被扫描的符号。
(iii) “”后接另一串字母“”。它描述被扫描符号要改成的符号。
(iv) “”“”或“”,说明机器要向左移、向右移还是不动。
(v) “”后接一串字母“”。它描述最终的 -格局。
机器 要能打印“”“”“”“0”“1”“”“”“”“”“”“”。S.D 由“”“”“”“”“”“”“”构成。
Subsidiary skeleton table
| m-config. | Symbol | Operations | Final m-config. |
|---|---|---|---|
| Not | |||
| Not |
. Starting from an -square, say, the sequence of symbols describing a configuration closest on the right of is marked out with letters . → .
. In the final configuration the machine is scanning the square which is four squares to the right of the last square of . is left unmarked.
辅助骨架表
| m-格局 | 符号 | 操作 | 最终 m-格局 |
|---|---|---|---|
| 非 | |||
| 非 |
:从某个 -格(比如 )出发,把 右边最近的、描述一个格局的符号序列 用字母 标记出来。→ 。
:在最终格局中,机器扫描的是 的最后一格右边第四格。 不加标记。
The table for
| m-config. | Symbol | Operations | Final m-config. |
|---|---|---|---|
. The machine prints on the -squares after → .
| m-config. | Symbol | Operations | Final m-config. |
|---|---|---|---|
. The machine marks the configuration in the last complete configuration with . → .
| m-config. | Symbol | Operations | Final m-config. |
|---|---|---|---|
| not nor |
. The machine finds the last semi-colon not marked with . It marks this semi-colon with and the configuration following it with .
| m-config. | Symbol | Operations | Final m-config. |
|---|---|---|---|
. The machine compares the sequences marked and . It erases all letters and . → if they are alike. Otherwise → .
. Taking the long view, the last instruction relevant to the last configuration is found. It can be recognised afterwards as the instruction following the last semi-colon marked . → .
的表
| m-格局 | 符号 | 操作 | 最终 m-格局 |
|---|---|---|---|
:机器在 之后的 -格上打印 ,→ 。
| m-格局 | 符号 | 操作 | 最终 m-格局 |
|---|---|---|---|
(译注:此处及下文 、 两行中的 按原刊字形照录;文中未定义 ,按上下文对应第 239 页的 ,即“找到最后一个形如 的符号”。)
:机器把最后一个完整格局中的格局用 标记出来,→ 。
| m-格局 | 符号 | 操作 | 最终 m-格局 |
|---|---|---|---|
| 既非 也非 |
:机器找到最后一个未用 标记的分号,用 标记这个分号,并用 标记它后面的格局。
| m-格局 | 符号 | 操作 | 最终 m-格局 |
|---|---|---|---|
:机器比较用 和 标记的两个序列,并擦去所有字母 和 。如果两者相同,→ ;否则 → 。
:从全过程看,机器找到与最后一个格局相关的最后一条指令。以后可以把它识别为最后一个用 标记的分号后面的那条指令。→ 。
| m-config. | Symbol | Operations | Final m-config. |
|---|---|---|---|
| not | |||
| not | |||
. The machine marks out the instructions. That part of the instructions which refers to operations to be carried out is marked with , and the final -configuration with . The letters are erased.
| m-格局 | 符号 | 操作 | 最终 m-格局 |
|---|---|---|---|
| 非 | |||
| 非 | |||
:机器把指令标记出来。指令中涉及要执行的操作的部分用 标记,最终 -格局用 标记。字母 被擦去。
| m-config. | Symbol | Operations | Final m-config. |
|---|---|---|---|
| not | |||
| not | |||
| Any | |||
| None |
. The last complete configuration is marked out into four sections. The configuration is left unmarked. The symbol directly preceding it is marked with . The remainder of the complete configuration is divided into two parts, of which the first is marked with and the last with . A colon is printed after the whole. → .
| m-格局 | 符号 | 操作 | 最终 m-格局 |
|---|---|---|---|
| 非 | |||
| 非 | |||
| 任意 | |||
| 无 |
(译注:第一行 按原刊照录;按上下文,其中的 似应为 ,否则 无从进入。)
:把最后一个完整格局划分为四段加以标记。格局本身不加标记;紧挨在它前面的符号用 标记;完整格局的其余部分分为两部分,前一部分用 标记,后一部分用 标记。最后在整个完整格局之后打印一个冒号。→ 。
| m-config. | Symbol | Operations | Final m-config. |
|---|---|---|---|
| not | |||
| not | |||
| not | |||
| not |
. The instructions (marked ) are examined. If it is found that they involve "Print 0" or "Print 1", then or is printed at the end.
| m-格局 | 符号 | 操作 | 最终 m-格局 |
|---|---|---|---|
| 非 | |||
| 非 | |||
| 非 | |||
| 非 |
(译注: 遇 一行的最终 -格局原刊印作 ,照录;按上下文似应为 ,否则 无从进入。)
:检查(用 标记的)指令。如果发现其中包含“打印 0”或“打印 1”,就在末尾打印 或 。
| m-config. | Symbol | Operations | Final m-config. |
|---|---|---|---|
. The next complete configuration is written down, carrying out the marked instructions. The letters , , , , are erased. → .
| m-格局 | 符号 | 操作 | 最终 m-格局 |
|---|---|---|---|
:执行已标记的指令,写下下一个完整格局。字母 、、、、 被擦去。→ 。
8. Application of the diagonal process
8. 对角线方法的应用
It may be thought that arguments which prove that the real numbers are not enumerable would also prove that the computable numbers and sequences cannot be enumerable*. It might, for instance, be thought that the limit of a sequence of computable numbers must be computable. This is clearly only true if the sequence of computable numbers is defined by some rule.
Or we might apply the diagonal process. "If the computable sequences are enumerable, let be the -th computable sequence, and let be the -th figure in . Let be the sequence with as its -th figure. Since is computable, there exists a number such that all . Putting , we have , i.e. 1 is even. This is impossible. The computable sequences are therefore not enumerable".
* Cf. Hobson, Theory of functions of a real variable (2nd ed., 1921), 87, 88.
也许有人会认为,证明实数不可枚举的论证,同样能证明可计算数和可计算序列不可枚举*。例如,有人可能认为可计算数序列的极限一定是可计算的。显然,只有当这个可计算数序列是由某种规则定义的时候,这才成立。
或者我们可以应用对角线方法:“如果可计算序列是可枚举的,设 为第 个可计算序列, 为 中的第 个数字。设 是以 为其第 个数字的序列。由于 是可计算的,存在一个数 ,使得对所有 有 。令 ,得 ,即 1 是偶数。这是不可能的。因此可计算序列不可枚举。”
* 参见 Hobson, Theory of functions of a real variable(第 2 版,1921),第 87、88 页。
The fallacy in this argument lies in the assumption that is computable. It would be true if we could enumerate the computable sequences by finite means, but the problem of enumerating computable sequences is equivalent to the problem of finding out whether a given number is the D.N of a circle-free machine, and we have no general process for doing this in a finite number of steps. In fact, by applying the diagonal process argument correctly, we can show that there cannot be any such general process.
The simplest and most direct proof of this is by showing that, if this general process exists, then there is a machine which computes . This proof, although perfectly sound, has the disadvantage that it may leave the reader with a feeling that "there must be something wrong". The proof which I shall give has not this disadvantage, and gives a certain insight into the significance of the idea "circle-free". It depends not on constructing , but on constructing , whose -th figure is .
这个论证的谬误在于假定了 是可计算的。如果我们能用有限手段枚举可计算序列,这一假定就成立;但枚举可计算序列的问题等价于判定一个给定的数是否为某台无循环机器的 D.N 的问题,而我们没有在有限步内做到这一点的一般过程。事实上,正确地运用对角线论证,可以证明不可能存在任何这样的一般过程。
对此最简单、最直接的证明是:证明如果存在这种一般过程,就存在一台计算 的机器。这个证明虽然完全可靠,却有一个缺点:读者可能会觉得“这里一定有什么不对”。我将给出的证明没有这个缺点,而且能让人对“无循环”这一概念的意义有所洞察。它所依赖的不是构造 ,而是构造 ,其第 个数字为 。
Let us suppose that there is such a process; that is to say, that we can invent a machine which, when supplied with the S.D of any computing machine will test this S.D and if is circular will mark the S.D with the symbol "" and if it is circle-free will mark it with "". By combining the machines and we could construct a machine to compute the sequence . The machine may require a tape. We may suppose that it uses the -squares beyond all symbols on -squares, and that when it has reached its verdict all the rough work done by is erased.
The machine has its motion divided into sections. In the first sections, among other things, the integers have been written down and tested by the machine . A certain number, say , of them have been found to be the D.N's of circle-free machines. In the -th section the machine tests the number . If is satisfactory, i.e., if it is the D.N of a circle-free machine, then and the first figures of the sequence of which a D.N is are calculated. The -th figure of this sequence is written down as one of the figures of the sequence computed by . If is not satisfactory, then and the machine goes on to the -th section of its motion.
假设存在这样一种过程,也就是说,我们能设计出一台机器 ,当给它任一计算机器 的 S.D 时,它会检验这个 S.D:如果 是有循环的,就用符号“”标记该 S.D;如果是无循环的,就用“”标记。把机器 和 结合起来,就可以构造出计算序列 的机器 。机器 可能需要一条纸带。我们可以假设它使用 -格上所有符号之后的 -格,并且在作出判定后, 所做的全部草稿工作都被擦去。
机器 的运动分为若干段。在前 段中,除了别的工作之外,整数 已被写下并由机器 检验过。其中有若干个(比如 个)被发现是无循环机器的 D.N。在第 段中,机器 检验数 。如果 是满意的,即它是某台无循环机器的 D.N,那么 ,并计算以 为一个 D.N 的那个序列的前 个数字。这个序列的第 个数字被写下,作为 所计算的序列 的一个数字。如果 不是满意的,那么 ,机器进入其运动的第 段。
From the construction of we can see that is circle-free. Each section of the motion of comes to an end after a finite number of steps. For, by our assumption about , the decision as to whether is satisfactory is reached in a finite number of steps. If is not satisfactory, then the -th section is finished. If is satisfactory, this means that the machine whose D.N is is circle-free, and therefore its -th figure can be calculated in a finite number of steps. When this figure has been calculated and written down as the -th figure of , the -th section is finished. Hence is circle-free.
Now let be the D.N of . What does do in the -th section of its motion? It must test whether is satisfactory, giving a verdict "" or "". Since is the D.N of and since is circle-free, the verdict cannot be "". On the other hand the verdict cannot be "". For if it were, then in the -th section of its motion would be bound to compute the first figures of the sequence computed by the machine with as its D.N and to write down the -th as a figure of the sequence computed by . The computation of the first figures would be carried out all right, but the instructions for calculating the -th would amount to "calculate the first figures computed by and write down the -th". This -th figure would never be found. I.e., is circular, contrary both to what we have found in the last paragraph and to the verdict "". Thus both verdicts are impossible and we conclude that there can be no machine .
由 的构造可以看出 是无循环的。 运动的每一段都在有限步后结束。因为按照我们对 的假设,关于 是否满意的判定在有限步内作出。如果 不满意,第 段就结束了。如果 是满意的,这意味着 D.N 为 的机器 是无循环的,因此它的第 个数字可以在有限步内算出。这个数字算出并作为 的第 个数字写下之后,第 段就结束了。因此 是无循环的。
现在设 是 的 D.N。 在其运动的第 段中做什么?它必须检验 是否满意,给出判定“”或“”。由于 是 的 D.N,而 是无循环的,判定不可能是“”。另一方面,判定也不可能是“”。因为如果是“”,那么在其运动的第 段中, 就必须计算以 为 D.N 的机器所计算的序列的前 个数字,并把第 个数字写下,作为 所计算的序列的一个数字。前 个数字的计算会顺利完成,但计算第 个数字的指令就等于“计算 所计算的前 个数字,并写下第 个”。这个第 个数字永远也找不到。也就是说, 是有循环的,这既与上一段的结论矛盾,也与判定“”矛盾。因此两种判定都不可能,我们断定不可能存在机器 。
(译注:“computed by ”中的 原刊印为普通斜体,照录;按上下文即机器 。)
We can show further that there can be no machine which, when supplied with the S.D of an arbitrary machine , will determine whether ever prints a given symbol (0 say).
We will first show that, if there is a machine , then there is a general process for determining whether a given machine prints 0 infinitely often. Let be a machine which prints the same sequence as , except that in the position where the first 0 printed by stands, prints . is to have the first two symbols 0 replaced by , and so on. Thus, if were to print
then would print
and would print
我们还可以进一步证明:不可能存在这样一台机器 ,当给它任意机器 的 S.D 时,它能判定 是否会打印某个给定的符号(比如 0)。
我们先证明:如果存在机器 ,就存在一般过程来判定一台给定的机器 是否无穷多次地打印 0。设 是这样一台机器:它打印与 相同的序列,只是在 打印的第一个 0 所在的位置上, 打印 。 则把前两个符号 0 换成 ,依此类推。于是,如果 打印
那么 将打印
而 将打印
Now let be a machine which, when supplied with the S.D of , will write down successively the S.D of , of , of , … (there is such a machine). We combine with and obtain a new machine, . In the motion of first is used to write down the S.D of , and then tests it, is written if it is found that never prints 0; then writes the S.D of , and this is tested, being printed if and only if never prints 0, and so on. Now let us test with . If it is found that never prints 0, then prints 0 infinitely often; if prints 0 sometimes, then does not print 0 infinitely often.
Similarly there is a general process for determining whether prints 1 infinitely often. By a combination of these processes we have a process for determining whether prints an infinity of figures, i.e. we have a process for determining whether is circle-free. There can therefore be no machine .
The expression "there is a general process for determining …" has been used throughout this section as equivalent to "there is a machine which will determine …". This usage can be justified if and only if we can justify our definition of "computable". For each of these "general process" problems can be expressed as a problem concerning a general process for determining whether a given integer has a property [e.g. might mean " is satisfactory" or " is the Gödel representation of a provable formula"], and this is equivalent to computing a number whose -th figure is 1 if is true and 0 if it is false.
现在设 是这样一台机器:当给它 的 S.D 时,它会依次写下 、、……的 S.D(这样的机器是存在的)。把 与 结合,得到一台新机器 。在 的运动中,先用 写下 的 S.D,然后由 检验它;如果发现 从不打印 0,就写下 ;接着 写下 的 S.D 并加以检验,当且仅当 从不打印 0 时打印 ,依此类推。现在用 检验 。如果发现 从不打印 0,那么 无穷多次地打印 0;如果 有时打印 0,那么 不会无穷多次地打印 0。
类似地,存在一般过程来判定 是否无穷多次地打印 1。把这些过程组合起来,就得到判定 是否打印无穷多个数字的过程,即得到判定 是否无循环的过程。因此不可能存在机器 。
本节通篇把“存在一般过程来判定……”这一说法当作与“存在一台机器来判定……”等价。当且仅当我们能为“可计算”的定义提供辩护时,这种用法才是正当的。因为每个这样的“一般过程”问题,都可以表述为关于判定一个给定整数 是否具有性质 的一般过程的问题[例如 可以表示“ 是满意的”或“ 是某个可证公式的哥德尔表示”],而这等价于计算这样一个数:若 为真,其第 个数字为 1,若为假则为 0。
9. The extent of the computable numbers
9. 可计算数的范围
No attempt has yet been made to show that the "computable" numbers include all numbers which would naturally be regarded as computable. All arguments which can be given are bound to be, fundamentally, appeals to intuition, and for this reason rather unsatisfactory mathematically. The real question at issue is "What are the possible processes which can be carried out in computing a number?"
The arguments which I shall use are of three kinds.
(a) A direct appeal to intuition.
(b) A proof of the equivalence of two definitions (in case the new definition has a greater intuitive appeal).
(c) Giving examples of large classes of numbers which are computable.
Once it is granted that computable numbers are all "computable", several other propositions of the same character follow. In particular, it follows that, if there is a general process for determining whether a formula of the Hilbert function calculus is provable, then the determination can be carried out by a machine.
到目前为止,我们还没有尝试证明“可计算”数包括了所有自然会被看作可计算的数。所能给出的一切论证,归根结底都必然是诉诸直觉,因此在数学上相当不能令人满意。真正的问题在于:“在计算一个数时,可能执行的过程有哪些?”
我将使用的论证有三类:
(a) 直接诉诸直觉。
(b) 证明两个定义的等价性(以防新定义在直觉上更有说服力)。
(c) 给出可计算数的一些大类的例子。
一旦承认可计算数就是全部“可以计算的”数,就会推出若干具有同样性质的其他命题。特别地,可以推出:如果存在一般过程来判定希尔伯特函项演算中的一个公式是否可证,那么这一判定就可以由机器来完成。
I. [Type (a)]. This argument is only an elaboration of the ideas of §1.
Computing is normally done by writing certain symbols on paper. We may suppose this paper is divided into squares like a child's arithmetic book. In elementary arithmetic the two-dimensional character of the paper is sometimes used. But such a use is always avoidable, and I think that it will be agreed that the two-dimensional character of paper is no essential of computation. I assume then that the computation is carried out on one-dimensional paper, i.e. on a tape divided into squares. I shall also suppose that the number of symbols which may be printed is finite. If we were to allow an infinity of symbols, then there would be symbols differing to an arbitrarily small extent†. The effect of this restriction of the number of symbols is not very serious. It is always possible to use sequences of symbols in the place of single symbols. Thus an Arabic numeral such as 17 or 999999999999999 is normally treated as a single symbol. Similarly in any European language words are treated as single symbols (Chinese, however, attempts to have an enumerable infinity of symbols). The differences from our point of view between the single and compound symbols is that the compound symbols, if they are too lengthy, cannot be observed at one glance. This is in accordance with experience. We cannot tell at a glance whether 9999999999999999 and 999999999999999 are the same.
† If we regard a symbol as literally printed on a square we may suppose that the square is , . The symbol is defined as a set of points in this square, viz. the set occupied by printer's ink. If these sets are restricted to be measurable, we can define the "distance" between two symbols as the cost of transforming one symbol into the other if the cost of moving unit area of printer's ink unit distance is unity, and there is an infinite supply of ink at , . With this topology the symbols form a conditionally compact space.
I.[(a) 类]这个论证只是对 §1 中思想的详细阐述。
计算通常是在纸上写下某些符号来进行的。我们可以假设这张纸像儿童的算术本那样划分成方格。在初等算术中,有时会用到纸的二维性。但这种用法总是可以避免的,我想大家都会同意,纸的二维性对计算来说并非本质的。因此我假定计算是在一维的纸上,即在划分成方格的纸带上进行的。我还假设可以打印的符号个数是有限的。如果允许有无穷多个符号,就会有差别任意小的符号†。对符号个数的这一限制,影响并不严重。总可以用符号序列来代替单个符号。例如,像 17 或 999999999999999 这样的阿拉伯数字,通常被当作单个符号。类似地,在任何欧洲语言中,单词都被当作单个符号(不过,汉语试图拥有可枚举的无穷多个符号)。从我们的观点看,单个符号与复合符号的区别在于:复合符号如果太长,就无法一眼看清。这与经验相符:我们无法一眼看出 9999999999999999 与 999999999999999 是否相同。
† 如果把符号看作确实印在一个方格上,我们可以假设方格为 ,。符号定义为该方格中的一个点集,即被印刷油墨所占据的点集。如果把这些集合限定为可测的,就可以把两个符号之间的“距离”定义为把一个符号变换成另一个符号的代价,其中把单位面积的油墨移动单位距离的代价为 1,并且在 , 处有无限的油墨供应。在这种拓扑下,符号构成一个条件紧空间。
The behaviour of the computer at any moment is determined by the symbols which he is observing, and his "state of mind" at that moment. We may suppose that there is a bound to the number of symbols or squares which the computer can observe at one moment. If he wishes to observe more, he must use successive observations. We will also suppose that the number of states of mind which need be taken into account is finite. The reasons for this are of the same character as those which restrict the number of symbols. If we admitted an infinity of states of mind, some of them will be "arbitrarily close" and will be confused. Again, the restriction is not one which seriously affects computation, since the use of more complicated states of mind can be avoided by writing more symbols on the tape.
Let us imagine the operations performed by the computer to be split up into "simple operations" which are so elementary that it is not easy to imagine them further divided. Every such operation consists of some change of the physical system consisting of the computer and his tape. We know the state of the system if we know the sequence of symbols on the tape, which of these are observed by the computer (possibly with a special order), and the state of mind of the computer. We may suppose that in a simple operation not more than one symbol is altered. Any other changes can be split up into simple changes of this kind. The situation in regard to the squares whose symbols may be altered in this way is the same as in regard to the observed squares. We may, therefore, without loss of generality, assume that the squares whose symbols are changed are always "observed" squares.
计算者在任一时刻的行为,由他此刻正在观察的符号和他此刻的“心智状态”决定。我们可以假设,计算者在同一时刻能观察的符号或方格的个数有一个上界 。如果他想观察更多,就必须进行相继的观察。我们还假设需要考虑的心智状态的个数是有限的。其理由与限制符号个数的理由性质相同:如果承认有无穷多个心智状态,其中一些就会“任意接近”而被混淆。同样,这一限制也不会严重影响计算,因为可以通过在纸带上写下更多的符号,来避免使用更复杂的心智状态。
设想把计算者执行的操作拆分为“简单操作”,它们基本到难以想象还能再分。每一个这样的操作都是由计算者及其纸带所构成的物理系统的某种变化。如果知道纸带上的符号序列、其中哪些正被计算者观察(可能按某种特殊顺序),以及计算者的心智状态,我们就知道了系统的状态。可以假设在一次简单操作中,被改动的符号不超过一个。任何其他变化都可以拆分为这类简单变化。对于其符号可能这样被改动的方格,情况与被观察的方格相同。因此,我们可以不失一般性地假定,符号被改动的方格总是“被观察的”方格。
Besides these changes of symbols, the simple operations must include changes of distribution of observed squares. The new observed squares must be immediately recognisable by the computer. I think it is reasonable to suppose that they can only be squares whose distance from the closest of the immediately previously observed squares does not exceed a certain fixed amount. Let us say that each of the new observed squares is within squares of an immediately previously observed square.
In connection with "immediate recognisability", it may be thought that there are other kinds of square which are immediately recognisable. In particular, squares marked by special symbols might be taken as immediately recognisable. Now if these squares are marked only by single symbols there can be only a finite number of them, and we should not upset our theory by adjoining these marked squares to the observed squares. If, on the other hand, they are marked by a sequence of symbols, we cannot regard the process of recognition as a simple process. This is a fundamental point and should be illustrated. In most mathematical papers the equations and theorems are numbered. Normally the numbers do not go beyond (say) 1000. It is, therefore, possible to recognise a theorem at a glance by its number. But if the paper was very long, we might reach Theorem 157767733443477; then, further on in the paper, we might find "… hence (applying Theorem 157767733443477) we have …". In order to make sure which was the relevant theorem we should have to compare the two numbers figure by figure, possibly ticking the figures off in pencil to make sure of their not being counted twice. If in spite of this it is still thought that there are other "immediately recognisable" squares, it does not upset my contention so long as these squares can be found by some process of which my type of machine is capable. This idea is developed in III below.
除了这些符号的变化之外,简单操作还必须包括被观察方格分布的变化。新的被观察方格必须能被计算者立即辨认出来。我认为可以合理地假设:它们只能是这样的方格,其与紧前一次被观察的方格中最近者的距离不超过某个固定的量。不妨说,每个新的被观察方格都在某个紧前一次被观察方格的 格之内。
关于“立即可辨认性”,也许有人会认为还有其他种类的方格是立即可辨认的。特别地,用特殊符号标记的方格可以被看作立即可辨认的。如果这些方格只用单个符号标记,那么它们只能有有限多个,把这些标记过的方格并入被观察的方格,并不会破坏我们的理论。反之,如果它们是用符号序列标记的,我们就不能把辨认过程看作简单过程。这是一个根本性的要点,应当举例说明。大多数数学论文中,方程和定理都是编号的。通常编号不会超过(比如说)1000,因此可以凭编号一眼认出一条定理。但如果论文非常长,我们可能会写到定理 157767733443477;然后在论文更后面,可能会看到“……因此(应用定理 157767733443477)我们有……”。为了确定所指的是哪条定理,我们必须逐位比较这两个数,也许还要用铅笔把数字逐个勾掉,以免重复计数。如果尽管如此,仍有人认为存在其他“立即可辨认”的方格,只要这些方格能通过我这类机器所能执行的某种过程找到,就不会推翻我的论点。这一想法将在下面的 III 中展开。
The simple operations must therefore include:
(a) Changes of the symbol on one of the observed squares.
(b) Changes of one of the squares observed to another square within squares of one of the previously observed squares.
It may be that some of these changes necessarily involve a change of state of mind. The most general single operation must therefore be taken to be one of the following:
(A) A possible change (a) of symbol together with a possible change of state of mind.
(B) A possible change (b) of observed squares, together with a possible change of state of mind.
The operation actually performed is determined, as has been suggested on p. 250, by the state of mind of the computer and the observed symbols. In particular, they determine the state of mind of the computer after the operation is carried out.
We may now construct a machine to do the work of this computer. To each state of mind of the computer corresponds an "-configuration" of the machine. The machine scans squares corresponding to the squares observed by the computer. In any move the machine can change a symbol on a scanned square or can change any one of the scanned squares to another square distant not more than squares from one of the other scanned squares. The move which is done, and the succeeding configuration, are determined by the scanned symbol and the -configuration. The machines just described do not differ very essentially from computing machines as defined in §2, and corresponding to any machine of this type a computing machine can be constructed to compute the same sequence, that is to say the sequence computed by the computer.
因此,简单操作必须包括:
(a) 改变某个被观察方格上的符号。
(b) 把某个被观察的方格改为另一个方格,后者在某个先前被观察方格的 格之内。
可能其中某些变化必然伴随心智状态的改变。因此,最一般的单个操作必须看作以下两者之一:
(A) 一次可能的 (a) 类符号变化,连同一次可能的心智状态变化。
(B) 一次可能的 (b) 类被观察方格的变化,连同一次可能的心智状态变化。
如第 250 页所提示的,实际执行的操作由计算者的心智状态和被观察的符号决定。特别地,它们决定了操作执行之后计算者的心智状态。
现在我们可以构造一台机器来完成这位计算者的工作。计算者的每个心智状态对应于机器的一个“-格局”。机器扫描 个方格,对应于计算者观察的 个方格。在任一步中,机器可以改变一个被扫描方格上的符号,或者把任一被扫描的方格改为另一个方格,后者与其他某个被扫描方格的距离不超过 格。所执行的动作以及随后的格局,由被扫描的符号和 -格局决定。刚才描述的机器与 §2 中定义的计算机器没有本质的不同,对于任何这类机器,都可以构造一台计算机器来计算同一序列,也就是计算者所计算的序列。
II. [Type (b)].
If the notation of the Hilbert functional calculus† is modified so as to be systematic, and so as to involve only a finite number of symbols, it becomes possible to construct an automatic‡ machine , which will find all the provable formulae of the calculus§.
Now let be a sequence, and let us denote by the proposition "The -th figure of is 1", so that‖ means "The -th figure of is 0". Suppose further that we can find a set of properties which define the sequence and which can be expressed in terms of and of the propositional functions meaning " is a non-negative integer" and meaning "". When we join all these formulae together conjunctively, we shall have a formula, say, which defines . The terms of must include the necessary parts of the Peano axioms, viz.,
which we will abbreviate to .
When we say " defines ", we mean that is not a provable formula, and also that, for each , one of the following formulae or is provable.
where stands for .
† The expression "the functional calculus" is used throughout to mean the restricted Hilbert functional calculus.
‡ It is most natural to construct first a choice machine (§2) to do this. But it is then easy to construct the required automatic machine. We can suppose that the choices are always choices between two possibilities 0 and 1. Each proof will then be determined by a sequence of choices ( or 1, or 1, …, or 1), and hence the number completely determines the proof. The automatic machine carries out successively proof 1, proof 2, proof 3, ….
§ The author has found a description of such a machine.
‖ The negation sign is written before an expression and not over it.
¶ A sequence of primes is denoted by .
II.[(b) 类]
如果把希尔伯特函项演算†的记法改造得系统化,并且只涉及有限多个符号,就有可能构造一台自动‡机器 ,它能找出该演算的全部可证公式§。
现在设 是一个序列,用 表示命题“ 的第 个数字是 1”,于是‖ 表示“ 的第 个数字是 0”。再假设我们能找到一组定义序列 的性质,它们可以用 以及命题函项 (表示“ 是非负整数”)和 (表示“”)来表达。把所有这些公式用合取连接起来,就得到一个定义 的公式,记为 。 的各项必须包括皮亚诺公理中必要的部分,即
我们把它简记为 。
当我们说“ 定义 ”时,意思是: 不是可证公式,并且对每个 ,下列公式 或 中有一个是可证的。
其中 代表 。
† “函项演算”一语通篇指狭义希尔伯特函项演算。
‡ 最自然的做法是先构造一台选择机器(§2)来完成此事,然后再构造所需的自动机器就容易了。可以假设每次选择总是在 0 和 1 两种可能中进行。于是每个证明由一个选择序列 决定( 或 1, 或 1,……, 或 1),因此数 完全确定该证明。自动机器依次执行证明 1、证明 2、证明 3……
§ 作者已找到这样一台机器的描述。
‖ 否定号写在表达式前面,而不是写在其上方。
¶ 个撇号组成的序列记为 。
I say that is then a computable sequence: a machine to compute can be obtained by a fairly simple modification of .
We divide the motion of into sections. The -th section is devoted to finding the -th figure of . After the -th section is finished a double colon is printed after all the symbols, and the succeeding work is done wholly on the squares to the right of this double colon. The first step is to write the letter "" followed by the formula and then "" followed by . The machine then starts to do the work of , but whenever a provable formula is found, this formula is compared with and with . If it is the same formula as , then the figure "1" is printed, and the -th section is finished. If it is , then "0" is printed and the section is finished. If it is different from both, then the work of is continued from the point at which it had been abandoned. Sooner or later one of the formulae or is reached; this follows from our hypotheses about and , and the known nature of . Hence the -th section will eventually be finished. is circle-free; is computable.
It can also be shown that the numbers definable in this way by the use of axioms include all the computable numbers. This is done by describing computing machines in terms of the function calculus.
It must be remembered that we have attached rather a special meaning to the phrase " defines ". The computable numbers do not include all (in the ordinary sense) definable numbers. Let be a sequence whose -th figure is 1 or 0 according as is or is not satisfactory. It is an immediate consequence of the theorem of §8 that is not computable. It is (so far as we know at present) possible that any assigned number of figures of can be calculated, but not by a uniform process. When sufficiently many figures of have been calculated, an essentially new method is necessary in order to obtain more figures.
我说 于是是一个可计算序列:对 作相当简单的修改,就能得到计算 的机器 。
我们把 的运动分为若干段。第 段用于求出 的第 个数字。第 段结束后,在所有符号之后打印一个双冒号 ,随后的工作完全在这个双冒号右边的方格上进行。第一步是写下字母“”后接公式 ,再写“”后接 。然后机器 开始做 的工作,但每当找到一个可证公式,就把它与 和 比较。如果它与 是同一个公式,就打印数字“1”,第 段结束。如果它是 ,就打印“0”,该段结束。如果与两者都不同,就从中断处继续 的工作。迟早会得到公式 或 之一;这由我们关于 和 的假设以及 的已知性质推出。因此第 段终将结束。 是无循环的; 是可计算的。
还可以证明,以这种方式借助公理可定义的数 包括了全部可计算数。这可以通过用函项演算来描述计算机器而做到。
必须记住,我们赋予“ 定义 ”这一说法的含义相当特殊。可计算数并不包括全部(通常意义上)可定义的数。设 是这样一个序列:按照 是满意的或不是满意的,其第 个数字为 1 或 0。由 §8 的定理立即推出 不可计算。(就我们目前所知)有可能 的任意指定个数的数字都能算出,但不是用统一的过程。当 的数字已经算出足够多时,要得到更多的数字,就需要本质上全新的方法。
III. This may be regarded as a modification of I or as a corollary of II.
We suppose, as in I, that the computation is carried out on a tape; but we avoid introducing the "state of mind" by considering a more physical and definite counterpart of it. It is always possible for the computer to break off from his work, to go away and forget all about it, and later to come back and go on with it. If he does this he must leave a note of instructions (written in some standard form) explaining how the work is to be continued. This note is the counterpart of the "state of mind". We will suppose that the computer works in such a desultory manner that he never does more than one step at a sitting. The note of instructions must enable him to carry out one step and write the next note. Thus the state of progress of the computation at any stage is completely determined by the note of instructions and the symbols on the tape. That is, the state of the system may be described by a single expression (sequence of symbols), consisting of the symbols on the tape followed by (which we suppose not to appear elsewhere) and then by the note of instructions. This expression may be called the "state formula". We know that the state formula at any given stage is determined by the state formula before the last step was made, and we assume that the relation of these two formulae is expressible in the functional calculus. In other words, we assume that there is an axiom which expresses the rules governing the behaviour of the computer, in terms of the relation of the state formula at any stage to the state formula at the preceding stage. If this is so, we can construct a machine to write down the successive state formulae, and hence to compute the required number.
III. 这可以看作 I 的一种修改,也可以看作 II 的推论。
像 I 中那样,我们假设计算在纸带上进行;但我们考虑“心智状态”的一个更物理、更确定的对应物,从而避免引入“心智状态”。计算者总可以中断工作,走开并把它全忘掉,过后再回来继续。如果他这样做,就必须留下一张(以某种标准形式写成的)指令便条,说明工作该如何继续。这张便条就是“心智状态”的对应物。我们假设计算者工作得如此散漫,每次坐下来从不做多于一步。指令便条必须使他能执行一步并写下下一张便条。这样,计算在任何阶段的进展状态,完全由指令便条和纸带上的符号决定。也就是说,系统的状态可以用单个表达式(符号序列)来描述:先是纸带上的符号,后接 (我们假设它不在别处出现),然后是指令便条。这个表达式可称为“状态公式”。我们知道,任一给定阶段的状态公式由上一步之前的状态公式决定,并且我们假定这两个公式之间的关系可以在函项演算中表达。换言之,我们假定存在一条公理 ,它用任一阶段的状态公式与前一阶段的状态公式之间的关系,表达支配计算者行为的规则。如果是这样,我们就能构造一台机器来写下相继的状态公式,从而计算出所需的数。
10. Examples of large classes of numbers which are computable
10. 可计算数的一些大类的例子
It will be useful to begin with definitions of a computable function of an integral variable and of a computable variable, etc. There are many equivalent ways of defining a computable function of an integral variable. The simplest is, possibly, as follows. If is a computable sequence in which 0 appears infinitely† often, and is an integer, then let us define to be the number of figures 1 between the -th and the -th figure 0 in . Then is computable if, for all and some , . An equivalent definition is this. Let mean . Then, if we can find a contradiction-free axiom , such that , and if for each integer there exists an integer , such that
and such that, if , then, for some ,
then may be said to be a computable function.
† If computes , then the problem whether prints 0 infinitely often is of the same character as the problem whether is circle-free.
先给出整变量的可计算函数、可计算变量等的定义会很有用。整变量可计算函数有许多等价的定义方式,最简单的大概如下。如果 是一个其中 0 出现无穷†多次的可计算序列, 是一个整数,定义 为 中第 个与第 个数字 0 之间的数字 1 的个数。那么,如果对所有 及某个 有 ,则 是可计算的。一个等价的定义是:设 表示 。如果能找到一条无矛盾的公理 ,使得 ,并且对每个整数 存在整数 ,使得
并且当 时,对某个 有
那么就可以说 是一个可计算函数。
† 如果 计算 ,那么 是否无穷多次地打印 0 的问题,与 是否无循环的问题性质相同。
We cannot define general computable functions of a real variable, since there is no general method of describing a real number, but we can define a computable function of a computable variable. If is satisfactory, let be the number computed by , and let
unless or , in either of which cases . Then, as runs through the satisfactory numbers, runs through the computable numbers†. Now let be a computable function which can be shown to be such that for any satisfactory argument its value is satisfactory‡. Then the function , defined by , is a computable function and all computable functions of a computable variable are expressible in this form.
Similar definitions may be given of computable functions of several variables, computable-valued functions of an integral variable, etc.
† A function may be defined in many other ways so as to run through the computable numbers.
‡ Although it is not possible to find a general process for determining whether a given number is satisfactory, it is often possible to show that certain classes of numbers are satisfactory.
我们无法定义实变量的一般可计算函数,因为没有描述实数的一般方法;但我们可以定义可计算变量的可计算函数。若 是满意的,设 为 所计算的数,并令
但当 或 时,令 。于是,当 遍历满意数时, 遍历可计算数†。现在设 是一个可计算函数,并且可以证明它对任何满意的自变量取满意的值‡。那么由 定义的函数 是可计算函数,而且可计算变量的一切可计算函数都能表示成这种形式。
对多变量的可计算函数、整变量的可计算值函数等,也可以给出类似的定义。
† 函数 还可以用许多其他方式定义,使之遍历可计算数。
‡ 虽然不可能找到判定一个给定的数是否满意的一般过程,但常常可以证明某些类的数是满意的。
I shall enunciate a number of theorems about computability, but I shall prove only (ii) and a theorem similar to (iii).
(i) A computable function of a computable function of an integral or computable variable is computable.
(ii) Any function of an integral variable defined recursively in terms of computable functions is computable. I.e. if is computable, and is some integer, then is computable, where
(iii) If is a computable function of two integral variables, then is a computable function of .
(iv) If is a computable function whose value is always 0 or 1, then the sequence whose -th figure is is computable.
我将陈述一些关于可计算性的定理,但只证明 (ii) 以及一个与 (iii) 类似的定理。
(i) 整变量或可计算变量的可计算函数的可计算函数是可计算的。
(ii) 用可计算函数递归定义的整变量函数是可计算的。即:如果 是可计算的, 是某个整数,那么 是可计算的,其中
(iii) 如果 是两个整变量的可计算函数,那么 是 的可计算函数。
(iv) 如果 是一个值总为 0 或 1 的可计算函数,那么第 个数字为 的序列是可计算的。
Dedekind's theorem does not hold in the ordinary form if we replace "real" throughout by "computable". But it holds in the following form:
(v) If is a propositional function of the computable numbers and
and there is a general process for determining the truth value of , then there is a computable number such that
In other words, the theorem holds for any section of the computables such that there is a general process for determining to which class a given number belongs.
Owing to this restriction of Dedekind's theorem, we cannot say that a computable bounded increasing sequence of computable numbers has a computable limit. This may possibly be understood by considering a sequence such as
On the other hand, (v) enables us to prove
(vi) If and are computable and and , where is a computable increasing continuous function, then there is a unique computable number , satisfying and .
如果把“实”处处换成“可计算”,戴德金定理在通常的形式下并不成立。但它在如下形式下成立:
(v) 如果 是可计算数的命题函项,并且
并且存在判定 真值的一般过程,那么存在一个可计算数 ,使得
换言之,对于可计算数的任何一个分割,只要存在判定一个给定的数属于哪一类的一般过程,该定理就成立。
由于戴德金定理受到这种限制,我们不能说可计算数的一个可计算的有界递增序列具有可计算的极限。考虑如下序列也许有助于理解这一点:
另一方面,由 (v) 可以证明
(vi) 如果 与 是可计算的,,且 ,其中 是一个可计算的递增连续函数,那么存在唯一的可计算数 ,满足 且 。
Computable convergence
We shall say that a sequence of computable numbers converges computably if there is a computable integral valued function of the computable variable , such that we can show that, if and and , then .
We can then show that
(vii) A power series whose coefficients form a computable sequence of computable numbers is computably convergent at all computable points in the interior of its interval of convergence.
(viii) The limit of a computably convergent sequence is computable.
And with the obvious definition of "uniformly computably convergent":
(ix) The limit of a uniformly computably convergent computable sequence of computable functions is a computable function. Hence
(x) The sum of a power series whose coefficients form a computable sequence is a computable function in the interior of its interval of convergence.
From (viii) and we deduce that is computable.
From we deduce that is computable.
From (vi) we deduce that all real algebraic numbers are computable.
From (vi) and (x) we deduce that the real zeros of the Bessel functions are computable.
可计算收敛
我们说可计算数的序列 可计算地收敛,如果存在可计算变量 的一个可计算的整数值函数 ,使我们能证明:若 , 且 ,则 。
于是可以证明:
(vii) 系数构成可计算数的可计算序列的幂级数,在其收敛区间内部的一切可计算点上都可计算地收敛。
(viii) 可计算收敛序列的极限是可计算的。
再用“一致可计算收敛”的显然定义,有:
(ix) 可计算函数的一致可计算收敛的可计算序列,其极限是可计算函数。因此
(x) 系数构成可计算序列的幂级数,其和在收敛区间内部是可计算函数。
由 (viii) 和 ,推出 是可计算的。
由 ,推出 是可计算的。
由 (vi) 推出一切实代数数都是可计算的。
由 (vi) 和 (x) 推出贝塞尔函数的实零点是可计算的。
Proof of (ii)
Let mean "", and let mean "". is the axiom for . We take to be
I shall not give the proof of consistency of . Such a proof may be constructed by the methods used in Hilbert and Bernays, Grundlagen der Mathematik (Berlin, 1934), p. 209 et seq. The consistency is also clear from the meaning.
(ii) 的证明
设 表示“”, 表示“”。 是 的公理。取 为
我不给出 的无矛盾性证明。这样的证明可以用 Hilbert 与 Bernays 的 Grundlagen der Mathematik(柏林,1934)第 209 页及以下所用的方法构造。从含义上看,其无矛盾性也是清楚的。
Suppose that, for some , , we have shown
then, for some ,
and
Hence
Also
Hence for each some formula of the form
is provable. Also, if and and , then
假设对某个 、,我们已经证明了
那么对某个 ,有
以及
因此
又有
因此对每个 ,某个形如
的公式是可证的。此外,若 , 且 ,则
(译注:“”与“”均按原刊照录;按上下文似应为 与 。)
and
Hence
The conditions of our second definition of a computable function are therefore satisfied. Consequently is a computable function.
以及
(译注:第二个 中的上标 原刊少一个右括号,照录。)
因此
于是可计算函数第二种定义的条件得到满足。因此 是一个可计算函数。
Proof of a modified form of (iii)
Suppose that we are given a machine , which, starting with a tape bearing on it əə followed by a sequence of any number of letters "" on -squares and in the -configuration , will compute a sequence depending on the number of letters "". If is the -th figure of , then the sequence whose -th figure is is computable.
We suppose that the table for has been written out in such a way that in each line only one operation appears in the operations column. We also suppose that , , , and do not occur in the table, and we replace ə throughout by , 0 by , and 1 by . Further substitutions are then made. Any line of form
we replace by
and any line of the form
by
and we add to the table the following lines:
and similar lines with for and 1 for 0 together with the following line
| . |
We then have the table for the machine which computes . The initial -configuration is , and the initial scanned symbol is the second ə.
(iii) 的一种修改形式的证明
假设给定一台机器 ,它从这样的纸带开始:纸带上有 əə,后面在 -格上跟着任意多个字母“”;机器处于 -格局 ,它将计算出一个依赖于字母“”个数 的序列 。如果 是 的第 个数字,那么第 个数字为 的序列 是可计算的。
(译注:此处的 -格局 原刊印为斜体 ,照录;下文表中对应的是 。)
假设 的表已经写成这样:每一行的操作栏中只出现一个操作。再假设 、、、 不在表中出现,并把 ə 处处换成 ,0 换成 ,1 换成 。然后再作进一步的替换。任何形如
的行,换成
任何形如
的行,换成
并在表中添加以下各行:
以及把 换成 、0 换成 1 的类似各行,再加上下面这一行
| 。 |
这样就得到计算 的机器 的表。初始 -格局为 ,初始被扫描的符号是第二个 ə。
11. Application to the Entscheidungsproblem
11. 对判定问题(Entscheidungsproblem)的应用
The results of §8 have some important applications. In particular, they can be used to show that the Hilbert Entscheidungsproblem can have no solution. For the present I shall confine myself to proving this particular theorem. For the formulation of this problem I must refer the reader to Hilbert and Ackermann's Grundzüge der Theoretischen Logik (Berlin, 1931), chapter 3.
I propose, therefore, to show that there can be no general process for determining whether a given formula of the functional calculus is provable, i.e. that there can be no machine which, supplied with any one of these formulae, will eventually say whether is provable.
It should perhaps be remarked that what I shall prove is quite different from the well-known results of Gödel†. Gödel has shown that (in the formalism of Principia Mathematica) there are propositions such that neither nor is provable. As a consequence of this, it is shown that no proof of consistency of Principia Mathematica (or of ) can be given within that formalism. On the other hand, I shall show that there is no general method which tells whether a given formula is provable in , or, what comes to the same, whether the system consisting of with adjoined as an extra axiom is consistent.
† Loc. cit.
§8 的结果有一些重要的应用。特别地,可以用它们证明希尔伯特的判定问题不可能有解。目前我只限于证明这一特定定理。关于这个问题的表述,我必须请读者参阅 Hilbert 与 Ackermann 的 Grundzüge der Theoretischen Logik(柏林,1931)第 3 章。
因此,我打算证明:不可能有一般过程来判定函项演算 的一个给定公式 是否可证,即不可能有这样一台机器:给它这些公式中的任何一个 ,它终将说出 是否可证。
也许应当指出,我将证明的结果与哥德尔的著名结果†很不相同。哥德尔证明了(在《数学原理》的形式系统中)存在命题 ,使得 与 都不可证。作为其推论,他证明了在该形式系统内不能给出《数学原理》(或 )的无矛盾性证明。而我将证明的是:不存在一般方法来判断一个给定公式 在 中是否可证,或者说(这是一回事),判断把 作为附加公理加入 所得的系统是否无矛盾。
† 见前引文献。
If the negation of what Gödel has shown had been proved, i.e. if, for each , either or is provable, then we should have an immediate solution of the Entscheidungsproblem. For we can invent a machine which will prove consecutively all provable formulae. Sooner or later will reach either or . If it reaches , then we know that is provable. If it reaches , then, since is consistent (Hilbert and Ackermann, p. 65), we know that is not provable.
Owing to the absence of integers in the proofs appear somewhat lengthy. The underlying ideas are quite straightforward.
Corresponding to each computing machine we construct a formula and we show that, if there is a general method for determining whether is provable, then there is a general method for determining whether ever prints 0.
The interpretations of the propositional functions involved are as follows:
is to be interpreted as "in the complete configuration (of ) the symbol on the square is ".
如果哥德尔所证结果的否定得到了证明,即如果对每个 , 或 必有一个可证,那么判定问题立刻就有解。因为我们可以设计一台机器 ,它依次证明所有可证公式。 迟早会得到 或 。如果它得到 ,我们就知道 可证。如果它得到 ,那么由于 是无矛盾的(Hilbert 与 Ackermann,第 65 页),我们知道 不可证。
由于 中没有整数,证明显得有些冗长,但其基本思想十分直接。
对每台计算机器 ,我们构造一个公式 ,并证明:如果存在判定 是否可证的一般方法,那么就存在判定 是否会打印 0 的一般方法。
所涉及的命题函项解释如下:
解释为“在( 的)完整格局 中,方格 上的符号是 ”。
(译注:引号内的 原刊未带下标,照录;按上下文即 。)
is to be interpreted as "in the complete configuration the square is scanned".
is to be interpreted as "in the complete configuration the -configuration is .
is to be interpreted as " is the immediate successor of ".
is to be an abbreviation for
and
are to be abbreviations for other similarly constructed expressions.
解释为“在完整格局 中,方格 被扫描”。
解释为“在完整格局 中,-格局是 ”。
解释为“ 是 的直接后继”。
是下式的缩写:
与
则是按类似方式构造的其他表达式的缩写。
Let us put the description of into the first standard form of §6. This description consists of a number of expressions such as "" (or with or substituted for ). Let us form all the corresponding expressions such as and take their logical sum. This we call .
The formula is to be
may be abbreviated to .
When we substitute the meanings suggested on p. 259–60 we find that has the interpretation "in some complete configuration of , (i.e. 0) appears on the tape". Corresponding to this I prove that
(a) If appears on the tape in some complete configuration of , then is provable.
(b) If is provable, then appears on the tape in some complete configuration of .
When this has been done, the remainder of the theorem is trivial.
把 的描述化为 §6 的第一种标准形式。这一描述由若干个像“”这样的表达式组成(或把其中的 换成 或 )。构成所有相应的表达式,如 ,并取它们的逻辑和,称之为 。
(译注:“§6”按原刊照录;第一种标准形式实际在 §5 中给出。)
公式 为
可简记为 。
代入第 259–260 页提示的含义,就会发现 的解释是“在 的某个完整格局中,(即 0)出现在纸带上”。与此相应,我将证明:
(a) 如果 在 的某个完整格局中出现在纸带上,那么 可证。
(b) 如果 可证,那么 在 的某个完整格局中出现在纸带上。
做到这一点之后,定理的其余部分就是平凡的了。
LEMMA 1. If appears on the tape in some complete configuration of , then is provable.
We have to show how to prove . Let us suppose that in the -th complete configuration the sequence of symbols on the tape is , followed by nothing but blanks, and that the scanned symbol is the -th, and that the -configuration is . Then we may form the proposition
which we may abbreviate to .
As before, is abbreviated to .
引理 1. 如果 在 的某个完整格局中出现在纸带上,那么 可证。
我们必须说明如何证明 。假设在第 个完整格局中,纸带上的符号序列是 ,其后全是空白;被扫描的符号是第 个;-格局是 。于是可以构成命题
可简记为 。
(译注:末行开头的“”按原刊照录;按上下文似应为 。)
与前面一样, 简记为 。
I shall show that all formulae of the form (abbreviated to ) are provable. The meaning of is "The -th complete configuration of is so and so", where "so and so" stands for the actual -th complete configuration of . That should be provable is therefore to be expected.
is certainly provable, for in the complete configuration the symbols are all blanks, the -configuration is , and the scanned square is , i.e. is
is then trivial.
We next show that is provable for each . There are three cases to consider, according as in the move from the -th to the -th configuration the machine moves to left or to right or remains stationary. We suppose that the first case applies, i.e. the machine moves to the left. A similar argument applies in the other cases. If , , , and , then must include as one of its terms, i.e.
Hence
But
is provable, and so therefore is
我将证明,所有形如 (简记为 )的公式都是可证的。 的含义是“ 的第 个完整格局是如此这般”,这里“如此这般”代表 实际的第 个完整格局。因此, 可证是意料之中的。
当然可证,因为在(初始)完整格局中符号全是空白,-格局是 ,被扫描的方格是 ,即 为
于是 是平凡的。
接下来证明对每个 , 可证。需要考虑三种情形,按照从第 个格局到第 个格局的一步中,机器向左移、向右移还是保持不动。设第一种情形成立,即机器向左移;其他情形可类似论证。如果 ,,,,那么 必定以 为其一项,即
因此
而
是可证的,因而
(译注:本段中 的赋值与 中下标的对应关系均按原刊照录,未作改动。)
and
i.e.
is provable for each . Now it is the assumption of this lemma that appears somewhere, in some complete configuration, in the sequence of symbols printed by ; that is, for some integers , , has as one of its terms, and therefore is provable. We have then
and
We also have
where . And so
i.e. is provable.
This completes the proof of Lemma 1.
以及
即
都是可证的。所以对每个 , 可证。本引理的假设是: 在某个完整格局中出现在 所打印的符号序列的某处;也就是说,对某两个整数 、, 以 为其一项,因此 可证。于是我们有
和
(译注: 原刊如此,照录;按上下文应为 。)
我们还有
其中 。于是
即 可证。
引理 1 证毕。
LEMMA 2. If is provable, then appears on the tape in some complete configuration of .
If we substitute any propositional functions for function variables in a provable formula, we obtain a true proposition. In particular, if we substitute the meanings tabulated on pp. 259–260 in , we obtain a true proposition with the meaning " appears somewhere on the tape in some complete configuration of ".
We are now in a position to show that the Entscheidungsproblem cannot be solved. Let us suppose the contrary. Then there is a general (mechanical) process for determining whether is provable. By Lemmas 1 and 2, this implies that there is a process for determining whether ever prints 0, and this is impossible, by §8. Hence the Entscheidungsproblem cannot be solved.
In view of the large number of particular cases of solutions of the Entscheidungsproblem for formulae with restricted systems of quantors, it is interesting to express in a form in which all quantors are at the beginning. is, in fact, expressible in the form
where contains no quantors, and . By unimportant modifications we can obtain a formula, with all essential properties of , which is of form (I) with .
引理 2. 如果 可证,那么 在 的某个完整格局中出现在纸带上。
在一个可证公式中,用任何命题函项代换函项变元,得到的都是真命题。特别地,如果把第 259–260 页列出的含义代入 ,就得到一个真命题,其含义为“ 在 的某个完整格局中出现在纸带上某处”。
现在我们可以证明判定问题不可解了。假设相反,那么存在判定 是否可证的一般(机械)过程。由引理 1 和引理 2,这意味着存在判定 是否会打印 0 的过程,而由 §8,这是不可能的。因此判定问题不可解。
鉴于对量词系统受限的公式,判定问题已有大量特殊情形得到解决,把 表示成所有量词都位于开头的形式是有意思的。事实上, 可以表示成如下形式
其中 不含量词,且 。通过一些无关紧要的修改,我们可以得到一个具有 全部本质性质、且为 时形式 (I) 的公式。
Added 28 August, 1936.
Appendix
Computability and effective calculability
1936 年 8 月 28 日补记。
附录
可计算性与能行可计算性
The theorem that all effectively calculable (-definable) sequences are computable and its converse are proved below in outline. It is assumed that the terms "well-formed formula" (W.F.F.) and "conversion" as used by Church and Kleene are understood. In the second of these proofs the existence of several formulae is assumed without proof; these formulae may be constructed straightforwardly with the help of, e.g., the results of Kleene in "A theory of positive integers in formal logic", American Journal of Math., 57 (1935), 153-173, 219-244.
The W.F.F. representing an integer will be denoted by . We shall say that a sequence whose -th figure is is -definable or effectively calculable if is a -definable function of , i.e. if there is a W.F.F. such that, for all integers ,
i.e. is convertible into or into according as the -th figure of is 1 or 0.
所有能行可计算(-可定义)的序列都是可计算的,以及其逆定理,下面给出概要证明。假定读者了解 Church 和 Kleene 所用的“合式公式”(W.F.F.)和“转换”这两个术语。在第二个证明中,若干公式的存在性未加证明而直接假定;借助例如 Kleene 在“A theory of positive integers in formal logic”(American Journal of Math., 57 (1935), 153-173, 219-244)中的结果,可以直接构造出这些公式。
表示整数 的 W.F.F. 记为 。我们说第 个数字为 的序列 是 -可定义的或能行可计算的,如果 是 的 -可定义函数,即如果存在一个 W.F.F. ,使得对所有整数 ,
即按照 的第 个数字是 1 还是 0, 可转换为 或 。
(译注:“”与“ 的第 个数字”均按原刊照录;按上下文似应为 与“ 的第 个数字”。)
To show that every -definable sequence is computable, we have to show how to construct a machine to compute . For use with machines it is convenient to make a trivial modification in the calculus of conversion. This alteration consists in using as variables instead of . We now construct a machine which, when supplied with the formula , writes down the sequence . The construction of is somewhat similar to that of the machine which proves all provable formulae of the functional calculus. We first construct a choice machine , which, if supplied with a W.F.F., say, and suitably manipulated, obtains any formula into which is convertible. can then be modified so as to yield an automatic machine which obtains successively all the formulae into which is convertible (cf. foot-note p. 252). The machine includes as a part. The motion of the machine when supplied with the formula is divided into sections of which the -th is devoted to finding the -th figure of . The first stage in this -th section is the formation of . This formula is then supplied to the machine , which converts it successively into various other formulae. Each formula into which it is convertible eventually appears, and each, as it is found, is compared with
and with
If it is identical with the first of these, then the machine prints the figure 1 and the -th section is finished. If it is identical with the second, then 0 is printed and the section is finished. If it is different from both, then the work of is resumed. By hypothesis, is convertible into one of the formulae or ; consequently the -th section will eventually be finished, i.e. the -th figure of will eventually be written down.
要证明每个 -可定义序列 都是可计算的,必须说明如何构造一台计算 的机器。为便于机器使用,对转换演算作一个平凡的修改较为方便:用 代替 作为变元。现在构造一台机器 ,当给它公式 时,它写下序列 。 的构造与证明函项演算全部可证公式的机器 有些相似。我们先构造一台选择机器 ,若给它一个 W.F.F.(比如 )并适当操纵,它能得到 可转换成的任何公式。然后可以修改 ,得到一台自动机器 ,它依次得到 可转换成的全部公式(参见第 252 页脚注)。机器 以 为其一部分。给定公式 时,机器 的运动分为若干段,第 段用于求出 的第 个数字。第 段的第一步是构成 。然后把这个公式交给机器 ,后者把它依次转换为各种其他公式。它可转换成的每个公式终将出现,并且每找到一个,就把它与
以及
相比较。如果它与前者相同,机器就打印数字 1,第 段结束。如果与后者相同,就打印 0,该段结束。如果与两者都不同,就恢复 的工作。按假设, 可转换为公式 或 之一;因此第 段终将结束,即 的第 个数字终将被写下。
To prove that every computable sequence is -definable, we must show how to find a formula such that, for all integers ,
Let be a machine which computes and let us take some description of the complete configurations of by means of numbers, e.g. we may take the D.N of the complete configuration as described in §6. Let be the D.N of the -th complete configuration of . The table for the machine gives us a relation between and of the form
where is a function of very restricted, although not usually very simple, form: it is determined by the table for . is -definable (I omit the proof of this), i.e. there is a W.F.F. such that, for all integers ,
Let stand for
where ; then, for all integers ,
要证明每个可计算序列 都是 -可定义的,必须说明如何找到一个公式 ,使得对所有整数 ,
设 是一台计算 的机器,并用数来描述 的完整格局,例如可以取 §6 中所述完整格局的 D.N。设 为 第 个完整格局的 D.N。机器 的表给出 与 之间如下形式的关系:
其中 是一个形式非常受限(尽管通常并不十分简单)的函数:它由 的表决定。 是 -可定义的(证明从略),即存在一个 W.F.F. ,使得对所有整数 ,
令 代表
其中 ;那么对所有整数 ,
(译注:前式记作 、后式记作 ,原刊如此,照录。)
It may be proved that there is a formula such that
Let stand for
so that, for each integer ,
and let be a formula such that
where is the -th integer for which is convertible into either or . Then, if stands for
it will have the required property†.
The Graduate College,
Princeton University,
New Jersey, U.S.A.
可以证明存在一个公式 ,使得
令 代表
于是对每个整数 ,
再设 是这样一个公式:
其中 是使 可转换为 或 的第 个整数 。那么,如果 代表
它就具有所要求的性质†。
(译注: 的下标在扫描件中字迹模糊,按其后紧接的 定义录入。)
普林斯顿大学研究生院,
美国新泽西州。
† In a complete proof of the -definability of computable sequences it would be best to modify this method by replacing the numerical description of the complete configurations by a description which can be handled more easily with our apparatus. Let us choose certain integers to represent the symbols and the -configurations of the machine. Suppose that in a certain complete configuration the numbers representing the successive symbols on the tape are , that the -th symbol is scanned, and that the -configuration has the number ; then we may represent this complete configuration by the formula
where
etc.
† 在 -可定义性的完整证明中,最好对这一方法加以修改:用一种更便于我们的工具处理的描述,代替完整格局的数字描述。选定一些整数来表示机器的符号和 -格局。假设在某个完整格局中,表示纸带上相继符号的数是 ,第 个符号被扫描,-格局的编号为 ;那么可以用公式
来表示这个完整格局,其中
等等。