Liste des Groupes | Revenir à c theory |
On Sat, 2025-05-17 at 14:39 -0500, olcott wrote:It is stipulated that U is a UTM thatOn 5/17/2025 2:26 PM, wij wrote:U is not a complete TM. U(<U>) is worst, also not a TM.On Sat, 2025-05-17 at 15:45 +0100, Mike Terry wrote:>On 17/05/2025 04:01, wij wrote:>On Fri, 2025-05-16 at 23:51 +0100, Mike Terry wrote:>On 16/05/2025 20:35, wij wrote:>On Fri, 2025-05-16 at 16:33 +0100, Mike Terry wrote:>On 16/05/2025 12:40, wij wrote:>On Fri, 2025-05-16 at 03:26 +0100, Mike Terry wrote:>On 16/05/2025 02:47, wij wrote:>On Fri, 2025-05-16 at 01:40 +0100, Mike Terry wrote:>On 15/05/2025 19:49, wij wrote:>On Thu, 2025-05-15 at 17:08 +0100, Mike Terry wrote:>On 14/05/2025 18:53, wij wrote:>On Wed, 2025-05-14 at 12:24 -0500, olcott wrote:>On 5/14/2025 11:43 AM, wij wrote:>On Wed, 2025-05-14 at 09:51 -0500, olcott wrote:>On 5/14/2025 12:13 AM, wij wrote:>Q: Write a turing machine that performs D function (which calls>
itself):
>
void D() {
D();
}
>
Easy?
>
>
That is not a TM.
It is a C program that exists. Therefore, there must be a equivalent
TM.
>To make a TM that references itself the closest>
thing is a UTM that simulates its own TM source-code.
How does a UTM simulate its own TM source-code?
>
You run a UTM that has its own source-code on its tape.
What is exactly the source-code on its tape?
>
Every UTM has some scheme which can be applied to a (TM & input tape) that
is to
be
simulated.
The
scheme says how to turn the (TM + input tape) into a string of symbols that
represent
that
computation.
>
So to answer your question, the "source-code on its tape" is the result of
applying
the
UTM's
particular scheme to the combination (UTM, input tape) that is to be
simulated.
>
If you're looking for the exact string symbols, obviously you would need to
specify
the
exact
UTM
being used, because every UTM will have a different answer to your question.
>
>
Mike.
People used to say UTM can simulate all TM. I was questing such a UTM.
Because you said "Every UTM ...", so what is the source of such UTM?
Yes, a UTM can simulate any TM including itself. (Nothing magical changes when
a
UTM
simulates
itself, as opposed to some other TM.)
Supposed UTM exists, and denoted as U(X), X denotes the tape contents of the
encoding of a TM. And, U(X) should function the same like X.
Given instance U(U(f)), it should function like f from the above definition.
But, U(U(f)) would fall into a 'self-reference' trap.
There is no self-reference trap.
>
In your notation:
>
- f represents some computation.
- U(f) represents U being run with f on its tape.
Note this is itself a computation, distinct from f of course
but having the same behaviour.
- U(U(f)) represents U simulating the previous computation.
>
There is no reason U(f) cannot be simulated by U. U will have no knowledge that it
is
"simulating
itself", and will just simulate what it is given.
>
>
Mike.
Sorry for not being clear on the UTM issue (I wanted to mean several things in one
post).
You are right there is no self-reference.
I mean 'UTM' is not a complete, qualified TM because the contents of the tape
would not be defined. Saying "UTM can simulate any TM" is misleading because
no such TM (UTM as TM) exists.
What do you mean "the contents of the tape would not be defined"? A TM is /equipped/
with
an
infinite tape, but the /contents/ of that tape are not a part of that TM's definition.
>
For example we could build a TM P that decides whether a number is prime. Given a
number n,
we
convert n into the input tape representation of n, and run P with that tape as input.
>
It's essentially no different for UTMs. Such a UTM certainly is a "complete TM",
equipped
with
its
own input tape. Of course we don't know what's on the input tape because nobody has
said
yet
what
computation we are asking it to simulate! [Similarly we don't know what's on P's input
tape,
until
we know what n we want it to test for primeness.] Once you say what computation you
want
the
UTM to
simulate we can build a tape string to perform that particular simulation. That is the
case
/whatever/ computation we come up with, so it is simply the case [not misleading] that
the
UTM
can
simulate any computation.
>
>
Mike.
TM has no I/O mechanism. 'Computation' always means the contents of the tape
is defined (fixed before run).
>
Correct, and correct.
>
So... What do you mean "the contents of the tape would not be defined"?
>
>
Mike.
In "UTM simulates itself", denoted as U(U(f)), the f would not be defined.
Eh? The f was something /you/ introduced! You said it represents some computation which UTM U
simulates. How can f suddenly become undefined after you defined it?
>
Do you mean that f would not be on the input tape for (outer)U? That's not the case at all. In
U(f), the input tape for U contains a representation of f. When (outer)U simulates (inner)U
simulating f, (outer)U's tape contains a representation of computation U(f), which internally
contains the original representation of f. The f is still there and equally well defined in
U(U(f)).
>
I think you would benefit from being more explicit and generally more careful in your notation!
>
Using notation <P,I> to mean U's input tape representation of "TM P, running with input I":
>
Your U(f) is U(<fp,fi>) // fp = TM(f), fi=InputTape(f)
Your U(U(f)) is U((<U,<fp,fi>>)
>
f is still there! It has not become "undefined".
>
You gloss over the details and become confused - just think it through step by step.
>
>
Mike.
It seems you are addressing notational problems.
You introduced angle bracket and one more variable, and seemingly attacking
that a variable cannot be undefined because it is there. And said I should
not gloss over the detail and should think it through step by step.
No idea what you are talking about.
>
>
U(<U>) is the most conventional notation
Les messages affichés proviennent d'usenet.