Assigning Godel Numbers to Turing Programs

Click For Summary

Discussion Overview

The discussion revolves around the process of assigning Godel numbers to Turing programs within the context of computability theory. Participants explore the implications of numbering internal states, lines, and the programs themselves, as well as the definitions and terminology related to Turing programs.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested

Main Points Raised

  • One participant describes a method for assigning Godel numbers to Turing programs, questioning whether the numbers assigned to programs need to be distinct from those assigned to internal states and lines.
  • Another participant seeks clarification on the definition of a "line" in a Turing program and questions the terminology used, specifically the term "Turing program" versus "Turing machine." They also ask about the meaning of "B" in the original post.
  • A third participant explains the general concept of Godel numbering as an injective function from a set to natural numbers, detailing the method used by Godel in his work, including the assignment of natural numbers to symbols and sequences.
  • A later reply asserts that distinct integers for encoding programs are sufficient and that the specific Godel numbering method is less critical than the underlying concept.

Areas of Agreement / Disagreement

Participants express differing views on the terminology and definitions related to Turing programs, with some seeking clarification while others provide explanations. There is no consensus on the necessity of distinct numbering for programs versus internal states and lines, as opinions vary on the importance of the specific Godel numbering method.

Contextual Notes

There are unresolved questions regarding the definitions of terms used in the discussion, such as "Turing program" and "line," as well as the implications of Godel numbering in this context. The discussion reflects a range of interpretations and understandings of the concepts involved.

jgens
Gold Member
Messages
1,575
Reaction score
50
I am working through a computability theory textbook and right now the author is discussing assigning Godel numbers to each Turing Program. To do this, he suggests assigning each internal state, each of the elements of {1,B} and each of the elements of {L,R} a number. Then using these numbers, we can construct a unique Godel number for every line of a Turing program. Then using the numbering of these lines, we can assign a Godel number to the Turing programs themselves.

My question is this: When assigning Godel numbers for the Turing programs, do we need to make sure that they are distinct from the numbers assigned to the internal states or lines for instance? We only seem to use the numbering to create an effectively computable listing of Turing programs, so it seems like this should be fine. But I am unsure if there are other reasons why this will not work.

Thanks!
 
Physics news on Phys.org
Not sure this is really needed to answer your question, but what do you call a "line" in a Turing program? Actually how do you define a Turing program? (I never saw the expression "Turing program"; "Turing machine" ok, but "Turing program" never; is it different?) What is B in your statement?

Then could you clarify your question: you want to know if there should not be any number which is both the number of a Turing program and the number of a line?
 
Godel numbering is essentially the creation of an injective function from one set to the natural numbers.

The method Godel used was in reference to symbols, formulae, (and proof schemata) in a first order formal system.

Basically the formal language consists of a set of symbols, say {a, b, c}.

And sequences of these symbols, e.g. abba, ccccc, a, cba etc.

(And sequences of sequences of symbols.)

The Godel numbering method used in his 1930 paper is:

1) to assign a natural to each symbol. i.e. a≈1, b≈2, c≈3

2) for each sequence of symbols, take the first prime number and raise it to the power of the natural number related to that symbol; take the second prime number and raise it to the power of the natural number related to that symbol, and on and on, and then multiply these together.

e.g. for aba, the corresponding Godel number is (2^1)x(3^2)x(5^1)=2x9x5=90

By the fundamental theorem of arithmetic, this method is injective; that is, there is a unique (different) Godel number for each and every two sequences of symbols.

Godel also allowed for variables in his formulation. In this case if you are using n variable, call them x1, x2, ... , xn, then assign to each of these the number 5 to the power of the variable number, so that xj≈5^j.Then for the sequence abx1, the corresponding Godel number is (2^1)x(3^2)x(5^(5^1))=2x9x(5^5)=...

I don't understand the terminology you are using. But this is the basic method. I hope it helps.
 
jgens said:
My question is this: When assigning Godel numbers for the Turing programs, do we need to make sure that they are distinct from the numbers assigned to the internal states or lines for instance?
You don't. As you mention, all that matters is that each program, or machine, can be encoded by a distinct integer.

In computability theory, the exact Gödel numbering isn't particularly important, it's much more the concept itself that matters.

(Notice the umlaut over the 'o' i Gödel, btw.)
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
976
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 0 ·
Replies
0
Views
124
  • · Replies 4 ·
Replies
4
Views
2K
Replies
29
Views
6K
  • · Replies 5 ·
Replies
5
Views
5K
  • · Replies 9 ·
Replies
9
Views
3K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K