Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

Real Users hate Real Programmers.


devel / comp.theory / Re: H(P,P) == false is correct [ Simple TM Interpreter ]

SubjectAuthor
* On recursion and infinite recursion (reprise)Mr Flibble
+* On recursion and infinite recursion (reprise)olcott
|+* On recursion and infinite recursion (reprise)Ben
||`* On recursion and infinite recursion (reprise)olcott
|| `* On recursion and infinite recursion (reprise)Ben
||  `* H(P,P) == false is correctolcott
||   `* H(P,P) == false is correctBen
||    `* H(P,P) == false is correctolcott
||     `* H(P,P) == false is correctBen
||      `* H(P,P) == false is correctolcott
||       `* H(P,P) == false is correctBen
||        `* H(P,P) == false is correct [ verified facts ]olcott
||         +* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         |`* H(P,P) == false is correct [ verified facts ]olcott
||         | +* H(P,P) == false is correct [ verified facts ]André G. Isaak
||         | |`* H(P,P) == false is correct [ verified facts ]olcott
||         | | `* H(P,P) == false is correct [ verified facts ]André G. Isaak
||         | |  `* H(P,P) == false is correct [ verified facts ]olcott
||         | |   +* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |   |`* H(P,P) == false is correct [ verified facts ]olcott
||         | |   | `* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |   |  `* H(P,P) == false is correct [ verified facts ]olcott
||         | |   |   `- H(P,P) == false is correct [ verified facts ]Richard Damon
||         | |   `* H(P,P) == false is correct [ verified facts ]Richard Damon
||         | |    `* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |     `* H(P,P) == false is correct [ verified facts ]olcott
||         | |      `* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |       `* H(P,P) == false is correct [ verified facts ]olcott
||         | |        `* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |         `- H(P,P) == false is correct [ verified facts ]olcott
||         | +* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |`* H(P,P) == false is correct [ verified facts ]olcott
||         | | `* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |  `* H(P,P) == false is correct [ verified facts ]olcott
||         | |   +* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |   |`* H(P,P) == false is correct [ verified facts ]olcott
||         | |   | +* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |   | |`* H(P,P) == false is correct [ verified facts ]olcott
||         | |   | | `* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |   | |  `- H(P,P) == false is correct [ verified facts ]olcott
||         | |   | `- H(P,P) == false is correct [ verified facts ]Richard Damon
||         | |   `* H(P,P) == false is correct [ verified facts ]Richard Damon
||         | |    `* H(P,P) == false is correct [ verified facts ]Malcolm McLean
||         | |     +* H(P,P) == false is correct [ verified facts ]Ben
||         | |     |`* H(P,P) == false is correct [ verified facts ]olcott
||         | |     | `* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |     |  `* H(P,P) == false is correct [ verified facts ]olcott
||         | |     |   `- H(P,P) == false is correct [ verified facts ]Richard Damon
||         | |     `* H(P,P) == false is correct [ verified facts ]olcott
||         | |      `* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |       `* H(P,P) == false is correct [ verified facts ]olcott
||         | |        `* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |         `* H(P,P) == false is correct [ verified facts ]olcott
||         | |          `* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |           `* H(P,P) == false is correct [ verified facts ]olcott
||         | |            `* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |             `* H(P,P) == false is correct [ verified facts ]olcott
||         | |              +* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |              |`* H(P,P) == false is correct [ verified facts ]olcott
||         | |              | `* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |              |  +- H(P,P) == false is correct [ verified facts ]olcott
||         | |              |  `* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |              |   +- H(P,P) == false is correct [ verified facts ]olcott
||         | |              |   `* H(P,P) == false is correct [ verified facts ]Dennis Bush
||         | |              |    `* H(P,P) == false is correct [ verified facts ]olcott
||         | |              |     `- H(P,P) == false is correct [ verified facts ]Richard Damon
||         | |              `* H(P,P) == false is correct [ verified facts ]André G. Isaak
||         | |               `* H(P,P) == false is correct [ verified facts ]olcott
||         | |                `* H(P,P) == false is correct [ verified facts ]André G. Isaak
||         | |                 `- H(P,P) == false is correct [ verified facts ]olcott
||         | `- H(P,P) == false is correct [ verified facts ]Richard Damon
||         `* H(P,P) == false is correct [ verified facts ]Ben
||          `* H(P,P) == false is correct [ verified facts ]olcott
||           +* H(P,P) == false is correct [ verified facts ]Python
||           |`* H(P,P) == false is correct [ verified facts ]olcott
||           | `- H(P,P) == false is correct [ verified facts ]Python
||           +* H(P,P) == false is correct [ verified facts ]Ben
||           |+- H(P,P) == false is correct [ verified facts ]olcott
||           |+* H(P,P) == false is correct [ Simple TM Interpreter ]olcott
||           ||`* H(P,P) == false is correct [ Simple TM Interpreter ]Ben
||           || `* H(P,P) == false is correct [ Simple TM Interpreter ]olcott
||           ||  `* H(P,P) == false is correct [ Simple TM Interpreter ]Ben
||           ||   +* H(P,P) == false is correct [ Simple TM Interpreter ]olcott
||           ||   |`* H(P,P) == false is correct [ Simple TM Interpreter ]Ben
||           ||   | `* H(P,P) == false is correct [ Simple TM Interpreter ]olcott
||           ||   |  `- H(P,P) == false is correct [ Simple TM Interpreter ]Ben
||           ||   `- H(P,P) == false is correct [ Simple TM Interpreter ]olcott
||           |`* H(P,P) == false is correct [ Simple TM Interpreter ]olcott
||           | `* H(P,P) == false is correct [ Simple TM Interpreter ]André G. Isaak
||           |  +* H(P,P) == false is correct [ Simple TM Interpreter ]olcott
||           |  |`* H(P,P) == false is correct [ Simple TM Interpreter ]André G. Isaak
||           |  | `* H(P,P) == false is correct [ Simple TM Interpreter ]olcott
||           |  |  `* H(P,P) == false is correct [ Simple TM Interpreter ]André G. Isaak
||           |  |   `* H(P,P) == false is correct [ Simple TM Interpreter ]olcott
||           |  |    `* H(P,P) == false is correct [ Simple TM Interpreter ]André G. Isaak
||           |  |     `* H(P,P) == false is correct [ Simple TM Interpreter ]olcott
||           |  |      `* H(P,P) == false is correct [ Simple TM Interpreter ]André G. Isaak
||           |  |       `* H(P,P) == false is correct [ Simple TM Interpreter ]olcott
||           |  |        `* H(P,P) == false is correct [ Simple TM Interpreter ]André G. Isaak
||           |  |         +* H(P,P) == false is correct [ Simple TM Interpreter ]olcott
||           |  |         |`* H(P,P) == false is correct [ Simple TM Interpreter ]André G. Isaak
||           |  |         `* H(P,P) == false is correct [ Simple TM Interpreter ]Ben
||           |  `- H(P,P) == false is correct [ Simple TM Interpreter ]olcott
||           +- H(P,P) == false is correct [ verified facts ]Richard Damon
||           `* H(P,P) == false is correct [ verified facts ]Mikko
|`* On recursion and infinite recursion (reprise)Mikko
+* On recursion and infinite recursion (reprise)Richard Damon
+* On recursion and infinite recursion (reprise)Mikko
`* On recursion and infinite recursion (reprise)Mikko

Pages:123456789
Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<t53op3$m5h$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31779&group=comp.theory#31779

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: agis...@gm.invalid (André G. Isaak)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Fri, 6 May 2022 12:18:11 -0600
Organization: Christians and Atheists United Against Creeping Agnosticism
Lines: 48
Message-ID: <t53op3$m5h$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4p08u$5ar$1@dont-email.me> <87wnf3ga8h.fsf@bsb.me.uk>
<t4pesp$d9n$1@dont-email.me> <87fslrfs3t.fsf@bsb.me.uk>
<t4sn5q$9nr$1@dont-email.me> <874k25qt5y.fsf@bsb.me.uk>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t529bf$fls$1@dont-email.me> <t52a2k$jk3$1@dont-email.me>
<t52ano$n78$1@dont-email.me> <t5388a$b6j$1@dont-email.me>
<t53f1o$57i$1@dont-email.me> <t53fn7$avk$1@dont-email.me>
<t53jc5$a9p$1@dont-email.me> <t53k9p$hta$1@dont-email.me>
<t53nsn$ftg$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 6 May 2022 18:18:11 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="1e75b34da09b167af73c57fe6101ac66";
logging-data="22705"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/9VCu/SMVpo7zgkgA4pnDS"
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:91.0)
Gecko/20100101 Thunderbird/91.8.1
Cancel-Lock: sha1:ZAYRXJuywPZwL3PSDnqzfyA8eT0=
In-Reply-To: <t53nsn$ftg$1@dont-email.me>
Content-Language: en-US
 by: André G. Isaak - Fri, 6 May 2022 18:18 UTC

On 2022-05-06 12:03, olcott wrote:
> On 5/6/2022 12:01 PM, André G. Isaak wrote:
>> On 2022-05-06 10:45, olcott wrote:
>>> On 5/6/2022 10:43 AM, André G. Isaak wrote:
>>>> On 2022-05-06 09:32, olcott wrote:
>>
>>>>> For example, the quintuple 'SCcsm' is executed by the machine
>>>>> (a) is in state 'S'
>>>>> (b) is reading the symbol 'C' on the tape.
>>>>> (c) makes a transition to state 's'
>>>>> (d) overwrite the symbol 'C' on the tape with the symbol 'c'.
>>>>> (e) move the tape reading head one symbol to the left or right
>>>>>       according to whether 'm' is 'l' or 'r'.
>>>>> http://www.lns.mit.edu/~dsw/turing/doc/tm_manual.txt
>>>>
>>>> Your (a)-(e) lettering are not part of the original and adding them
>>>> suggests you don't even understand the paragraph.
>>>>
>>>> André
>>>>
>>>
>>> I trimmed the original and reformatted to make is easier to understand.
>>
>> And destroyed the meaning in the process. That certainly doesn't make
>> it "easier" to understand.
>>
>> First, you eliminate the crucial words "if it" from (a).
>>
>
> Yes you are correct this is my mistake.
>
>> Second, you split (a) and (b) into two items thereby obscuring the
>> fact that these two go together and are both equally part of the
>> condition which the missing 'if it' describes.
>>
>
> Yes you are correct this is my mistake. I should have done a more
> accurate job specifying the original design.

The way to do that would be to have just left the original quote alone
given that it was already perfectly clear. "Quoting" it without
indicating that it has been altered is simply deceptive.

André

--
To email remove 'invalid' & replace 'gm' with well known Google mail
service.

Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<t53qla$6g7$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31782&group=comp.theory#31782

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: polco...@gmail.com (olcott)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Fri, 6 May 2022 13:50:15 -0500
Organization: A noiseless patient Spider
Lines: 71
Message-ID: <t53qla$6g7$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4p08u$5ar$1@dont-email.me> <87wnf3ga8h.fsf@bsb.me.uk>
<t4pesp$d9n$1@dont-email.me> <87fslrfs3t.fsf@bsb.me.uk>
<t4sn5q$9nr$1@dont-email.me> <874k25qt5y.fsf@bsb.me.uk>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t529bf$fls$1@dont-email.me> <t52a2k$jk3$1@dont-email.me>
<t52ano$n78$1@dont-email.me> <t5388a$b6j$1@dont-email.me>
<t53f1o$57i$1@dont-email.me> <t53fn7$avk$1@dont-email.me>
<t53jc5$a9p$1@dont-email.me> <t53k9p$hta$1@dont-email.me>
<t53nsn$ftg$1@dont-email.me> <t53op3$m5h$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 6 May 2022 18:50:18 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fa499fb4eb95ee5c956e821cecab3aa5";
logging-data="6663"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18y8iI1j+KNvzIFW0FvCem+"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Cancel-Lock: sha1:33HOxOEbkS51g/KSNmwNIvzbaXM=
In-Reply-To: <t53op3$m5h$1@dont-email.me>
Content-Language: en-US
 by: olcott - Fri, 6 May 2022 18:50 UTC

On 5/6/2022 1:18 PM, André G. Isaak wrote:
> On 2022-05-06 12:03, olcott wrote:
>> On 5/6/2022 12:01 PM, André G. Isaak wrote:
>>> On 2022-05-06 10:45, olcott wrote:
>>>> On 5/6/2022 10:43 AM, André G. Isaak wrote:
>>>>> On 2022-05-06 09:32, olcott wrote:
>>>
>> Yes you are correct this is my mistake. I should have done a more
>> accurate job specifying the original design.
>
> The way to do that would be to have just left the original quote alone
> given that it was already perfectly clear. "Quoting" it without
> indicating that it has been altered is simply deceptive.
>
> André
>

A turing machine is a model of a computer. It has a finite number of
states, and it is capable of reading and modifying a tape. A turing
machine program consists of a list of 'quintuples', each one of which is
a five-symbol turing machine instruction. For example, the quintuple
'SCcsm' is executed by the machine if it is in state 'S' and is reading
the symbol 'C' on the tape. In that case, the instruction causes the
machine to make a transition to state 's' and to overwrite the symbol
'C' on the tape with the symbol 'c'. The last operation it performs
under this instruction is to move the tape reading head one symbol to
the left or right according to whether 'm' is 'l' or 'r'.
http://www.lns.mit.edu/~dsw/turing/doc/tm_manual.txt

This does more succinctly (and thus more clearly) list the essential
elements of the design, that the above paragraph specifies.
For example, the quintuple 'SCcsm' is executed by the machine:

if is in state 'S' and is reading the symbol 'C' on the tape then
(a) make a transition to state 's'.
(b) overwrite the symbol 'C' on the tape with the symbol 'c'.

// This must occur before the state transition or we lose access to
// current_quintuple->write_symbol

(c) move the tape reading head one symbol to the left or right
according to whether 'm' is 'l' or 'r'.

When we assume that current_quintuple was found in quintuple_list then
this does seem to correctly implement the above design:

