Lambda algorithm of Alonzo Church (from the Emperor's new brain)

Source: Internet
Author: User

The concept of Computability is a very important and beautiful mathematical concept. It was quite modern, and it was the first thing in the 1930s s that had entered the kingdom of mathematics. This concept has penetrated into all the fields of mathematics (although this is true, most mathematicians generally do not worry about computational problems ). Part of the power of this concept comes from the fact that some well-defined operations in mathematics are actuallyNoComputable (for example, the downtime of the BOT; for Chapter 4, we can also see other examples ). If there is no such thing that cannot be computed, the concept of Computability is not very interesting in mathematics. Mathematicians are confused after all. It may be fascinating to determine whether certain mathematical operations are computable. BecauseThatA confusing general answer is not computation. This is especially fascinating!

There is one thing to figure out. Computability is a true "absolute" Mathematical Concept. It is an abstract concept that excludes any special implementation of the Turing machine we describe. As I commented earlier, we do not have to assign any special significance to the "tapes" and "inner states" that characterize Turing's genius. There are also other ways to express the concept of testability. The earliest method in history was the outstanding "Lambda computing" proposed by American logistician arenzo Qu with the assistance of Stephen C. kernees ". The withdrawal steps are completely different from those of Turing and are much more abstract. In fact, there is only one obvious connection between them and anything that can be referred to as "mechanical" in the form of withdrawal to describe their ideas. The key concept behind the withdrawal step is, in essence, trueAbstractIn fact, this step is called an abstract mathematical operation.

It is not only because the withdrawal plan emphasizes that calculability is a mathematical concept independent of any particular concept of a computer, but also clarifies the power of abstract ideas in mathematics, so I feel it is worth a little time to briefly describe it. Readers who are not familiar with the concept of mathematics or are not curious about this issue can skip to the next chapter at this stage, which will not cause much loss to the process of argument. Even so, if such a reader is willing to endure it for a while, it will benefit and witness some of the magic economy of the withdrawal scheme (see withdrawal 1941 ).

What people care about in this solution is, for example, the "universe" of Objects represented below"

A, B, C, D ,..., Z, A', B ′,..., Z', a'', B ′′,..., A ′′′,..., A ′′′′,...

Each element represents a mathematical operation orFunction. (The reason for having a letter float is simply to provide an infinite number of symbols to represent this function .) The "independent variables" of these functions, that is, what they act on, are other things of the same type, that is, functions. In addition, the result (or "value") of a function Acting on another function is still a function. (It does have a wonderful conceptual economy in the system of withdrawal .) In this way, when we write

A = BC

The result of function B acting on Function C is another function. It is not difficult to express the concept of two or more variables in this solution. If we want to think of F as two variables, such as p and q functions, we can simply write

(FP) q

(This is the result of function FP acting on Q ). Consider the three variable functions.

(FP) q) R,

And so on.

Let's introduceAbstraction. For this reason, we use the Greek letter Lambda (lambda), which is followed by a letter that represents a qu function. For example, when talking about X, we regard it as a "dummy variable ". Any variable X in the expression that follows this square brackets is regarded only as a "Port" and can be substituted into anything that follows the entire expression. In this way, if we write