bool transition_function(std::set<Quintuple>::iterator& current_quintuple)
{ u32 next_state = current_quintuple->next_state;
u32 current_input = Tape[Tape_Head];
std::set<Quintuple>::iterator next_quintuple;

Tape[Tape_Head] = current_quintuple->write_symbol;
if (toupper(current_quintuple->tape_head_move) == “L”;
Tape_Head--; // Left
else
Tape_Head++; // Right

next_quintuple = NextState(next_state, current_input);
if (next_quintuple == Quintuple_List.end())
return false;
current_state = it;
return true;
}

Do you think that the above function matches its design?

--
Copyright 2022 Pete Olcott "Talent hits a target no one else can hit;
Genius hits a target no one else can see." Arthur Schopenhauer

Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<t53rid$dva$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31784&group=comp.theory#31784

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: agis...@gm.invalid (André G. Isaak)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Fri, 6 May 2022 13:05:47 -0600
Organization: Christians and Atheists United Against Creeping Agnosticism
Lines: 88
Message-ID: <t53rid$dva$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4p08u$5ar$1@dont-email.me> <87wnf3ga8h.fsf@bsb.me.uk>
<t4pesp$d9n$1@dont-email.me> <87fslrfs3t.fsf@bsb.me.uk>
<t4sn5q$9nr$1@dont-email.me> <874k25qt5y.fsf@bsb.me.uk>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t529bf$fls$1@dont-email.me> <t52a2k$jk3$1@dont-email.me>
<t52ano$n78$1@dont-email.me> <t5388a$b6j$1@dont-email.me>
<t53f1o$57i$1@dont-email.me> <t53fn7$avk$1@dont-email.me>
<t53jc5$a9p$1@dont-email.me> <t53k9p$hta$1@dont-email.me>
<t53nsn$ftg$1@dont-email.me> <t53op3$m5h$1@dont-email.me>
<t53qla$6g7$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 6 May 2022 19:05:49 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="1e75b34da09b167af73c57fe6101ac66";
logging-data="14314"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18MBoma5lcF74/ITH2+ivMj"
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:91.0)
Gecko/20100101 Thunderbird/91.8.1
Cancel-Lock: sha1:+boh4m2aRogpMJ9j+ThGvxnEW6A=
In-Reply-To: <t53qla$6g7$1@dont-email.me>
Content-Language: en-US
 by: André G. Isaak - Fri, 6 May 2022 19:05 UTC

On 2022-05-06 12:50, olcott wrote:
> On 5/6/2022 1:18 PM, André G. Isaak wrote:
>> On 2022-05-06 12:03, olcott wrote:
>>> On 5/6/2022 12:01 PM, André G. Isaak wrote:
>>>> On 2022-05-06 10:45, olcott wrote:
>>>>> On 5/6/2022 10:43 AM, André G. Isaak wrote:
>>>>>> On 2022-05-06 09:32, olcott wrote:
>>>>
>>> Yes you are correct this is my mistake. I should have done a more
>>> accurate job specifying the original design.
>>
>> The way to do that would be to have just left the original quote alone
>> given that it was already perfectly clear. "Quoting" it without
>> indicating that it has been altered is simply deceptive.
>>
>> André
>>
>
> A turing machine is a model of a computer.  It has a finite number of
> states, and it is capable of reading and modifying a tape.  A turing
> machine program consists of a list of 'quintuples', each one of which is
> a five-symbol turing machine instruction.  For example, the quintuple
> 'SCcsm' is executed by the machine if it is in state 'S' and is reading
> the symbol 'C' on the tape.  In that case, the instruction causes the
> machine to make a transition to state 's' and to overwrite the symbol
> 'C' on the tape with the symbol 'c'.  The last operation it performs
> under this instruction is to move the tape reading head one symbol to
> the left or right according to whether 'm' is 'l' or 'r'.
> http://www.lns.mit.edu/~dsw/turing/doc/tm_manual.txt
>
>
> This does more succinctly (and thus more clearly) list the essential
> elements of the design, that the above paragraph specifies.
> For example, the quintuple 'SCcsm' is executed by the machine:
>
> if is in state 'S' and is reading the symbol 'C' on the tape then
> (a) make a transition to state 's'.
> (b) overwrite the symbol 'C' on the tape with the symbol 'c'.
>
> // This must occur before the state transition or we lose access to
> // current_quintuple->write_symbol
>
> (c) move the tape reading head one symbol to the left or right
>      according to whether 'm' is 'l' or 'r'.
>
> When we assume that current_quintuple was found in quintuple_list then
> this does seem to correctly implement the above design:

Design? Do you mean 'specification'?

> bool transition_function(std::set<Quintuple>::iterator& current_quintuple)
> {
>   u32 next_state    = current_quintuple->next_state;
>   u32 current_input = Tape[Tape_Head];
>   std::set<Quintuple>::iterator next_quintuple;
>
>   Tape[Tape_Head]   = current_quintuple->write_symbol;
>   if (toupper(current_quintuple->tape_head_move) == “L”;
>     Tape_Head--;  // Left
>   else
>     Tape_Head++;  // Right
>
>   next_quintuple = NextState(next_state, current_input);
>   if (next_quintuple == Quintuple_List.end())
>     return false;
>   current_state = it;
>   return true;
> }
>
> Do you think that the above function matches its design?

I have no idea what 'its design' is supposed to mean.

If by design you mean 'specification', then how is anyone supposed to
tell? You've got a bunch of horribly-named variables and undefined
functions.

What is the point of this exercise? You already have access to a TM
interpreter which written by someone who actually knows what they are
doing. If you can't write a TM which decides evenness, what on earth
would possess you to think you understand TMs well enough to write a TM
interpreter?

André

--
To email remove 'invalid' & replace 'gm' with well known Google mail
service.

Re: H(P,P) == false is correct [ verified facts ]

<t53rl5$ej0$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31785&group=comp.theory#31785

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: polco...@gmail.com (olcott)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ verified facts ]
Date: Fri, 6 May 2022 14:07:14 -0500
Organization: A noiseless patient Spider
Lines: 32
Message-ID: <t53rl5$ej0$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4sn5q$9nr$1@dont-email.me> <874k25qt5y.fsf@bsb.me.uk>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me>
<a588de5e-d0ee-4f93-939c-f73931e840ecn@googlegroups.com>
<t4vf5c$5ts$1@dont-email.me>
<1c6a8dce-f763-458e-98d6-295e38121221n@googlegroups.com>
<t4vgsc$jkr$1@dont-email.me>
<2577a7ba-aff1-4d04-85a6-0d269d81fe93n@googlegroups.com>
<t4vhp3$p9v$1@dont-email.me> <dWOcK.2076$lWNd.389@fx99.iad>
<0e79a2be-8735-4cfe-8ba3-7b3c5cc7e196n@googlegroups.com>
<t510rf$gsi$1@dont-email.me>
<37b535a3-a5f2-4c57-b235-abbaadbe722fn@googlegroups.com>
<t515kh$otd$1@dont-email.me>
<976b93ad-ba03-4941-b95b-125d6275c541n@googlegroups.com>
<t51gko$fjt$1@dont-email.me>
<a6690259-1f73-4095-afd9-b44a65c55f3en@googlegroups.com>
<t51j1n$39k$1@dont-email.me>
<db8dab24-5e75-4ba5-8ad9-4d39e0a6d21fn@googlegroups.com>
<t51sa1$rlu$1@dont-email.me> <t522fk$2nq$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 6 May 2022 19:07:17 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fa499fb4eb95ee5c956e821cecab3aa5";
logging-data="14944"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+8dBOqDsRjhikkp53lG3F+"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Cancel-Lock: sha1:C4jfwfY4lce7USDi/vrrHxuy0F8=
In-Reply-To: <t522fk$2nq$1@dont-email.me>
Content-Language: en-US
 by: olcott - Fri, 6 May 2022 19:07 UTC

On 5/5/2022 9:51 PM, André G. Isaak wrote:
> On 2022-05-05 19:06, olcott wrote:
>
>> Both H(P,P) and H1(P,P) correctly compute the mapping from their input
>> parameters to the halt status specified by these inputs.
>
> Both H(P, P) and H1(P, P) compute *a* mapping from their input to their
> accept/reject state, but not the *same* mapping. Therefore they do not
> compute the same function. Therefore at most one of them can be
> computing the halting function.
>
> So which one (if either) is computing the halting function?
>
> You can't talk about something 'correctly' computing a mapping unless
> you specify some criterion by which correctness is to be judged. For the
> halting problem, that would be whether the mapping corresponds to the
> halting function.
>
> André
>
>

A correct halt decider must only compute the mapping from its input
parameters to its own final state entirely on the basis of the actual
behavior specified by this actual input.

If this does not work out the way you expect then your expectations are
necessarily incorrect.

--
Copyright 2022 Pete Olcott "Talent hits a target no one else can hit;
Genius hits a target no one else can see." Arthur Schopenhauer

Re: H(P,P) == false is correct [ verified facts ]

<t53roj$ej0$2@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31786&group=comp.theory#31786

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: polco...@gmail.com (olcott)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ verified facts ]
Date: Fri, 6 May 2022 14:09:05 -0500
Organization: A noiseless patient Spider
Lines: 26
Message-ID: <t53roj$ej0$2@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4p08u$5ar$1@dont-email.me> <87wnf3ga8h.fsf@bsb.me.uk>
<t4pesp$d9n$1@dont-email.me> <87fslrfs3t.fsf@bsb.me.uk>
<t4sn5q$9nr$1@dont-email.me> <874k25qt5y.fsf@bsb.me.uk>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <t52qhg$ue$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 6 May 2022 19:09:07 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fa499fb4eb95ee5c956e821cecab3aa5";
logging-data="14944"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/AJ7Z5sJMc4DlLPqjrieut"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Cancel-Lock: sha1:XW7aVBU81sCZWRDfNDwHOA7U8jg=
In-Reply-To: <t52qhg$ue$1@dont-email.me>
Content-Language: en-US
 by: olcott - Fri, 6 May 2022 19:09 UTC

On 5/6/2022 4:42 AM, Mikko wrote:
> On 2022-05-05 22:12:51 +0000, olcott said:
>
>> struct Quintuple
>> {
>>    u32 state;
>>    u32 symbol;
>>    u32 write_symbol;
>>    u32 next_state;
>>     u8 Tape_Head_Move;
>> }
>>
>> std::set<Quintuple> States;
>
> I would recommend "Rule" pro "Quintuple" and "Rules" pro "States".
> Then the code would be easier to understand.
>
> Mikko
>
>

I am currently calling it Quintuple_List.

--
Copyright 2022 Pete Olcott "Talent hits a target no one else can hit;
Genius hits a target no one else can see." Arthur Schopenhauer

Re: On recursion and infinite recursion (reprise)

<t53s2i$i8e$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31788&group=comp.theory#31788

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: polco...@gmail.com (olcott)
Newsgroups: comp.theory
Subject: Re: On recursion and infinite recursion (reprise)
Date: Fri, 6 May 2022 14:14:24 -0500
Organization: A noiseless patient Spider
Lines: 42
Message-ID: <t53s2i$i8e$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4p08u$5ar$1@dont-email.me> <t4qt3c$vbe$1@dont-email.me>
<t4req3$qee$1@dont-email.me> <t4ro44$1rh$1@dont-email.me>
<t4rqv2$reg$1@dont-email.me> <t4t9ei$o7f$1@dont-email.me>
<t4ueqe$tp2$5@dont-email.me> <t505s7$s6f$1@dont-email.me>
<t512th$1un$1@dont-email.me> <t52pf6$oq7$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 6 May 2022 19:14:26 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fa499fb4eb95ee5c956e821cecab3aa5";
logging-data="18702"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+0Uf8dW1Kg/BUezTZjyJ3y"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Cancel-Lock: sha1:YbgVYsFhPuI1nz0qzLYIFe7hc7U=
In-Reply-To: <t52pf6$oq7$1@dont-email.me>
Content-Language: en-US
 by: olcott - Fri, 6 May 2022 19:14 UTC

On 5/6/2022 4:23 AM, Mikko wrote:
> On 2022-05-05 17:52:48 +0000, olcott said:
>
>>>>>> On 5/3/2022 12:17 PM, Mikko wrote:
>>>>>>> On 2022-05-03 14:38:57 +0000, olcott said:
>>>>>>>
>>>>>>>> On 5/3/2022 4:36 AM, Mikko wrote:
>
>>>>>>>>> One of the rules that define Prolog language is
>>>>>>>>>
>>>>>>>>>  arguments ::= argument | argument "," arguments
>>>>>>>>>
>>>>>>>>> which is infinitely recursive. Is it invalid? Is Prolog invalid
>>>>>>>>> because
>>>>>>>>> of this and other infinitely recursive rules?
>>>>>>>>>
>>>>>>>>> Mikko
>
>>>>>>>> If would have to be invalid because it can never be resolved.
>
>>>>>>> What would be invalid? Prolog? Definition of Prolog?
>>>>>>> Why "would be" and not "is"?
>
>> I never retracted anything.
>
> So you still claim that Prolog is invalid?
>
> Mikko
>

I said exactly the opposite.
When Prolog implements its system based on Facts and Rules it implements
the sound deductive inference model by applying only truth preserving
operations to expressions of language known to be true.

Also negation as failure can detect and reject expressions that are
neither true nor false. Conventional logic cannot possibly do this
because it presumes that ~True entails False (even when it doesn't).

--
Copyright 2022 Pete Olcott "Talent hits a target no one else can hit;
Genius hits a target no one else can see." Arthur Schopenhauer

Re: H(P,P) == false is correct [ verified facts ]

<t53s2p$gs0$2@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31789&group=comp.theory#31789

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: agis...@gm.invalid (André G. Isaak)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ verified facts ]
Date: Fri, 6 May 2022 13:14:33 -0600
Organization: Christians and Atheists United Against Creeping Agnosticism
Lines: 43
Message-ID: <t53s2p$gs0$2@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc> <874k25qt5y.fsf@bsb.me.uk>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me>
<a588de5e-d0ee-4f93-939c-f73931e840ecn@googlegroups.com>
<t4vf5c$5ts$1@dont-email.me>
<1c6a8dce-f763-458e-98d6-295e38121221n@googlegroups.com>
<t4vgsc$jkr$1@dont-email.me>
<2577a7ba-aff1-4d04-85a6-0d269d81fe93n@googlegroups.com>
<t4vhp3$p9v$1@dont-email.me> <dWOcK.2076$lWNd.389@fx99.iad>
<0e79a2be-8735-4cfe-8ba3-7b3c5cc7e196n@googlegroups.com>
<t510rf$gsi$1@dont-email.me>
<37b535a3-a5f2-4c57-b235-abbaadbe722fn@googlegroups.com>
<t515kh$otd$1@dont-email.me>
<976b93ad-ba03-4941-b95b-125d6275c541n@googlegroups.com>
<t51gko$fjt$1@dont-email.me>
<a6690259-1f73-4095-afd9-b44a65c55f3en@googlegroups.com>
<t51j1n$39k$1@dont-email.me>
<db8dab24-5e75-4ba5-8ad9-4d39e0a6d21fn@googlegroups.com>
<t51sa1$rlu$1@dont-email.me> <t522fk$2nq$1@dont-email.me>
<t53rl5$ej0$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 6 May 2022 19:14:33 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="1e75b34da09b167af73c57fe6101ac66";
logging-data="17280"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18QCoODKHtb3AaGkrJGgtqG"
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:91.0)
Gecko/20100101 Thunderbird/91.8.1
Cancel-Lock: sha1:NPy1DvFF/XINn0bmD4DTdJSCkzk=
In-Reply-To: <t53rl5$ej0$1@dont-email.me>
Content-Language: en-US
 by: André G. Isaak - Fri, 6 May 2022 19:14 UTC

On 2022-05-06 13:07, olcott wrote:
> On 5/5/2022 9:51 PM, André G. Isaak wrote:
>> On 2022-05-05 19:06, olcott wrote:
>>
>>> Both H(P,P) and H1(P,P) correctly compute the mapping from their
>>> input parameters to the halt status specified by these inputs.
>>
>> Both H(P, P) and H1(P, P) compute *a* mapping from their input to
>> their accept/reject state, but not the *same* mapping. Therefore they
>> do not compute the same function. Therefore at most one of them can be
>> computing the halting function.
>>
>> So which one (if either) is computing the halting function?
>>
>> You can't talk about something 'correctly' computing a mapping unless
>> you specify some criterion by which correctness is to be judged. For
>> the halting problem, that would be whether the mapping corresponds to
>> the halting function.
>>
>> André
>>
>>
>
> A correct halt decider must only compute the mapping from its input
> parameters to its own final state entirely on the basis of the actual
> behavior specified by this actual input.
>
> If this does not work out the way you expect then your expectations are
> necessarily incorrect.

What on earth does this have to do with my post? I pointed out that
H(P,P) and H1(P,P) have *different* mappings and thus compute
*different* functions. I asked which, if either of these, supposedly
computes the halting function.

I made no claims at all about what the mappings involved were. I only
noted that they are *different* and thus must compute different functions.

André

--
To email remove 'invalid' & replace 'gm' with well known Google mail
service.

Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<t53scr$kr3$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31790&group=comp.theory#31790

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: polco...@gmail.com (olcott)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Fri, 6 May 2022 14:19:53 -0500
Organization: A noiseless patient Spider
Lines: 101
Message-ID: <t53scr$kr3$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4p08u$5ar$1@dont-email.me> <87wnf3ga8h.fsf@bsb.me.uk>
<t4pesp$d9n$1@dont-email.me> <87fslrfs3t.fsf@bsb.me.uk>
<t4sn5q$9nr$1@dont-email.me> <874k25qt5y.fsf@bsb.me.uk>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t529bf$fls$1@dont-email.me> <t52a2k$jk3$1@dont-email.me>
<t52ano$n78$1@dont-email.me> <t5388a$b6j$1@dont-email.me>
<t53f1o$57i$1@dont-email.me> <t53fn7$avk$1@dont-email.me>
<t53jc5$a9p$1@dont-email.me> <t53k9p$hta$1@dont-email.me>
<t53nsn$ftg$1@dont-email.me> <t53op3$m5h$1@dont-email.me>
<t53qla$6g7$1@dont-email.me> <t53rid$dva$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 6 May 2022 19:19:55 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fa499fb4eb95ee5c956e821cecab3aa5";
logging-data="21347"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19MXXdg9D5dybg3bTX5MPyk"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Cancel-Lock: sha1:Cp3oD/lJ0uM0HOMMkR7o9Mx6zoI=
In-Reply-To: <t53rid$dva$1@dont-email.me>
Content-Language: en-US
 by: olcott - Fri, 6 May 2022 19:19 UTC

On 5/6/2022 2:05 PM, André G. Isaak wrote:
> On 2022-05-06 12:50, olcott wrote:
>> On 5/6/2022 1:18 PM, André G. Isaak wrote:
>>> On 2022-05-06 12:03, olcott wrote:
>>>> On 5/6/2022 12:01 PM, André G. Isaak wrote:
>>>>> On 2022-05-06 10:45, olcott wrote:
>>>>>> On 5/6/2022 10:43 AM, André G. Isaak wrote:
>>>>>>> On 2022-05-06 09:32, olcott wrote:
>>>>>
>>>> Yes you are correct this is my mistake. I should have done a more
>>>> accurate job specifying the original design.
>>>
>>> The way to do that would be to have just left the original quote
>>> alone given that it was already perfectly clear. "Quoting" it without
>>> indicating that it has been altered is simply deceptive.
>>>
>>> André
>>>
>>
>> A turing machine is a model of a computer.  It has a finite number of
>> states, and it is capable of reading and modifying a tape.  A turing
>> machine program consists of a list of 'quintuples', each one of which
>> is a five-symbol turing machine instruction.  For example, the
>> quintuple 'SCcsm' is executed by the machine if it is in state 'S' and
>> is reading the symbol 'C' on the tape.  In that case, the instruction
>> causes the machine to make a transition to state 's' and to overwrite
>> the symbol 'C' on the tape with the symbol 'c'.  The last operation it
>> performs under this instruction is to move the tape reading head one
>> symbol to the left or right according to whether 'm' is 'l' or 'r'.
>> http://www.lns.mit.edu/~dsw/turing/doc/tm_manual.txt
>>
>>
>> This does more succinctly (and thus more clearly) list the essential
>> elements of the design, that the above paragraph specifies.
>> For example, the quintuple 'SCcsm' is executed by the machine:
>>
>> if is in state 'S' and is reading the symbol 'C' on the tape then
>> (a) make a transition to state 's'.
>> (b) overwrite the symbol 'C' on the tape with the symbol 'c'.
>>
>> // This must occur before the state transition or we lose access to
>> // current_quintuple->write_symbol
>>
>> (c) move the tape reading head one symbol to the left or right
>>       according to whether 'm' is 'l' or 'r'.
>>
>> When we assume that current_quintuple was found in quintuple_list then
>> this does seem to correctly implement the above design:
>
> Design? Do you mean 'specification'?
>
>> bool transition_function(std::set<Quintuple>::iterator&
>> current_quintuple)
>> {
>>    u32 next_state    = current_quintuple->next_state;
>>    u32 current_input = Tape[Tape_Head];
>>    std::set<Quintuple>::iterator next_quintuple;
>>
>>    Tape[Tape_Head]   = current_quintuple->write_symbol;
>>    if (toupper(current_quintuple->tape_head_move) == “L”;
>>      Tape_Head--;  // Left
>>    else
>>      Tape_Head++;  // Right
>>
>>    next_quintuple = NextState(next_state, current_input);
>>    if (next_quintuple == Quintuple_List.end())
>>      return false;
>>    current_state = it;

correction: current_state = next_quintuple;

>>    return true;
>> }
>>
>> Do you think that the above function matches its design?
>
> I have no idea what 'its design' is supposed to mean.
>
> If by design you mean 'specification', then how is anyone supposed to
> tell? You've got a bunch of horribly-named variables and undefined
> functions.
>

A design is a kind of specification.

The functionality of the functions can be inferred from their use.
What do you think is horribly named?

> What is the point of this exercise? You already have access to a TM
> interpreter which written by someone who actually knows what they are
> doing. If you can't write a TM which decides evenness, what on earth
> would possess you to think you understand TMs well enough to write a TM
> interpreter?
>
> André
>

--
Copyright 2022 Pete Olcott "Talent hits a target no one else can hit;
Genius hits a target no one else can see." Arthur Schopenhauer

Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<t53sjn$mfu$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31792&group=comp.theory#31792

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: agis...@gm.invalid (André G. Isaak)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Fri, 6 May 2022 13:23:33 -0600
Organization: Christians and Atheists United Against Creeping Agnosticism
Lines: 100
Message-ID: <t53sjn$mfu$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4p08u$5ar$1@dont-email.me> <87wnf3ga8h.fsf@bsb.me.uk>
<t4pesp$d9n$1@dont-email.me> <87fslrfs3t.fsf@bsb.me.uk>
<t4sn5q$9nr$1@dont-email.me> <874k25qt5y.fsf@bsb.me.uk>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t529bf$fls$1@dont-email.me> <t52a2k$jk3$1@dont-email.me>
<t52ano$n78$1@dont-email.me> <t5388a$b6j$1@dont-email.me>
<t53f1o$57i$1@dont-email.me> <t53fn7$avk$1@dont-email.me>
<t53jc5$a9p$1@dont-email.me> <t53k9p$hta$1@dont-email.me>
<t53nsn$ftg$1@dont-email.me> <t53op3$m5h$1@dont-email.me>
<t53qla$6g7$1@dont-email.me> <t53rid$dva$1@dont-email.me>
<t53scr$kr3$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 6 May 2022 19:23:35 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="1e75b34da09b167af73c57fe6101ac66";
logging-data="23038"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/kwwCfsvNQsI1sQk3X1UTS"
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:91.0)
Gecko/20100101 Thunderbird/91.8.1
Cancel-Lock: sha1:IfJXs0uCz+ARCvhEEYKCQAtt9M4=
In-Reply-To: <t53scr$kr3$1@dont-email.me>
Content-Language: en-US
 by: André G. Isaak - Fri, 6 May 2022 19:23 UTC

On 2022-05-06 13:19, olcott wrote:
> On 5/6/2022 2:05 PM, André G. Isaak wrote:
>> On 2022-05-06 12:50, olcott wrote:
>>> On 5/6/2022 1:18 PM, André G. Isaak wrote:
>>>> On 2022-05-06 12:03, olcott wrote:
>>>>> On 5/6/2022 12:01 PM, André G. Isaak wrote:
>>>>>> On 2022-05-06 10:45, olcott wrote:
>>>>>>> On 5/6/2022 10:43 AM, André G. Isaak wrote:
>>>>>>>> On 2022-05-06 09:32, olcott wrote:
>>>>>>
>>>>> Yes you are correct this is my mistake. I should have done a more
>>>>> accurate job specifying the original design.
>>>>
>>>> The way to do that would be to have just left the original quote
>>>> alone given that it was already perfectly clear. "Quoting" it
>>>> without indicating that it has been altered is simply deceptive.
>>>>
>>>> André
>>>>
>>>
>>> A turing machine is a model of a computer.  It has a finite number of
>>> states, and it is capable of reading and modifying a tape.  A turing
>>> machine program consists of a list of 'quintuples', each one of which
>>> is a five-symbol turing machine instruction.  For example, the
>>> quintuple 'SCcsm' is executed by the machine if it is in state 'S'
>>> and is reading the symbol 'C' on the tape.  In that case, the
>>> instruction causes the machine to make a transition to state 's' and
>>> to overwrite the symbol 'C' on the tape with the symbol 'c'.  The
>>> last operation it performs under this instruction is to move the tape
>>> reading head one symbol to the left or right according to whether 'm'
>>> is 'l' or 'r'. http://www.lns.mit.edu/~dsw/turing/doc/tm_manual.txt
>>>
>>>
>>> This does more succinctly (and thus more clearly) list the essential
>>> elements of the design, that the above paragraph specifies.
>>> For example, the quintuple 'SCcsm' is executed by the machine:
>>>
>>> if is in state 'S' and is reading the symbol 'C' on the tape then
>>> (a) make a transition to state 's'.
>>> (b) overwrite the symbol 'C' on the tape with the symbol 'c'.
>>>
>>> // This must occur before the state transition or we lose access to
>>> // current_quintuple->write_symbol
>>>
>>> (c) move the tape reading head one symbol to the left or right
>>>       according to whether 'm' is 'l' or 'r'.
>>>
>>> When we assume that current_quintuple was found in quintuple_list
>>> then this does seem to correctly implement the above design:
>>
>> Design? Do you mean 'specification'?
>>
>>> bool transition_function(std::set<Quintuple>::iterator&
>>> current_quintuple)
>>> {
>>>    u32 next_state    = current_quintuple->next_state;
>>>    u32 current_input = Tape[Tape_Head];
>>>    std::set<Quintuple>::iterator next_quintuple;
>>>
>>>    Tape[Tape_Head]   = current_quintuple->write_symbol;
>>>    if (toupper(current_quintuple->tape_head_move) == “L”;
>>>      Tape_Head--;  // Left
>>>    else
>>>      Tape_Head++;  // Right
>>>
>>>    next_quintuple = NextState(next_state, current_input);
>>>    if (next_quintuple == Quintuple_List.end())
>>>      return false;
>>>    current_state = it;
>
> correction: current_state = next_quintuple;
>
>>>    return true;
>>> }
>>>
>>> Do you think that the above function matches its design?
>>
>> I have no idea what 'its design' is supposed to mean.
>>
>> If by design you mean 'specification', then how is anyone supposed to
>> tell? You've got a bunch of horribly-named variables and undefined
>> functions.
>>
>
> A design is a kind of specification.

No. That's not how these words are used. A design and a specification
are entirely different things.

> The functionality of the functions can be inferred from their use.
> What do you think is horribly named?

Well, you've got a variable called current_state that represents a
quintuple rather than a state, for one.

André

--
To email remove 'invalid' & replace 'gm' with well known Google mail
service.

Re: H(P,P) == false is correct [ verified facts ]

<t53sui$p1e$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31794&group=comp.theory#31794

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: polco...@gmail.com (olcott)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ verified facts ]
Date: Fri, 6 May 2022 14:29:19 -0500
Organization: A noiseless patient Spider
Lines: 59
Message-ID: <t53sui$p1e$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me>
<a588de5e-d0ee-4f93-939c-f73931e840ecn@googlegroups.com>
<t4vf5c$5ts$1@dont-email.me>
<1c6a8dce-f763-458e-98d6-295e38121221n@googlegroups.com>
<t4vgsc$jkr$1@dont-email.me>
<2577a7ba-aff1-4d04-85a6-0d269d81fe93n@googlegroups.com>
<t4vhp3$p9v$1@dont-email.me> <dWOcK.2076$lWNd.389@fx99.iad>
<0e79a2be-8735-4cfe-8ba3-7b3c5cc7e196n@googlegroups.com>
<t510rf$gsi$1@dont-email.me>
<37b535a3-a5f2-4c57-b235-abbaadbe722fn@googlegroups.com>
<t515kh$otd$1@dont-email.me>
<976b93ad-ba03-4941-b95b-125d6275c541n@googlegroups.com>
<t51gko$fjt$1@dont-email.me>
<a6690259-1f73-4095-afd9-b44a65c55f3en@googlegroups.com>
<t51j1n$39k$1@dont-email.me>
<db8dab24-5e75-4ba5-8ad9-4d39e0a6d21fn@googlegroups.com>
<t51sa1$rlu$1@dont-email.me> <t522fk$2nq$1@dont-email.me>
<t53rl5$ej0$1@dont-email.me> <t53s2p$gs0$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 6 May 2022 19:29:22 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fa499fb4eb95ee5c956e821cecab3aa5";
logging-data="25646"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18HcwqwXNt8O/ZdWHsJXVOw"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Cancel-Lock: sha1:VwvHE4HApTKp8NhKXJeRYTxoeUE=
In-Reply-To: <t53s2p$gs0$2@dont-email.me>
Content-Language: en-US
 by: olcott - Fri, 6 May 2022 19:29 UTC