λ x. [FX 〕,

We mean, when it applies to function a For example, The result fa is generated. That is

(λ x. [FX]) A = fa.

In other words, Lambda X. [FX] is simply a function f, that is

λ x. [FX] = f.

Only one thought is enough here. The beauty of mathematics is that it seems to be so knowledgeable and trivial at first, and it is also very easy for people to completely lose their points. Let's consider a familiar example from middle school mathematics. Function f is used to calculate the sine of an angle. In this way, the abstract function "sin" is defined

λ x. [SiNx] = sin.

(You don't have to worry about "function" x as an angle. We will soon see that a number can be regarded as a function method, and an angle is just a number .) Everything so far is indeed quite boring. Let us imagine that the mark "sin" has not been invented, but we are familiar with the expansion expression of SiNx.

Then we can define

Please note that we can even define it more simply. For example, there is no standard "function" mark for "1/6 cubic" calculation.

And found, such

The expressions constructed simply by the basic function operations for de-Qu are more appropriate for the current discussion, for example

λ F. [F (FX )〕.

This is a function. when it acts on another function, for example, G is generated, and G is recursively applied to the function on X, that is

(λ F. [F (FX)]) G = g (Gx ).

We can also first "abstract" X to get

λ F. [λ x. [F (FX )〕〕,

This formula can be abbreviated

Lambda FX [F (FX )〕.

This is a function used to generate "G is recursive twice" when G is used. In fact, this is a function that equals natural number 2 in the qu dynasty.

2 = λ FX. [F (FX )〕,

In this case, (2g) y = g (Gy ). It defines similarly:

3 = λ FX. [F (f (FX)], 4

= Lambda FX (f (FX), and so on,

And

1 = λ FX. [FX], 0 = λ FX, [x 〕.

The "2" is more like "Two Times", and its "3" is "three times. In this way, 3 is used in a function f, that is, 3f is the operation of "recursion of F three times. Therefore, the role of 3f on Y is (3f) y = f (y ))).

Let's take a look at a very simple arithmetic operation, that is, how to express the operation of adding 1 to a number in the qu scheme. Definition

S = λ ABC. [B (AB) c )〕.

In order to clarify that s does simply add 1 to A number represented by a qu mark, let's do this test:

S3 = λ ABC. [B (AB) C)] 3 = λ BC. [B (3B) C)] = λ BC. [B (BC)] = 4,

This is because (3B) C = B (BC )). It is clear that this applies to any other natural number as well. (In fact, Lambda ABC. [(AB) (BC)] can be as good as S .)

What if I multiply A number by two? Double

D = λ ABC. [(AB) C )〕

It can be verified again by acting on 3:

D = λ ABC. [(AB) C)] 3 = λ ABC. [(3B) (3B) C )〕

= λ ABC. [(3B) (B (BC)] = λ ABC. [B (BC)] = 6.

In fact, the basic arithmetic operations of addition, multiplication, and power-up can be defined

A = λ fgxy. [(FX) (Gx) y 〕,

M = λ fgx. [F (Gx )〕,

P = λ FG. [FG 〕.

Readers may mind convincing themselves or others. We do have the following results:

(AM) n = m + n, (MM) n = m × N, (PM) n = Nm,

Here m is N, which is the two natural number functions of the deflection, and m + n is the corresponding function of their sum, and so on. The last formula is the most amazing. Let's test the m = 2, n = 3:

(P2) 3 = (λ FG. [FG]) 2) 3 = (λ G. [2G]) 3

= (λ G. [λ FX. [F (FX)] G) 3

= λ GX. [g (Gx)] 3 = λ x. [3 (3x )〕

= λ x. [λ FY. [F (f (FY)] (3x )〕

= λ xy. [(3x) (3x) (3x) y ))〕

= λ xy. [(3x) (3x) (x (xy )))))〕

= λ xy. [(3x) (x (xy )))))〕

= λ xy. [x (xy ))))))))〕

= 9 = 32

Subtraction and division are not so easy to define (we do need a convention to "M-n" when m is less than N hours and "M minus N" when m cannot be divisible by N. As a matter of fact, in the early 1930s S, Klines discovered that it was an important milestone in this discipline to express the subtraction operation in the qu scheme! Then there were other operations. Finally, qu and Turing independently pointed out in 1937 that no matter what kind of Computable (or algorithmic) operations (in the sense of a Turing machine) can be obtained according to a withdrawal expression (and vice versa ).

This is a truly amazing fact. It is used to emphasize the basic objectivity and mathematical characteristics of Computational Thinking. At the beginning, it seems that the concept of scalability has nothing to do with the computer. However, it has some basic relationships with actual computing. In particular, the powerful and flexible computer LISP Language participates in the basic structure of the qu Algorithm in a fundamental way.

As I mentioned earlier, there are other methods to define the concept of testability. The concept of poster's computing machine is very similar to that of Turing, and is almost independently proposed at the same time. There is also a more useful definition of computational (progressive) in the near world, which was proposed by J hoberard and Godel. H. B. Qiu Lei proposed different methods in 1929 and M. Xuan fenkol proposed earlier in 1924, the withdrawal calculation method is developed in part from this (see Gantt 1988 ). Now we are studying computational techniques (such as one described in (catlan 1980)Unlimited recording machine) The details are much different from those of Turing, and they are much more practical. However, regardless of the method usedConceptStill the same.

Just as many other mathematical concepts, especially those more beautiful and basic, the concept of Computability seems to have something of its ownPlato's Realism. In the following two chapters, we should discuss the mysterious issue of Plato's authenticity of mathematical concepts.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.