On 5/6/2022 2:14 PM, André G. Isaak wrote:
> On 2022-05-06 13:07, olcott wrote:
>> On 5/5/2022 9:51 PM, André G. Isaak wrote:
>>> On 2022-05-05 19:06, olcott wrote:
>>>
>>>> Both H(P,P) and H1(P,P) correctly compute the mapping from their
>>>> input parameters to the halt status specified by these inputs.
>>>
>>> Both H(P, P) and H1(P, P) compute *a* mapping from their input to
>>> their accept/reject state, but not the *same* mapping. Therefore they
>>> do not compute the same function. Therefore at most one of them can
>>> be computing the halting function.
>>>
>>> So which one (if either) is computing the halting function?
>>>
>>> You can't talk about something 'correctly' computing a mapping unless
>>> you specify some criterion by which correctness is to be judged. For
>>> the halting problem, that would be whether the mapping corresponds to
>>> the halting function.
>>>
>>> André
>>>
>>>
>>
>> A correct halt decider must only compute the mapping from its input
>> parameters to its own final state entirely on the basis of the actual
>> behavior specified by this actual input.
>>
>> If this does not work out the way you expect then your expectations
>> are necessarily incorrect.
>
> What on earth does this have to do with my post? I pointed out that
> H(P,P) and H1(P,P) have *different* mappings and thus compute
> *different* functions. I asked which, if either of these, supposedly
> computes the halting function.

The only relevant point is that H(P,P) and H1(P,P) do correctly compute
the mapping of their inputs to an accept or reject state based on the
actual behavior specified by these inputs.

This is ALL that a halt decider must to to be considered correct on an
input parameter.

That H(P,P) does not derive that same result as H1(P,P) is as relevant
to this discussion as the fact that cats are not dogs.

>
> I made no claims at all about what the mappings involved were. I only
> noted that they are *different* and thus must compute different functions.
>
> André
>

That is moot.
Are H(P,P)==false and H1(P,P)==true correct? Yes, then done.

--
Copyright 2022 Pete Olcott "Talent hits a target no one else can hit;
Genius hits a target no one else can see." Arthur Schopenhauer

Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<t53t7f$rdg$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31795&group=comp.theory#31795

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: polco...@gmail.com (olcott)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Fri, 6 May 2022 14:34:04 -0500
Organization: A noiseless patient Spider
Lines: 115
Message-ID: <t53t7f$rdg$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4p08u$5ar$1@dont-email.me> <87wnf3ga8h.fsf@bsb.me.uk>
<t4pesp$d9n$1@dont-email.me> <87fslrfs3t.fsf@bsb.me.uk>
<t4sn5q$9nr$1@dont-email.me> <874k25qt5y.fsf@bsb.me.uk>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t529bf$fls$1@dont-email.me> <t52a2k$jk3$1@dont-email.me>
<t52ano$n78$1@dont-email.me> <t5388a$b6j$1@dont-email.me>
<t53f1o$57i$1@dont-email.me> <t53fn7$avk$1@dont-email.me>
<t53jc5$a9p$1@dont-email.me> <t53k9p$hta$1@dont-email.me>
<t53nsn$ftg$1@dont-email.me> <t53op3$m5h$1@dont-email.me>
<t53qla$6g7$1@dont-email.me> <t53rid$dva$1@dont-email.me>
<t53scr$kr3$1@dont-email.me> <t53sjn$mfu$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 6 May 2022 19:34:07 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fa499fb4eb95ee5c956e821cecab3aa5";
logging-data="28080"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/GC8HPO0ZuERD6riLf08Ng"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Cancel-Lock: sha1:1Bc9VQqIkLQAjYXMovwX5bNeGT8=
In-Reply-To: <t53sjn$mfu$1@dont-email.me>
Content-Language: en-US
 by: olcott - Fri, 6 May 2022 19:34 UTC

On 5/6/2022 2:23 PM, André G. Isaak wrote:
> On 2022-05-06 13:19, olcott wrote:
>> On 5/6/2022 2:05 PM, André G. Isaak wrote:
>>> On 2022-05-06 12:50, olcott wrote:
>>>> On 5/6/2022 1:18 PM, André G. Isaak wrote:
>>>>> On 2022-05-06 12:03, olcott wrote:
>>>>>> On 5/6/2022 12:01 PM, André G. Isaak wrote:
>>>>>>> On 2022-05-06 10:45, olcott wrote:
>>>>>>>> On 5/6/2022 10:43 AM, André G. Isaak wrote:
>>>>>>>>> On 2022-05-06 09:32, olcott wrote:
>>>>>>>
>>>>>> Yes you are correct this is my mistake. I should have done a more
>>>>>> accurate job specifying the original design.
>>>>>
>>>>> The way to do that would be to have just left the original quote
>>>>> alone given that it was already perfectly clear. "Quoting" it
>>>>> without indicating that it has been altered is simply deceptive.
>>>>>
>>>>> André
>>>>>
>>>>
>>>> A turing machine is a model of a computer.  It has a finite number
>>>> of states, and it is capable of reading and modifying a tape.  A
>>>> turing machine program consists of a list of 'quintuples', each one
>>>> of which is a five-symbol turing machine instruction.  For example,
>>>> the quintuple 'SCcsm' is executed by the machine if it is in state
>>>> 'S' and is reading the symbol 'C' on the tape.  In that case, the
>>>> instruction causes the machine to make a transition to state 's' and
>>>> to overwrite the symbol 'C' on the tape with the symbol 'c'.  The
>>>> last operation it performs under this instruction is to move the
>>>> tape reading head one symbol to the left or right according to
>>>> whether 'm' is 'l' or 'r'.
>>>> http://www.lns.mit.edu/~dsw/turing/doc/tm_manual.txt
>>>>
>>>>
>>>> This does more succinctly (and thus more clearly) list the essential
>>>> elements of the design, that the above paragraph specifies.
>>>> For example, the quintuple 'SCcsm' is executed by the machine:
>>>>
>>>> if is in state 'S' and is reading the symbol 'C' on the tape then
>>>> (a) make a transition to state 's'.
>>>> (b) overwrite the symbol 'C' on the tape with the symbol 'c'.
>>>>
>>>> // This must occur before the state transition or we lose access to
>>>> // current_quintuple->write_symbol
>>>>
>>>> (c) move the tape reading head one symbol to the left or right
>>>>       according to whether 'm' is 'l' or 'r'.
>>>>
>>>> When we assume that current_quintuple was found in quintuple_list
>>>> then this does seem to correctly implement the above design:
>>>
>>> Design? Do you mean 'specification'?
>>>
>>>> bool transition_function(std::set<Quintuple>::iterator&
>>>> current_quintuple)
>>>> {
>>>>    u32 next_state    = current_quintuple->next_state;
>>>>    u32 current_input = Tape[Tape_Head];
>>>>    std::set<Quintuple>::iterator next_quintuple;
>>>>
>>>>    Tape[Tape_Head]   = current_quintuple->write_symbol;
>>>>    if (toupper(current_quintuple->tape_head_move) == “L”;
>>>>      Tape_Head--;  // Left
>>>>    else
>>>>      Tape_Head++;  // Right
>>>>
>>>>    next_quintuple = NextState(next_state, current_input);
>>>>    if (next_quintuple == Quintuple_List.end())
>>>>      return false;
>>>>    current_state = it;
>>
>> correction: current_state = next_quintuple;

current_quintuple = next_quintuple;

>>
>>>>    return true;
>>>> }
>>>>
>>>> Do you think that the above function matches its design?
>>>
>>> I have no idea what 'its design' is supposed to mean.
>>>
>>> If by design you mean 'specification', then how is anyone supposed to
>>> tell? You've got a bunch of horribly-named variables and undefined
>>> functions.
>>>
>>
>> A design is a kind of specification.
>
> No. That's not how these words are used. A design and a specification
> are entirely different things.
>

I don't do it that way.
I have designs at various levels of abstraction/versus specificity.
The most specific level of design is the actual coding in C++.
Just above this is the pseudo code.

>> The functionality of the functions can be inferred from their use.
>> What do you think is horribly named?
>
> Well, you've got a variable called current_state that represents a
> quintuple rather than a state, for one.
>
> André
>

Yet another typo.

--
Copyright 2022 Pete Olcott "Talent hits a target no one else can hit;
Genius hits a target no one else can see." Arthur Schopenhauer

Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<t53tdq$ss7$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31796&group=comp.theory#31796

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: agis...@gm.invalid (André G. Isaak)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Fri, 6 May 2022 13:37:28 -0600
Organization: Christians and Atheists United Against Creeping Agnosticism
Lines: 24
Message-ID: <t53tdq$ss7$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4p08u$5ar$1@dont-email.me> <87wnf3ga8h.fsf@bsb.me.uk>
<t4pesp$d9n$1@dont-email.me> <87fslrfs3t.fsf@bsb.me.uk>
<t4sn5q$9nr$1@dont-email.me> <874k25qt5y.fsf@bsb.me.uk>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t529bf$fls$1@dont-email.me> <t52a2k$jk3$1@dont-email.me>
<t52ano$n78$1@dont-email.me> <t5388a$b6j$1@dont-email.me>
<t53f1o$57i$1@dont-email.me> <t53fn7$avk$1@dont-email.me>
<t53jc5$a9p$1@dont-email.me> <t53k9p$hta$1@dont-email.me>
<t53nsn$ftg$1@dont-email.me> <t53op3$m5h$1@dont-email.me>
<t53qla$6g7$1@dont-email.me> <t53rid$dva$1@dont-email.me>
<t53scr$kr3$1@dont-email.me> <t53sjn$mfu$1@dont-email.me>
<t53t7f$rdg$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 6 May 2022 19:37:30 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="1e75b34da09b167af73c57fe6101ac66";
logging-data="29575"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/sYkDvsdMme5uYyi4wXXe1"
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:91.0)
Gecko/20100101 Thunderbird/91.8.1
Cancel-Lock: sha1:O1OT3dRyBr71jyJLHJd1qMGfpaI=
In-Reply-To: <t53t7f$rdg$1@dont-email.me>
Content-Language: en-US
 by: André G. Isaak - Fri, 6 May 2022 19:37 UTC

On 2022-05-06 13:34, olcott wrote:
> On 5/6/2022 2:23 PM, André G. Isaak wrote:
>> On 2022-05-06 13:19, olcott wrote:

>>> A design is a kind of specification.
>>
>> No. That's not how these words are used. A design and a specification
>> are entirely different things.
>>
>
> I don't do it that way.

And that's a major part of your problem: You keep inventing your own
meanings for words which already have well-established usage and thus
have absolutely no hope of ever communicating your ideas to anyone.

Worse, you misinterpret most everything you read because you substitute
your own private meanings for whatever the author actually intended to say.

André

--
To email remove 'invalid' & replace 'gm' with well known Google mail
service.

Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<t53u21$21o$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31799&group=comp.theory#31799

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: polco...@gmail.com (olcott)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Fri, 6 May 2022 14:48:15 -0500
Organization: A noiseless patient Spider
Lines: 54
Message-ID: <t53u21$21o$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4p08u$5ar$1@dont-email.me> <87wnf3ga8h.fsf@bsb.me.uk>
<t4pesp$d9n$1@dont-email.me> <87fslrfs3t.fsf@bsb.me.uk>
<t4sn5q$9nr$1@dont-email.me> <874k25qt5y.fsf@bsb.me.uk>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t529bf$fls$1@dont-email.me> <t52a2k$jk3$1@dont-email.me>
<t52ano$n78$1@dont-email.me> <t5388a$b6j$1@dont-email.me>
<t53f1o$57i$1@dont-email.me> <t53fn7$avk$1@dont-email.me>
<t53jc5$a9p$1@dont-email.me> <t53k9p$hta$1@dont-email.me>
<t53nsn$ftg$1@dont-email.me> <t53op3$m5h$1@dont-email.me>
<t53qla$6g7$1@dont-email.me> <t53rid$dva$1@dont-email.me>
<t53scr$kr3$1@dont-email.me> <t53sjn$mfu$1@dont-email.me>
<t53t7f$rdg$1@dont-email.me> <t53tdq$ss7$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 6 May 2022 19:48:17 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fa499fb4eb95ee5c956e821cecab3aa5";
logging-data="2104"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19aYnFyWFX+1K4yX1x1UTw9"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Cancel-Lock: sha1:IY+0wJ6WtuE5bFj2gj2tosYvKec=
In-Reply-To: <t53tdq$ss7$1@dont-email.me>
Content-Language: en-US
 by: olcott - Fri, 6 May 2022 19:48 UTC

On 5/6/2022 2:37 PM, André G. Isaak wrote:
> On 2022-05-06 13:34, olcott wrote:
>> On 5/6/2022 2:23 PM, André G. Isaak wrote:
>>> On 2022-05-06 13:19, olcott wrote:
>
>>>> A design is a kind of specification.
>>>
>>> No. That's not how these words are used. A design and a specification
>>> are entirely different things.
>>>
>>
>> I don't do it that way.
>
> And that's a major part of your problem: You keep inventing your own
> meanings for words which already have well-established usage and thus
> have absolutely no hope of ever communicating your ideas to anyone.
>

A software requirements specification (SRS) is a document that describes
what the software will do and how it will be expected to perform. It
also describes the functionality the product needs to fulfill all
stakeholders (business, users) needs.

https://www.perforce.com/blog/alm/how-write-software-requirements-specification-srs-document#what-is-a-software-requirements-specification-document

So it is merely a design with enough detail that the system can be
implemented on the basis of the spec. This is exactly the same thing as
my next to last level of detailed design.

My designs start with very high level abstractions

---Begin Design of Simplest TM Interpreter---
(1) Parse Lines of text in the filename.tm file into
(a) structure of five fields.
(1) current state // possibly redundant
(2) current symbol
(3) next state
(4) write symbol
(5) Move tape head L(eft) or R(ight)
(b) single contiguous sequence of tape elements
(2) Make executable TM

And are progressively refined until working code is derived.

> Worse, you misinterpret most everything you read because you substitute
> your own private meanings for whatever the author actually intended to say.
>
> André
>

--
Copyright 2022 Pete Olcott "Talent hits a target no one else can hit;
Genius hits a target no one else can see." Arthur Schopenhauer

Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<87a6bu1aw4.fsf@bsb.me.uk>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31819&group=comp.theory#31819

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ben.use...@bsb.me.uk (Ben)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Sat, 07 May 2022 00:47:39 +0100
Organization: A noiseless patient Spider
Lines: 14
Message-ID: <87a6bu1aw4.fsf@bsb.me.uk>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t529bf$fls$1@dont-email.me> <t52a2k$jk3$1@dont-email.me>
<t52ano$n78$1@dont-email.me> <t5388a$b6j$1@dont-email.me>
<t53f1o$57i$1@dont-email.me> <t53fn7$avk$1@dont-email.me>
<t53jc5$a9p$1@dont-email.me> <t53k9p$hta$1@dont-email.me>
<t53nsn$ftg$1@dont-email.me> <t53op3$m5h$1@dont-email.me>
<t53qla$6g7$1@dont-email.me> <t53rid$dva$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Injection-Info: reader02.eternal-september.org; posting-host="75b342e6311f1aa208c9f5345542552f";
logging-data="32518"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18fYQJhKdVhg+xqHIUPPKt0TPHdiMucdOM="
Cancel-Lock: sha1:EIbuH1c22Pdxf7e5HI1qpLIGix8=
sha1:lSdqlP96h4//3UHe1fg6ZxakosM=
X-BSB-Auth: 1.65c5a4d28fdb5e3f1c20.20220507004739BST.87a6bu1aw4.fsf@bsb.me.uk
 by: Ben - Fri, 6 May 2022 23:47 UTC

André G. Isaak <agisaak@gm.invalid> writes:

> What is the point of this exercise?

It's a delaying tactic. PO can now claim that he's started to write the
TM I called E, but since no existing interpreter meets his exacting
standards, he simply must sort that out first.

There may also be a legitimate purpose. It's possible that PO hopes
that by writing an interpreter he will gain enough understanding of TMs
to write E.

--
Ben.

Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<t54cpv$986$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31822&group=comp.theory#31822

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: polco...@gmail.com (olcott)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Fri, 6 May 2022 18:59:55 -0500
Organization: A noiseless patient Spider
Lines: 56
Message-ID: <t54cpv$986$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t529bf$fls$1@dont-email.me> <t52a2k$jk3$1@dont-email.me>
<t52ano$n78$1@dont-email.me> <t5388a$b6j$1@dont-email.me>
<t53f1o$57i$1@dont-email.me> <t53fn7$avk$1@dont-email.me>
<t53jc5$a9p$1@dont-email.me> <t53k9p$hta$1@dont-email.me>
<t53nsn$ftg$1@dont-email.me> <t53op3$m5h$1@dont-email.me>
<t53qla$6g7$1@dont-email.me> <t53rid$dva$1@dont-email.me>
<87a6bu1aw4.fsf@bsb.me.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 6 May 2022 23:59:59 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fff6fcee31b0b14fc946e2a4134b630e";
logging-data="9478"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/KvdmeDIHtM1aUe0qE1v0p"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Cancel-Lock: sha1:OcYt+hf0x6w9MxxkW/7VamcMBh8=
In-Reply-To: <87a6bu1aw4.fsf@bsb.me.uk>
Content-Language: en-US
 by: olcott - Fri, 6 May 2022 23:59 UTC

On 5/6/2022 6:47 PM, Ben wrote:
> André G. Isaak <agisaak@gm.invalid> writes:
>
>> What is the point of this exercise?
>
> It's a delaying tactic. PO can now claim that he's started to write the
> TM I called E, but since no existing interpreter meets his exacting
> standards, he simply must sort that out first.
>
> There may also be a legitimate purpose. It's possible that PO hopes
> that by writing an interpreter he will gain enough understanding of TMs
> to write E.
>

I wanted a Minimal TM interpreter that has <= three minute learning
curve for people that already know TM's very well.

For example, the quintuple 'SCcsm' is executed by the machine:

If it is in state 'S' and is reading the symbol 'C' on the tape then
(a) make a transition to state 's'.

(b) overwrite the symbol 'C' on the tape with the symbol 'c'.
// Must do this before transition to state 's' or we lose 'c' from S.

(c) move the tape reading head one symbol to the left or right
according to whether 'm' is 'l' or 'r'

THIS SEEMS TO EXACTLY MATCH THE SPEC PROVIDED ABOVE.
THE SPEC SEEMS TO HAVE AN ERROR (see above) THAT WAS ACCOUNTED FOR.

bool Quintuple_List::transition_function
(std::set<Quintuple>::iterator& current_quintuple)
{ unsigned int next_state = current_quintuple->next_state;
unsigned int current_input = Tape[Tape_Head];
std::set<Quintuple>::iterator next_quintuple;

Tape[Tape_Head] = current_quintuple->write_symbol;
if (toupper(current_quintuple->tape_head_move) == 'L')
Tape_Head--; // Left
else
Tape_Head++; // Right

next_quintuple = NextState(next_state, current_input);
if (next_quintuple == States.end())
return false;
current_quintuple = next_quintuple;
return true;
}

--
Copyright 2022 Pete Olcott "Talent hits a target no one else can hit;
Genius hits a target no one else can see." Arthur Schopenhauer

Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<87levexfxz.fsf@bsb.me.uk>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31836&group=comp.theory#31836

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ben.use...@bsb.me.uk (Ben)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Sat, 07 May 2022 02:57:28 +0100
Organization: A noiseless patient Spider
Lines: 201
Message-ID: <87levexfxz.fsf@bsb.me.uk>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4p08u$5ar$1@dont-email.me> <87wnf3ga8h.fsf@bsb.me.uk>
<t4pesp$d9n$1@dont-email.me> <87fslrfs3t.fsf@bsb.me.uk>
<t4sn5q$9nr$1@dont-email.me> <874k25qt5y.fsf@bsb.me.uk>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t524n3$ff6$1@dont-email.me> <87h76299kq.fsf@bsb.me.uk>
<t53il0$47f$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Injection-Info: reader02.eternal-september.org; posting-host="75b342e6311f1aa208c9f5345542552f";
logging-data="20350"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Dit7QLuWUD7i797+LtccRjy6c0cPKLqA="
Cancel-Lock: sha1:nuvwXXQoNx1Hpl8qD199s7spyog=
sha1:sPEO82zabQLcgo43+Su2oy7W4IA=
X-BSB-Auth: 1.30edb6c7a84451bf9eaa.20220507025728BST.87levexfxz.fsf@bsb.me.uk
 by: Ben - Sat, 7 May 2022 01:57 UTC

olcott <polcott2@gmail.com> writes:

> On 5/6/2022 6:36 AM, Ben wrote:
>> olcott <polcott2@gmail.com> writes:
>>
>>> On 5/5/2022 9:35 PM, Ben wrote:
>>>> olcott <polcott2@gmail.com> writes:

>>>>> struct Quintuple
>>>>> {
>>>>> u32 state;
>>>>> u32 symbol;
>>>>> u32 write_symbol;
>>>>> u32 next_state;
>>>>> u8 Tape_Head_Move;
>>>>> }
>>>>>
>>>>> std::set<Quintuple> States;
>>>> Why is a set of objects that are not states called "States"?
>>>
>>> They are states, what did you think that states are?

>> Not quintuples. There are lots of ways to represent a TM's states, but
>> states are not quintuples and quintuples are not states. This confusion
>> will (as you can see below) make lots of the code read badly.
>
> What did you think that states are?

Their only properties are that they are distinct and finite in number.
I have written an interpreter in which the states are instances of a
class State, that holds all the information a TM might need when in that
state. But there are a hundreds of other ways to represent the states.

> Do you think that they are raw integers?

No, that's not what they are, though you could use integers to represent
them. You could also use characters, strings and pointers to state
objects.

A key consideration, though, is that you might want to print information
about the states to help the user of the interpreter so the states
should be identifiable in some what that matches the way the user writes
the TM. So I tend to favour labelling the sates with strings so that
messages can report things like:

In state 'open_(_seen': no transition for symbol '+'.

If you are matching the input scheme for the implementation you posted a
link to, then you should be able to report the state's name as the
character the user will have entered.

>>> This is the first draft of my transition_function() its seems to exactly match this design on the first page of the docs.
>>> http://www.lns.mit.edu/~dsw/turing/doc/tm_manual.txt
>>>
>>> I am writing this in Open Office Writer not any compiler.
>>> I don't even know that it compiles.
>>>
>>> This is going to be a member function.
>>> bool transition_function(std::set<Quintuple>::iterator& current_state)
>>
>> There's no point in putting the quintuples into a std::set. And the
>> parameter current_state is badly worded as it refers to a particular
>> rule (quintuple) and not to a state.
>
> It is simpler than a linear or binary search scan through the whole
> list every-time we need to make a transition from the current_state to
> the (next_state + current_Input).

Of course, but a set is not, in my opinion, the natural container for
quintuples. Do you even know how to make it work in your case? It
would involve what I would consider a bit of trickery.

> std::set<Quintuple>::iterator
> NextState(int next_state, int current_input)
> {
> Quintuple QT(next_state, current_input);
> return States.find(QT);
> };
>
> The above returns an iterator to state indexed by (state + symbol).

It returns an iterator to a quintuple, not a state, so the name is bad.
And why does the function take things called 'next_state' and
'current_input'? The next quintuple is determined by the current state
and the current input.

> bool Transition_to_State_0(std::set<Quintuple>::iterator& current_state)
> {
> it = NextState(0, Tape[Tape_Head]);
> if (it == States.end())
> return false;
> current_state = it;
> return true;
> }

This looks all messed up but mainly because I don't think you are using
the right names.

And it's still a very loose sketch. Setting current_state is
essentially pointless.

>>> {
>>> u32 next_state = current_state->next_state;
>> States, as you make clear here are just unsigned integers (in your
>> implementation).
>>
>
> OK then I will use Quintuple_List as my designer implemented.
>
>>> u32 current_input = Tape[Tape_Head];
>> Why reference the tape here? If Tape[Tape_Head] != current_state.symbol
>> then something has gone very wrong already. Note how confusing my
>> writing the condition is since current_state.symbol should not make
>> sense.
>
> Although after successful find current_state->symbol would have the
> same value as Tape[Tape_Head] it is more clear that we are referring
> to the current input with the latter.
>
>> (By all means reference the tape to put in a run-time assertion that
>> tape.head() == current_rule.symbol or some such but there's no need to
>> get the symbol from the tape as you will already have done this in order
>> to pass the right quintuple to this function.)
>
> My way is clearer.

I think the best way to judge that will be to compare code. At the
moment you only have a very rough sketch.

>>> std::set<Quintuple>::iterator it;
>>>
>>> Tape[Tape_Head] = current_state->write_symbol;
>> current_state.write_symbol
>> But if the parameter were correctly named it would make more sense:
>> Tape[Tape_Head] = current_rule.write_symbol
>>
>>> if (toupper(current_state->tape_head_move) == “L”;
>>> Tape_Head--; // Left
>>> else
>>> Tape_Head++; // Right
>> Since the tape has a very limited number of operations, I'd abstract it
>> out into a class with a move member function (or a left and a right
>> function).
>
> I think that it is more clear the way it is.

Let's see how it turns out in the end.

> Since the current state must refer to every element of its related
> Quintuple and current_state is actually current_state + current_input,
> this a single integer does not uniquely identify a Quintuple it seems
> to make the most sense to call each Quintuple a state.
>
> It may be more conventional to have a two layered system where an
> integer indexes into a list of states each one having a list of inputs
> that they respond to. The ads extraneous complexity.
>
> I could call current_state current_quintuple.

I think a lot of the problems a down to your uses state when you mean
quintuple. NextState seems all wrong, but maybe it makes more sense if
it does not find the next state but the next quintuple.

> bool transition_function(std::set<Quintuple>::iterator& current_state)
> {
> u32 next_state = current_state->next_state;
> u32 current_input = Tape[Tape_Head];
> std::set<Quintuple>::iterator it;
>
> Tape[Tape_Head] = current_state->write_symbol;
> if (toupper(current_state->tape_head_move) == “L”;
> Tape_Head--; // Left
> else
> Tape_Head++; // Right
>
> it = NextState(next_state, current_input);
> if (it == States.end())
> return false;
> current_state = it;
> return true;
> }

With proper renaming this sketch makes a bit more sense. You take a
current rule (I am getting tired typing quintuple) and NextState really
finds the next rule, not state.

But the details are still all wrong. NextRule (as I'd call it) needs to
use next_state and the new current_input, not the input you find at the
top of the function. And setting current_state (which should be called
current_rule) is pointless since it's about to be thrown away.

> You didn't point out any actual errors, you simply critiqued my design
> aesthetics.

You take my remarks how you like. When you show this code to a
compiler, you'll see more problems.

--
Ben.
"le génie humain a des limites, quand la bêtise humaine n’en a pas"
Alexandre Dumas (fils)

Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<87fslmxfn3.fsf@bsb.me.uk>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31837&group=comp.theory#31837

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ben.use...@bsb.me.uk (Ben)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Sat, 07 May 2022 03:04:00 +0100
Organization: A noiseless patient Spider
Lines: 31
Message-ID: <87fslmxfn3.fsf@bsb.me.uk>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t529bf$fls$1@dont-email.me> <t52a2k$jk3$1@dont-email.me>
<t52ano$n78$1@dont-email.me> <t5388a$b6j$1@dont-email.me>
<t53f1o$57i$1@dont-email.me> <t53fn7$avk$1@dont-email.me>
<t53jc5$a9p$1@dont-email.me> <t53k9p$hta$1@dont-email.me>
<t53nsn$ftg$1@dont-email.me> <t53op3$m5h$1@dont-email.me>
<t53qla$6g7$1@dont-email.me> <t53rid$dva$1@dont-email.me>
<87a6bu1aw4.fsf@bsb.me.uk> <t54cpv$986$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Injection-Info: reader02.eternal-september.org; posting-host="75b342e6311f1aa208c9f5345542552f";
logging-data="20350"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+MIj6h/hPs30hWz6TX+/WQmyNyU44hWtY="
Cancel-Lock: sha1:r5ySrV8KY5w3CJX/xOq5ht6zrqs=
sha1:X0xXxc13lWtB25t2fT3CG3rJJXM=
X-BSB-Auth: 1.e4b93c8be3dfd87ce67e.20220507030400BST.87fslmxfn3.fsf@bsb.me.uk
 by: Ben - Sat, 7 May 2022 02:04 UTC

olcott <polcott2@gmail.com> writes:

> bool Quintuple_List::transition_function
> (std::set<Quintuple>::iterator& current_quintuple)
> {
> unsigned int next_state = current_quintuple->next_state;
> unsigned int current_input = Tape[Tape_Head];
> std::set<Quintuple>::iterator next_quintuple;
>
> Tape[Tape_Head] = current_quintuple->write_symbol;
> if (toupper(current_quintuple->tape_head_move) == 'L')
> Tape_Head--; // Left
> else
> Tape_Head++; // Right
>
> next_quintuple = NextState(next_state, current_input);
> if (next_quintuple == States.end())
> return false;
> current_quintuple = next_quintuple;
> return true;
> }

Much better names, but still not right. There's no point is setting
current_quintuple at the end, and the symbol used to look up the next
quintuple is the wrong one. And Sates is still misnamed: the iterators
are into a set of Quintuples, not states.

--
Ben.
"le génie humain a des limites, quand la bêtise humaine n’en a pas"
Alexandre Dumas (fils)

Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<t54l5g$tm5$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31838&group=comp.theory#31838

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: polco...@gmail.com (olcott)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Fri, 6 May 2022 21:22:37 -0500
Organization: A noiseless patient Spider
Lines: 263
Message-ID: <t54l5g$tm5$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4p08u$5ar$1@dont-email.me> <87wnf3ga8h.fsf@bsb.me.uk>
<t4pesp$d9n$1@dont-email.me> <87fslrfs3t.fsf@bsb.me.uk>
<t4sn5q$9nr$1@dont-email.me> <874k25qt5y.fsf@bsb.me.uk>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t524n3$ff6$1@dont-email.me> <87h76299kq.fsf@bsb.me.uk>
<t53il0$47f$1@dont-email.me> <87levexfxz.fsf@bsb.me.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 7 May 2022 02:22:40 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fff6fcee31b0b14fc946e2a4134b630e";
logging-data="30405"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX196xOUcrCEKWx4cDpaCd25k"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Cancel-Lock: sha1:KamUurVLn8NCaeUo3La0bex2CVs=
In-Reply-To: <87levexfxz.fsf@bsb.me.uk>
Content-Language: en-US
 by: olcott - Sat, 7 May 2022 02:22 UTC

On 5/6/2022 8:57 PM, Ben wrote:
> olcott <polcott2@gmail.com> writes:
>
>> On 5/6/2022 6:36 AM, Ben wrote:
>>> olcott <polcott2@gmail.com> writes:
>>>
>>>> On 5/5/2022 9:35 PM, Ben wrote:
>>>>> olcott <polcott2@gmail.com> writes:
>
>>>>>> struct Quintuple
>>>>>> {
>>>>>> u32 state;
>>>>>> u32 symbol;
>>>>>> u32 write_symbol;
>>>>>> u32 next_state;
>>>>>> u8 Tape_Head_Move;
>>>>>> }
>>>>>>
>>>>>> std::set<Quintuple> States;
>>>>> Why is a set of objects that are not states called "States"?
>>>>
>>>> They are states, what did you think that states are?
>
>>> Not quintuples. There are lots of ways to represent a TM's states, but
>>> states are not quintuples and quintuples are not states. This confusion
>>> will (as you can see below) make lots of the code read badly.
>>
>> What did you think that states are?
>
> Their only properties are that they are distinct and finite in number.

Ah so you are only seeing the mathematical abstraction that uses
directed graphs. That is not enough for an actual hardware machine to go
on.

> I have written an interpreter in which the states are instances of a
> class State, that holds all the information a TM might need when in that
> state. But there are a hundreds of other ways to represent the states.
>

In other words this:
struct Quintuple
{ int state;
int symbol;
int write_symbol;
int next_state;
char tape_head_move;
};

>> Do you think that they are raw integers?
>
> No, that's not what they are, though you could use integers to represent
> them. You could also use characters, strings and pointers to state
> objects.
>
> A key consideration, though, is that you might want to print information
> about the states to help the user of the interpreter so the states
> should be identifiable in some what that matches the way the user writes
> the TM. So I tend to favour labelling the sates with strings so that
> messages can report things like:
>

I am going to make it compatible with the TM interpreter files and I
will always output the full execution trace. I am aiming for a three
minute learning curve for everyone that knows TM's very well.

> In state 'open_(_seen': no transition for symbol '+'.
>
> If you are matching the input scheme for the implementation you posted a
> link to, then you should be able to report the state's name as the
> character the user will have entered.
>

full execution trace.

>>>> This is the first draft of my transition_function() its seems to exactly match this design on the first page of the docs.
>>>> http://www.lns.mit.edu/~dsw/turing/doc/tm_manual.txt
>>>>
>>>> I am writing this in Open Office Writer not any compiler.
>>>> I don't even know that it compiles.
>>>>
>>>> This is going to be a member function.
>>>> bool transition_function(std::set<Quintuple>::iterator& current_state)
>>>
>>> There's no point in putting the quintuples into a std::set. And the
>>> parameter current_state is badly worded as it refers to a particular
>>> rule (quintuple) and not to a state.
>>
>> It is simpler than a linear or binary search scan through the whole
>> list every-time we need to make a transition from the current_state to
>> the (next_state + current_Input).
>
> Of course, but a set is not, in my opinion, the natural container for
> quintuples. Do you even know how to make it work in your case? It
> would involve what I would consider a bit of trickery.
>
>> std::set<Quintuple>::iterator
>> NextState(int next_state, int current_input)
>> {
>> Quintuple QT(next_state, current_input);
>> return States.find(QT);
>> };
>>
>> The above returns an iterator to state indexed by (state + symbol).
>
> It returns an iterator to a quintuple, not a state, so the name is bad.
> And why does the function take things called 'next_state' and
> 'current_input'? The next quintuple is determined by the current state
> and the current input.

It is specified by the TM interpreter specs.

For example, the quintuple 'SCcsm' is executed by the machine:

If it is in state 'S' and is reading the symbol 'C' on the tape then
(a) make a transition to state 's'.

(b) overwrite the symbol 'C' on the tape with the symbol 'c'.
// Must do this before transition to state 's' or we lose 'c' from S.

(c) move the tape reading head one symbol to the left or right
according to whether 'm' is 'l' or 'r'.
http://www.lns.mit.edu/~dsw/turing/doc/tm_manual.txt

>> bool Transition_to_State_0(std::set<Quintuple>::iterator& current_state)
>> {
>> it = NextState(0, Tape[Tape_Head]);
>> if (it == States.end())
>> return false;
>> current_state = it;
>> return true;
>> }
>
> This looks all messed up but mainly because I don't think you are using
> the right names.
>
> And it's still a very loose sketch. Setting current_state is
> essentially pointless.
>

It performs ALL of the steps of transitioning to the start state.

>>>> {
>>>> u32 next_state = current_state->next_state;
>>> States, as you make clear here are just unsigned integers (in your
>>> implementation).
>>>
>>
>> OK then I will use Quintuple_List as my designer implemented.
>>
>>>> u32 current_input = Tape[Tape_Head];
>>> Why reference the tape here? If Tape[Tape_Head] != current_state.symbol
>>> then something has gone very wrong already. Note how confusing my
>>> writing the condition is since current_state.symbol should not make
>>> sense.
>>
>> Although after successful find current_state->symbol would have the
>> same value as Tape[Tape_Head] it is more clear that we are referring
>> to the current input with the latter.
>>
>>> (By all means reference the tape to put in a run-time assertion that
>>> tape.head() == current_rule.symbol or some such but there's no need to
>>> get the symbol from the tape as you will already have done this in order
>>> to pass the right quintuple to this function.)
>>
>> My way is clearer.
>
> I think the best way to judge that will be to compare code. At the
> moment you only have a very rough sketch.

The "rough sketch" is fully operational code.
I am adding parse capability.

>>>> std::set<Quintuple>::iterator it;
>>>>
>>>> Tape[Tape_Head] = current_state->write_symbol;
>>> current_state.write_symbol
>>> But if the parameter were correctly named it would make more sense:
>>> Tape[Tape_Head] = current_rule.write_symbol
>>>
>>>> if (toupper(current_state->tape_head_move) == “L”;
>>>> Tape_Head--; // Left
>>>> else
>>>> Tape_Head++; // Right
>>> Since the tape has a very limited number of operations, I'd abstract it
>>> out into a class with a move member function (or a left and a right
>>> function).
>>
>> I think that it is more clear the way it is.
>
> Let's see how it turns out in the end.
>
>> Since the current state must refer to every element of its related
>> Quintuple and current_state is actually current_state + current_input,
>> this a single integer does not uniquely identify a Quintuple it seems
>> to make the most sense to call each Quintuple a state.
>>
>> It may be more conventional to have a two layered system where an
>> integer indexes into a list of states each one having a list of inputs
>> that they respond to. The ads extraneous complexity.
>>
>> I could call current_state current_quintuple.
>
> I think a lot of the problems a down to your uses state when you mean
> quintuple. NextState seems all wrong, but maybe it makes more sense if
> it does not find the next state but the next quintuple.
>

NextState does this:
(a) make a transition to state 's'.

>> bool transition_function(std::set<Quintuple>::iterator& current_state)
>> {
>> u32 next_state = current_state->next_state;
>> u32 current_input = Tape[Tape_Head];
>> std::set<Quintuple>::iterator it;
>>
>> Tape[Tape_Head] = current_state->write_symbol;
>> if (toupper(current_state->tape_head_move) == “L”;
>> Tape_Head--; // Left
>> else
>> Tape_Head++; // Right
>>
>> it = NextState(next_state, current_input);
>> if (it == States.end())
>> return false;
>> current_state = it;
>> return true;
>> }
>
> With proper renaming this sketch makes a bit more sense. You take a
> current rule (I am getting tired typing quintuple) and NextState really
> finds the next rule, not state.
>


Click here to read the complete article
Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<t54lc1$uiv$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31839&group=comp.theory#31839

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: polco...@gmail.com (olcott)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Fri, 6 May 2022 21:26:06 -0500
Organization: A noiseless patient Spider
Lines: 37
Message-ID: <t54lc1$uiv$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t529bf$fls$1@dont-email.me> <t52a2k$jk3$1@dont-email.me>
<t52ano$n78$1@dont-email.me> <t5388a$b6j$1@dont-email.me>
<t53f1o$57i$1@dont-email.me> <t53fn7$avk$1@dont-email.me>
<t53jc5$a9p$1@dont-email.me> <t53k9p$hta$1@dont-email.me>
<t53nsn$ftg$1@dont-email.me> <t53op3$m5h$1@dont-email.me>
<t53qla$6g7$1@dont-email.me> <t53rid$dva$1@dont-email.me>
<87a6bu1aw4.fsf@bsb.me.uk> <t54cpv$986$1@dont-email.me>
<87fslmxfn3.fsf@bsb.me.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 7 May 2022 02:26:10 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fff6fcee31b0b14fc946e2a4134b630e";
logging-data="31327"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Gif+yyXw6+qsufm2X5egI"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Cancel-Lock: sha1:TjMygf4AM474psORAInpW6B+eYM=
In-Reply-To: <87fslmxfn3.fsf@bsb.me.uk>
Content-Language: en-US
 by: olcott - Sat, 7 May 2022 02:26 UTC

On 5/6/2022 9:04 PM, Ben wrote:
> olcott <polcott2@gmail.com> writes:
>
>> bool Quintuple_List::transition_function
>> (std::set<Quintuple>::iterator& current_quintuple)
>> {
>> unsigned int next_state = current_quintuple->next_state;
>> unsigned int current_input = Tape[Tape_Head];
>> std::set<Quintuple>::iterator next_quintuple;
>>
>> Tape[Tape_Head] = current_quintuple->write_symbol;
>> if (toupper(current_quintuple->tape_head_move) == 'L')
>> Tape_Head--; // Left
>> else
>> Tape_Head++; // Right
>>
>> next_quintuple = NextState(next_state, current_input);
>> if (next_quintuple == States.end())
>> return false;
>> current_quintuple = next_quintuple;
>> return true;
>> }
>
> Much better names, but still not right. There's no point is setting
> current_quintuple at the end, and the symbol used to look up the next
> quintuple is the wrong one. And Sates is still misnamed: the iterators
> are into a set of Quintuples, not states.
>

It is a reference parameter thus current_state is set to the state that
was transitioned to. true / false is returned on success / failure.

My execution engine simple loops until NextState() returns false.

--
Copyright 2022 Pete Olcott "Talent hits a target no one else can hit;
Genius hits a target no one else can see." Arthur Schopenhauer

Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<t54r1v$t4m$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31842&group=comp.theory#31842

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: polco...@gmail.com (olcott)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Fri, 6 May 2022 23:03:08 -0500
Organization: A noiseless patient Spider
Lines: 36
Message-ID: <t54r1v$t4m$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t529bf$fls$1@dont-email.me> <t52a2k$jk3$1@dont-email.me>
<t52ano$n78$1@dont-email.me> <t5388a$b6j$1@dont-email.me>
<t53f1o$57i$1@dont-email.me> <t53fn7$avk$1@dont-email.me>
<t53jc5$a9p$1@dont-email.me> <t53k9p$hta$1@dont-email.me>
<t53nsn$ftg$1@dont-email.me> <t53op3$m5h$1@dont-email.me>
<t53qla$6g7$1@dont-email.me> <t53rid$dva$1@dont-email.me>
<87a6bu1aw4.fsf@bsb.me.uk> <t54cpv$986$1@dont-email.me>
<87fslmxfn3.fsf@bsb.me.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 7 May 2022 04:03:11 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fff6fcee31b0b14fc946e2a4134b630e";
logging-data="29846"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18a1audQHtdhbncMjPIqC0Q"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Cancel-Lock: sha1:U4VQWUyzDFGlAICsYFIo4HJ3W3k=
In-Reply-To: <87fslmxfn3.fsf@bsb.me.uk>
Content-Language: en-US
 by: olcott - Sat, 7 May 2022 04:03 UTC

On 5/6/2022 9:04 PM, Ben wrote:
> olcott <polcott2@gmail.com> writes:
>
>> bool Quintuple_List::transition_function
>> (std::set<Quintuple>::iterator& current_quintuple)
>> {
>> unsigned int next_state = current_quintuple->next_state;
>> unsigned int current_input = Tape[Tape_Head];
>> std::set<Quintuple>::iterator next_quintuple;
>>
>> Tape[Tape_Head] = current_quintuple->write_symbol;
>> if (toupper(current_quintuple->tape_head_move) == 'L')
>> Tape_Head--; // Left
>> else
>> Tape_Head++; // Right
>>
>> next_quintuple = NextState(next_state, current_input);
>> if (next_quintuple == States.end())
>> return false;
>> current_quintuple = next_quintuple;
>> return true;
>> }
>
> Much better names, but still not right. There's no point is setting
> current_quintuple at the end, and the symbol used to look up the next
> quintuple is the wrong one. And Sates is still misnamed: the iterators
> are into a set of Quintuples, not states.
>

I got the whole thing almost done.
I figured out a simpler way to parse the tape data.
The std::set:find works perfectly.

--
Copyright 2022 Pete Olcott "Talent hits a target no one else can hit;
Genius hits a target no one else can see." Arthur Schopenhauer

Re: On recursion and infinite recursion (reprise)

<t55bd8$1ft$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31844&group=comp.theory#31844

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: mikko.le...@iki.fi (Mikko)
Newsgroups: comp.theory
Subject: Re: On recursion and infinite recursion (reprise)
Date: Sat, 7 May 2022 11:42:16 +0300
Organization: -
Lines: 45
Message-ID: <t55bd8$1ft$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc> <t4p08u$5ar$1@dont-email.me> <t4qt3c$vbe$1@dont-email.me> <t4req3$qee$1@dont-email.me> <t4ro44$1rh$1@dont-email.me> <t4rqv2$reg$1@dont-email.me> <t4t9ei$o7f$1@dont-email.me> <t4ueqe$tp2$5@dont-email.me> <t505s7$s6f$1@dont-email.me> <t512th$1un$1@dont-email.me> <t52pf6$oq7$1@dont-email.me> <t53s2i$i8e$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: reader02.eternal-september.org; posting-host="507ba7f7af316b124848116d366e277d";
logging-data="1533"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18viwMIA3Na6dfEYvp3Y3Un"
User-Agent: Unison/2.2
Cancel-Lock: sha1:RvGJwcJbIOO6Ys3r6r/0P6KHVVU=
 by: Mikko - Sat, 7 May 2022 08:42 UTC

On 2022-05-06 19:14:24 +0000, olcott said:

> On 5/6/2022 4:23 AM, Mikko wrote:
>> On 2022-05-05 17:52:48 +0000, olcott said:
>>
>>>>>>> On 5/3/2022 12:17 PM, Mikko wrote:
>>>>>>>> On 2022-05-03 14:38:57 +0000, olcott said:
>>>>>>>>
>>>>>>>>> On 5/3/2022 4:36 AM, Mikko wrote:
>>
>>>>>>>>>> One of the rules that define Prolog language is
>>>>>>>>>>
>>>>>>>>>>  arguments ::= argument | argument "," arguments
>>>>>>>>>>
>>>>>>>>>> which is infinitely recursive. Is it invalid? Is Prolog invalid because
>>>>>>>>>> of this and other infinitely recursive rules?
>>>>>>>>>>
>>>>>>>>>> Mikko
>>
>>>>>>>>> If would have to be invalid because it can never be resolved.
>>
>>>>>>>> What would be invalid? Prolog? Definition of Prolog?
>>>>>>>> Why "would be" and not "is"?
>>
>>> I never retracted anything.
>>
>> So you still claim that Prolog is invalid?
>>
>> Mikko
>>
>
> I said exactly the opposite.

As can be seen above:
You did not.
I asked: "Is Prolog invalid?"
You said "It would have to be invalid."
Here "It" apparently means "Prolog" but I wansn't quite sure
so I asked whether you meant something else. In your reply
you didn't say I was misinterpreting you so obviously I wasn't.
If you now say otherwise it can only mean that you have changed
your mind.

Mikko

Re: On recursion and infinite recursion (reprise)

<t5661j$6fe$2@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31865&group=comp.theory#31865

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: polco...@gmail.com (olcott)
Newsgroups: comp.theory
Subject: Re: On recursion and infinite recursion (reprise)
Date: Sat, 7 May 2022 11:16:49 -0500
Organization: A noiseless patient Spider
Lines: 54
Message-ID: <t5661j$6fe$2@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4p08u$5ar$1@dont-email.me> <t4qt3c$vbe$1@dont-email.me>
<t4req3$qee$1@dont-email.me> <t4ro44$1rh$1@dont-email.me>
<t4rqv2$reg$1@dont-email.me> <t4t9ei$o7f$1@dont-email.me>
<t4ueqe$tp2$5@dont-email.me> <t505s7$s6f$1@dont-email.me>
<t512th$1un$1@dont-email.me> <t52pf6$oq7$1@dont-email.me>
<t53s2i$i8e$1@dont-email.me> <t55bd8$1ft$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 7 May 2022 16:16:52 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fff6fcee31b0b14fc946e2a4134b630e";
logging-data="6638"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18BbuUDhtZf9KyYFmxkpe47"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Cancel-Lock: sha1:ayyquKOR594J3AKR5Zkq+E8v27o=
In-Reply-To: <t55bd8$1ft$1@dont-email.me>
Content-Language: en-US
 by: olcott - Sat, 7 May 2022 16:16 UTC

On 5/7/2022 3:42 AM, Mikko wrote:
> On 2022-05-06 19:14:24 +0000, olcott said:
>
>> On 5/6/2022 4:23 AM, Mikko wrote:
>>> On 2022-05-05 17:52:48 +0000, olcott said:
>>>
>>>>>>>> On 5/3/2022 12:17 PM, Mikko wrote:
>>>>>>>>> On 2022-05-03 14:38:57 +0000, olcott said:
>>>>>>>>>
>>>>>>>>>> On 5/3/2022 4:36 AM, Mikko wrote:
>>>
>>>>>>>>>>> One of the rules that define Prolog language is
>>>>>>>>>>>
>>>>>>>>>>>  arguments ::= argument | argument "," arguments
>>>>>>>>>>>
>>>>>>>>>>> which is infinitely recursive. Is it invalid? Is Prolog
>>>>>>>>>>> invalid because
>>>>>>>>>>> of this and other infinitely recursive rules?
>>>>>>>>>>>
>>>>>>>>>>> Mikko
>>>
>>>>>>>>>> If would have to be invalid because it can never be resolved.
>>>
>>>>>>>>> What would be invalid? Prolog? Definition of Prolog?
>>>>>>>>> Why "would be" and not "is"?
>>>
>>>> I never retracted anything.
>>>
>>> So you still claim that Prolog is invalid?
>>>
>>> Mikko
>>>
>>
>> I said exactly the opposite.
>
> As can be seen above:
> You did not.
> I asked: "Is Prolog invalid?"
> You said "It would have to be invalid."
> Here "It" apparently means "Prolog" but I wansn't quite sure
> so I asked whether you meant something else. In your reply
> you didn't say I was misinterpreting you so obviously I wasn't.
> If you now say otherwise it can only mean that you have changed
> your mind.
>
> Mikko
>

Prolog is valid, it is much valid, much more valid than symbolic or
classical logic.

--
Copyright 2022 Pete Olcott "Talent hits a target no one else can hit;
Genius hits a target no one else can see." Arthur Schopenhauer

Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<t56adl$bkb$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31871&group=comp.theory#31871

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: polco...@gmail.com (olcott)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Sat, 7 May 2022 12:31:32 -0500
Organization: A noiseless patient Spider
Lines: 209
Message-ID: <t56adl$bkb$1@dont-email.me>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4p08u$5ar$1@dont-email.me> <87wnf3ga8h.fsf@bsb.me.uk>
<t4pesp$d9n$1@dont-email.me> <87fslrfs3t.fsf@bsb.me.uk>
<t4sn5q$9nr$1@dont-email.me> <874k25qt5y.fsf@bsb.me.uk>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t524n3$ff6$1@dont-email.me> <87h76299kq.fsf@bsb.me.uk>
<t53il0$47f$1@dont-email.me> <87levexfxz.fsf@bsb.me.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 7 May 2022 17:31:33 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fff6fcee31b0b14fc946e2a4134b630e";
logging-data="11915"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/ft7jCWcrEuUQw5aDUHITB"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Cancel-Lock: sha1:RZP4UO7vn/ZaDodZKkJ3eyxMlk0=
In-Reply-To: <87levexfxz.fsf@bsb.me.uk>
Content-Language: en-US
 by: olcott - Sat, 7 May 2022 17:31 UTC

On 5/6/2022 8:57 PM, Ben wrote:
> olcott <polcott2@gmail.com> writes:
>
>> On 5/6/2022 6:36 AM, Ben wrote:
>>> olcott <polcott2@gmail.com> writes:
>>>
>>>> On 5/5/2022 9:35 PM, Ben wrote:
>>>>> olcott <polcott2@gmail.com> writes:
>
>>>>>> struct Quintuple
>>>>>> {
>>>>>> u32 state;
>>>>>> u32 symbol;
>>>>>> u32 write_symbol;
>>>>>> u32 next_state;
>>>>>> u8 Tape_Head_Move;
>>>>>> }
>>>>>>
>>>>>> std::set<Quintuple> States;
>>>>> Why is a set of objects that are not states called "States"?
>>>>
>>>> They are states, what did you think that states are?
>
>>> Not quintuples. There are lots of ways to represent a TM's states, but
>>> states are not quintuples and quintuples are not states. This confusion
>>> will (as you can see below) make lots of the code read badly.
>>
>> What did you think that states are?
>
> Their only properties are that they are distinct and finite in number.
> I have written an interpreter in which the states are instances of a
> class State, that holds all the information a TM might need when in that
> state. But there are a hundreds of other ways to represent the states.
>
>> Do you think that they are raw integers?
>
> No, that's not what they are, though you could use integers to represent
> them. You could also use characters, strings and pointers to state
> objects.
>
> A key consideration, though, is that you might want to print information
> about the states to help the user of the interpreter so the states
> should be identifiable in some what that matches the way the user writes
> the TM. So I tend to favour labelling the sates with strings so that
> messages can report things like:
>
> In state 'open_(_seen': no transition for symbol '+'.
>
> If you are matching the input scheme for the implementation you posted a
> link to, then you should be able to report the state's name as the
> character the user will have entered.
>
>>>> This is the first draft of my transition_function() its seems to exactly match this design on the first page of the docs.
>>>> http://www.lns.mit.edu/~dsw/turing/doc/tm_manual.txt
>>>>
>>>> I am writing this in Open Office Writer not any compiler.
>>>> I don't even know that it compiles.
>>>>
>>>> This is going to be a member function.
>>>> bool transition_function(std::set<Quintuple>::iterator& current_state)
>>>
>>> There's no point in putting the quintuples into a std::set. And the
>>> parameter current_state is badly worded as it refers to a particular
>>> rule (quintuple) and not to a state.
>>
>> It is simpler than a linear or binary search scan through the whole
>> list every-time we need to make a transition from the current_state to
>> the (next_state + current_Input).
>
> Of course, but a set is not, in my opinion, the natural container for
> quintuples. Do you even know how to make it work in your case? It
> would involve what I would consider a bit of trickery.
>
>> std::set<Quintuple>::iterator
>> NextState(int next_state, int current_input)
>> {
>> Quintuple QT(next_state, current_input);
>> return States.find(QT);
>> };
>>
>> The above returns an iterator to state indexed by (state + symbol).
>
> It returns an iterator to a quintuple, not a state, so the name is bad.
> And why does the function take things called 'next_state' and
> 'current_input'? The next quintuple is determined by the current state
> and the current input.
>
>> bool Transition_to_State_0(std::set<Quintuple>::iterator& current_state)
>> {
>> it = NextState(0, Tape[Tape_Head]);
>> if (it == States.end())
>> return false;
>> current_state = it;
>> return true;
>> }
>
> This looks all messed up but mainly because I don't think you are using
> the right names.
>
> And it's still a very loose sketch. Setting current_state is
> essentially pointless.
>
>>>> {
>>>> u32 next_state = current_state->next_state;
>>> States, as you make clear here are just unsigned integers (in your
>>> implementation).
>>>
>>
>> OK then I will use Quintuple_List as my designer implemented.
>>
>>>> u32 current_input = Tape[Tape_Head];
>>> Why reference the tape here? If Tape[Tape_Head] != current_state.symbol
>>> then something has gone very wrong already. Note how confusing my
>>> writing the condition is since current_state.symbol should not make
>>> sense.
>>
>> Although after successful find current_state->symbol would have the
>> same value as Tape[Tape_Head] it is more clear that we are referring
>> to the current input with the latter.
>>
>>> (By all means reference the tape to put in a run-time assertion that
>>> tape.head() == current_rule.symbol or some such but there's no need to
>>> get the symbol from the tape as you will already have done this in order
>>> to pass the right quintuple to this function.)
>>
>> My way is clearer.
>
> I think the best way to judge that will be to compare code. At the
> moment you only have a very rough sketch.
>
>>>> std::set<Quintuple>::iterator it;
>>>>
>>>> Tape[Tape_Head] = current_state->write_symbol;
>>> current_state.write_symbol
>>> But if the parameter were correctly named it would make more sense:
>>> Tape[Tape_Head] = current_rule.write_symbol
>>>
>>>> if (toupper(current_state->tape_head_move) == “L”;
>>>> Tape_Head--; // Left
>>>> else
>>>> Tape_Head++; // Right
>>> Since the tape has a very limited number of operations, I'd abstract it
>>> out into a class with a move member function (or a left and a right
>>> function).
>>
>> I think that it is more clear the way it is.
>
> Let's see how it turns out in the end.
>
>> Since the current state must refer to every element of its related
>> Quintuple and current_state is actually current_state + current_input,
>> this a single integer does not uniquely identify a Quintuple it seems
>> to make the most sense to call each Quintuple a state.
>>
>> It may be more conventional to have a two layered system where an
>> integer indexes into a list of states each one having a list of inputs
>> that they respond to. The ads extraneous complexity.
>>
>> I could call current_state current_quintuple.
>
> I think a lot of the problems a down to your uses state when you mean
> quintuple. NextState seems all wrong, but maybe it makes more sense if
> it does not find the next state but the next quintuple.
>
>> bool transition_function(std::set<Quintuple>::iterator& current_state)
>> {
>> u32 next_state = current_state->next_state;
>> u32 current_input = Tape[Tape_Head];
>> std::set<Quintuple>::iterator it;
>>
>> Tape[Tape_Head] = current_state->write_symbol;
>> if (toupper(current_state->tape_head_move) == “L”;
>> Tape_Head--; // Left
>> else
>> Tape_Head++; // Right
>>
>> it = NextState(next_state, current_input);
>> if (it == States.end())
>> return false;
>> current_state = it;
>> return true;
>> }
>
> With proper renaming this sketch makes a bit more sense. You take a
> current rule (I am getting tired typing quintuple) and NextState really
> finds the next rule, not state.
>

http://www.lns.mit.edu/~dsw/turing/turing.html
David S. Woodruff calls it next state:

This is his spec:
For example, the quintuple 'SCcsm' is executed by the machine:

If it is in state 'S' and is reading the symbol 'C' on the tape then
(a) make a transition to state 's'.
(b) overwrite the symbol 'C' on the tape with the symbol 'c'.
// Must do this before transition to state 's' or we lose 'c' from S.
(c) move the tape reading head one symbol to the left or right
according to whether 'm' is 'l' or 'r'.
http://www.lns.mit.edu/~dsw/turing/doc/tm_manual.txt


Click here to read the complete article
Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<87ee15vtfn.fsf@bsb.me.uk>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31896&group=comp.theory#31896

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ben.use...@bsb.me.uk (Ben)
Newsgroups: comp.theory
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Date: Sun, 08 May 2022 00:01:16 +0100
Organization: A noiseless patient Spider
Lines: 89
Message-ID: <87ee15vtfn.fsf@bsb.me.uk>
References: <20220502164732.00004e01@reddwarf.jmc>
<t4p08u$5ar$1@dont-email.me> <87wnf3ga8h.fsf@bsb.me.uk>
<t4pesp$d9n$1@dont-email.me> <87fslrfs3t.fsf@bsb.me.uk>
<t4sn5q$9nr$1@dont-email.me> <874k25qt5y.fsf@bsb.me.uk>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t524n3$ff6$1@dont-email.me> <87h76299kq.fsf@bsb.me.uk>
<t53il0$47f$1@dont-email.me> <87levexfxz.fsf@bsb.me.uk>
<t54l5g$tm5$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Injection-Info: reader02.eternal-september.org; posting-host="2cb38d29cfd67b01879bf2bacac3ef8f";
logging-data="31475"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18XBNuk2ZcuBs5qzyqmzoLtZkQ7oh9wUZM="
Cancel-Lock: sha1:eWRLbvS2vo6c8JcvZzlAoppYvpI=
sha1:jTiqedkMrmhzUqNi9H6hBX3km5c=
X-BSB-Auth: 1.7a275686b98bb0897e87.20220508000116BST.87ee15vtfn.fsf@bsb.me.uk
 by: Ben - Sat, 7 May 2022 23:01 UTC

olcott <polcott2@gmail.com> writes:

> On 5/6/2022 8:57 PM, Ben wrote:
>> olcott <polcott2@gmail.com> writes:
>>
>>> On 5/6/2022 6:36 AM, Ben wrote:
>>>> olcott <polcott2@gmail.com> writes:
>>>>
>>>>> On 5/5/2022 9:35 PM, Ben wrote:
>>>>>> olcott <polcott2@gmail.com> writes:
>>
>>>>>>> struct Quintuple
>>>>>>> {
>>>>>>> u32 state;
>>>>>>> u32 symbol;
>>>>>>> u32 write_symbol;
>>>>>>> u32 next_state;
>>>>>>> u8 Tape_Head_Move;
>>>>>>> }
>>>>>>>
>>>>>>> std::set<Quintuple> States;
>>>>>> Why is a set of objects that are not states called "States"?
>>>>>
>>>>> They are states, what did you think that states are?
>>
>>>> Not quintuples. There are lots of ways to represent a TM's states, but
>>>> states are not quintuples and quintuples are not states. This confusion
>>>> will (as you can see below) make lots of the code read badly.
>>>
>>> What did you think that states are?
>> Their only properties are that they are distinct and finite in number.
>
> Ah so you are only seeing the mathematical abstraction that uses
> directed graphs. That is not enough for an actual hardware machine to
> go on.

Nonsense. It's perfectly practical and entirely natiral to implement
this using a directed graph.

>> I have written an interpreter in which the states are instances of a
>> class State, that holds all the information a TM might need when in that
>> state. But there are a hundreds of other ways to represent the states.
>
> In other words this:
> struct Quintuple
> {
> int state;
> int symbol;
> int write_symbol;
> int next_state;
> char tape_head_move;
> };

This is not a state. States are not quintuples and vice-versa. Please
don't pick this hill fight on.

>>> bool Transition_to_State_0(std::set<Quintuple>::iterator& current_state)
>>> {
>>> it = NextState(0, Tape[Tape_Head]);
>>> if (it == States.end())
>>> return false;
>>> current_state = it;
>>> return true;
>>> }
>> This looks all messed up but mainly because I don't think you are using
>> the right names.
>> And it's still a very loose sketch. Setting current_state is
>> essentially pointless.
>
> It performs ALL of the steps of transitioning to the start state.

Nope. I really don't like arguing about programming because the hard
test is will it work. This won't, and you'll find out when you run your
first tests.

>>> My way is clearer.
>> I think the best way to judge that will be to compare code. At the
>> moment you only have a very rough sketch.
>
> The "rough sketch" is fully operational code.

That's very revealing. You've claimed to have other "fully operational
code" and since these sketches are clearly not operational, you must be
using the phrase in some rather loose way.

--
Ben.
"le génie humain a des limites, quand la bêtise humaine n’en a pas"
Alexandre Dumas (fils)

Re: H(P,P) == false is correct [ Simple TM Interpreter ]

<57Odnbwd0o8xmer_nZ2dnUU7_83NnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=31901&group=comp.theory#31901

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!border1.nntp.dca1.giganews.com!nntp.giganews.com!buffer1.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Sat, 07 May 2022 18:45:48 -0500
Date: Sat, 7 May 2022 18:45:47 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Subject: Re: H(P,P) == false is correct [ Simple TM Interpreter ]
Content-Language: en-US
Newsgroups: comp.theory
References: <20220502164732.00004e01@reddwarf.jmc>
<t4p08u$5ar$1@dont-email.me> <87wnf3ga8h.fsf@bsb.me.uk>
<t4pesp$d9n$1@dont-email.me> <87fslrfs3t.fsf@bsb.me.uk>
<t4sn5q$9nr$1@dont-email.me> <874k25qt5y.fsf@bsb.me.uk>
<t4uk3c$knu$1@dont-email.me> <87v8ukpzfi.fsf@bsb.me.uk>
<t4v8n3$5s1$1@dont-email.me> <87h764pvb7.fsf@bsb.me.uk>
<t4vea8$u19$1@dont-email.me> <87tua4nm4w.fsf@bsb.me.uk>
<t51i55$t3s$1@dont-email.me> <87v8ujl75p.fsf@bsb.me.uk>
<t524n3$ff6$1@dont-email.me> <87h76299kq.fsf@bsb.me.uk>
<t53il0$47f$1@dont-email.me> <87levexfxz.fsf@bsb.me.uk>
<t54l5g$tm5$1@dont-email.me> <87ee15vtfn.fsf@bsb.me.uk>
From: NoO...@NoWhere.com (olcott)
In-Reply-To: <87ee15vtfn.fsf@bsb.me.uk>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Message-ID: <57Odnbwd0o8xmer_nZ2dnUU7_83NnZ2d@giganews.com>
Lines: 108
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-VePQdZ/2y1H1nDft76t+pCJtacyWYwxutIC+Xs88HbtUGVNg69SbmTuTFk5rk7H9jZQjsw1Xs/NBflf!PicNq958u9/x0g99/pJcWgOQuiF29LaK+cBJ2nMB+kR550d2ggKNlKZDNnu6MfrrgxeANhbPdNs=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 5364
 by: olcott - Sat, 7 May 2022 23:45 UTC

On 5/7/2022 6:01 PM, Ben wrote:
> olcott <polcott2@gmail.com> writes:
>
>> On 5/6/2022 8:57 PM, Ben wrote:
>>> olcott <polcott2@gmail.com> writes:
>>>
>>>> On 5/6/2022 6:36 AM, Ben wrote:
>>>>> olcott <polcott2@gmail.com> writes:
>>>>>
>>>>>> On 5/5/2022 9:35 PM, Ben wrote:
>>>>>>> olcott <polcott2@gmail.com> writes:
>>>
>>>>>>>> struct Quintuple
>>>>>>>> {
>>>>>>>> u32 state;
>>>>>>>> u32 symbol;
>>>>>>>> u32 write_symbol;
>>>>>>>> u32 next_state;
>>>>>>>> u8 Tape_Head_Move;
>>>>>>>> }
>>>>>>>>
>>>>>>>> std::set<Quintuple> States;
>>>>>>> Why is a set of objects that are not states called "States"?
>>>>>>
>>>>>> They are states, what did you think that states are?
>>>
>>>>> Not quintuples. There are lots of ways to represent a TM's states, but
>>>>> states are not quintuples and quintuples are not states. This confusion
>>>>> will (as you can see below) make lots of the code read badly.
>>>>
>>>> What did you think that states are?
>>> Their only properties are that they are distinct and finite in number.
>>
>> Ah so you are only seeing the mathematical abstraction that uses
>> directed graphs. That is not enough for an actual hardware machine to
>> go on.
>
> Nonsense. It's perfectly practical and entirely natiral to implement
> this using a directed graph.
>

A directed graph with labeled edges would seem to require all this (node
and edge) info kept in a single struct when physically implemented as
software. One node could have a list of edge data, yet that is cumbersome.

>>> I have written an interpreter in which the states are instances of a
>>> class State, that holds all the information a TM might need when in that
>>> state. But there are a hundreds of other ways to represent the states.
>>
>> In other words this:
>> struct Quintuple
>> {
>> int state;
>> int symbol;
>> int write_symbol;
>> int next_state;
>> char tape_head_move;
>> };
>
> This is not a state. States are not quintuples and vice-versa. Please
> don't pick this hill fight on.

I want to grok this.

>
>>>> bool Transition_to_State_0(std::set<Quintuple>::iterator& current_state)
>>>> {
>>>> it = NextState(0, Tape[Tape_Head]);
>>>> if (it == States.end())
>>>> return false;
>>>> current_state = it;
>>>> return true;
>>>> }
>>> This looks all messed up but mainly because I don't think you are using
>>> the right names.
>>> And it's still a very loose sketch. Setting current_state is
>>> essentially pointless.
>>
>> It performs ALL of the steps of transitioning to the start state.
>
> Nope. I really don't like arguing about programming because the hard
> test is will it work. This won't, and you'll find out when you run your
> first tests.
>
>>>> My way is clearer.
>>> I think the best way to judge that will be to compare code. At the
>>> moment you only have a very rough sketch.
>>
>> The "rough sketch" is fully operational code.
>

More accurately the The "rough sketch" is my best estimate of is fully
operational code.

> That's very revealing. You've claimed to have other "fully operational
> code" and since these sketches are clearly not operational, you must be
> using the phrase in some rather loose way.
>

I was trying to make it clear that it is not a more sketch with many
missing pieces. All the pieces are there.

--
Copyright 2022 Pete Olcott

"Talent hits a target no one else can hit;
Genius hits a target no one else can see."
Arthur Schopenhauer

Pages:123456789
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor