Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

"It's what you learn after you know it all that counts." -- John Wooden


computers / comp.theory / Re: Why do theory of computation problems require pure functions?

Re: Why do theory of computation problems require pure functions?

<goidncl2gvYjmtv8nZ2dnUU7-QnNnZ2d@giganews.com>

  copy mid

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

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!aioe.org!feeder1.feed.usenet.farm!feed.usenet.farm!tr2.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!buffer1.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Sat, 18 Sep 2021 10:37:34 -0500
Subject: Re: Why do theory of computation problems require pure functions?
Newsgroups: comp.theory
References: <a7WdnftR4JAUzNj8nZ2dnUU7-d_NnZ2d@giganews.com> <si3r5q$8ln$1@dont-email.me> <KZSdncvVqtDkctj8nZ2dnUU7-f_NnZ2d@giganews.com> <ZVm1J.3937$7U3.2717@fx24.iad> <j8adnV6gzfcKYdj8nZ2dnUU7-V3NnZ2d@giganews.com> <lmn1J.84222$jl2.75920@fx34.iad> <Nc6dnYaBOsvxntv8nZ2dnUU7-QednZ2d@giganews.com> <Cxn1J.130331$o45.17922@fx46.iad>
From: NoO...@NoWhere.com (olcott)
Date: Sat, 18 Sep 2021 10:37:32 -0500
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <Cxn1J.130331$o45.17922@fx46.iad>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Message-ID: <goidncl2gvYjmtv8nZ2dnUU7-QnNnZ2d@giganews.com>
Lines: 183
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-VIZixIiL8ls9neGbmbskS8WpltoxRoGAVih4vyVf8J9/srE1AInx0aQSECVLTxCabqsMJMTeqTW2Lo0!IkUoHllSPyuyJlR90FWmsZkiZlAxO2U/rDw2m5J5CWtm9KsXIrsoN174/kt+B4kSPIQEOOcbbVcq!JMw=
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: 9799
 by: olcott - Sat, 18 Sep 2021 15:37 UTC

On 9/18/2021 10:25 AM, Richard Damon wrote:
> On 9/18/21 11:19 AM, olcott wrote:
>> On 9/18/2021 10:13 AM, Richard Damon wrote:
>>> On 9/18/21 10:49 AM, olcott wrote:
>>>> On 9/18/2021 9:43 AM, Richard Damon wrote:
>>>>>
>>>>> On 9/18/21 9:54 AM, olcott wrote:
>>>>>> On 9/17/2021 11:50 PM, André G. Isaak wrote:
>>>>>>> On 2021-09-17 20:40, olcott wrote:
>>>>>>>> Why do theory of computation problems require pure functions?
>>>>>>>
>>>>>>> Because the theory of computation isn't about C or x86. It isn't
>>>>>>> about
>>>>>>> computer programs at all, nor about modern computers. Just because
>>>>>>> 'computation' and 'computer' share the same root doesn't mean they
>>>>>>> deal with the same set of phenomena. Remember that the theory of
>>>>>>> computation developed before there even were digital computers or
>>>>>>> programming languages.
>>>>>>>
>>>>>>> Computational theory is concerned with describing *mathematical*
>>>>>>> functions, and all mathematical functions are pure functions. A
>>>>>>> computation is a method for determining the value of the mathematical
>>>>>>> function f(x) for a given x. A computable function is one for
>>>>>>> which it
>>>>>>> is possible to construct a TM which, given an input string
>>>>>>> representing x, will determine the value of f(x).
>>>>>>>
>>>>>>> You can write computer programs which perform computations, but the
>>>>>>> majority of computer programs don't.
>>>>>>>
>>>>>>> If you really want to learn about the theory of computation, I'd
>>>>>>> suggest that you forget about C or x86 assembly or any sort of
>>>>>>> computer language altogether and focus on Turing Machines.
>>>>>>>
>>>>>>> And don't try to mentally translate anything you read about Turing
>>>>>>> Machines into computer languages. Don't think about loop counters, or
>>>>>>> calls, or machine addresses, because all of these things pertain to
>>>>>>> computers and computer programming rather than computations and they
>>>>>>> will get in the way of you actually understanding either turing
>>>>>>> machines or the theory of computation more generally.
>>>>>>>
>>>>>>> André
>>>>>>>
>>>>>>
>>>>>> I only need to know this for one reason.
>>>>>>
>>>>>> When my halt decider is examining the behavior of its input and the
>>>>>> input calls this halt decider in infinite recursion it cannot keep
>>>>>> track
>>>>>> of the behavior of this input without having a single pseudo static
>>>>>> variable that is directly embedded in its machine code.
>>>>>>
>>>>>> This pseudo static variable stores the ongoing execution trace.
>>>>>> When the
>>>>>> variable is an ordinary local variable it loses all of its data
>>>>>> between
>>>>>> each recursive simulation.
>>>>>>
>>>>>> It still seems to be a pure function of its input in that
>>>>>> (1) The function return values are identical for identical arguments
>>>>>>
>>>>>
>>>>> I think the key issue is that if you want to talk about the plain
>>>>> behavior of C / x86 code, then you need to talk about the ACTUAL
>>>>> behavior of that code, which means that the call to H within the
>>>>> simulated machine needs to be seen as a call to H, and NOT some logical
>>>>> transformation.
>>>>>
>>>>> If you want to do the transformation, your need to actually PROVE that
>>>>> this transform is legitimate under the conditions you want to make it,
>>>>> and that needs a very FORMAL argument based on accepted truths and
>>>>> principles. Your 'argument' based on H not affecting P until after it
>>>>> makes its decision so it can ignore its effect, is one of those
>>>>> arguments that just seems 'obvious' but you haven't actually proved it.
>>>>> You don't seem to uhderstand that nature of how to prove something like
>>>>> this.
>>>>>
>>>>> 'Obvious' things can be wrong, like it seems obvious that the order you
>>>>> add up a series shouldn't affect the result, even if the number of
>>>>> terms
>>>>> in infinite, but there are simple proofs to show that for SOME infinite
>>>>> sums, the order you take the terms can make a difference, dispite it
>>>>> seeming contrary to the nature of addition (infinities break a lot of
>>>>> common sense).
>>>>>
>>>>>
>>>>> A key point about your 'static' variable problem.
>>>>
>>>> There is only a single question here, not the myriad of questions that
>>>> you refer to.
>>>>
>>>> Does my use of a single static variable that holds the ongoing execution
>>>> trace by itself necessarily completely disqualify my system from
>>>> applying to the halting problem or not?
>>>>
>>>> a) Yes
>>>> b) No
>>>
>>> Error of the Complex Question, just like the question of "Have you
>>> stopped lying about your Halt Decider?".
>>>
>>> It isn't the existence of a static variable itself that might disqualify
>>> your system for applying to the halting problem,
>>
>> André disagrees so one of you must be wrong.
>
> Then take his answer and go away as you admit defeat.
>

That is not how categorically exhaustive reasoning works. Categorically
exhaustive reasoning eliminates the possibility of the error of
omission. It results in limited subject domain omniscience.

It only stops when
(1) A solution is found.
(2) No solution exist within omniscience.

>
>>
>>>  but does the existence
>>> of that variable, and the way that your program uses it mean that H is
>>> not an actual Computation. The existence of the variable opens the door
>>> to it being disqualified, but the actual disqualification needs more
>>> information.
>>>
>>> If EVERY call to H(P,I) for a given P and I returns the exact same
>>> answer every time, then H is still a computation.
>>>
>>> The key point here is that When H decides on the call H(P,P) and in that
>>> simulation of P(P) there is a call to H(P,P) then the 'correct' answer
>>> for H needs to take into account that this simulated WILL do exactly the
>>> same thing as the H that is doing the simulation, so if the simulating H
>>> is going to answer Non-Halting, the behavior of the simulated machine
>>> will be based on that simulated H also returning that same answer. Yes,
>>> H is not going to have simulated to that point of the simulated machines
>>> execution, so the simulating H will not be able to see that result, but
>>> that IS the behavior of the machine that it is simulating, and thus
>>> affect what is the 'Right' answer for H to give.
>>>
>>>>
>>>>> If H really WAS a real
>>>>> simulator, then there is no issue with the static variable as only one
>>>>> copy of H is actually execution, all the other copies are just
>>>>> simulation, so the one variable holding the execution trace hold the
>>>>> execution trace of the simulation that it is doing, and there is no
>>>>> issue.
>>>>>
>>>>> The only way that the issue you describe becomes a real issue is if H
>>>>> doesn't ACTUALLY simulate/debug step through copies of itself, but
>>>>> applies some sort of 'transform' to the execution, and you need to have
>>>>> some very good proof that this transform is actually valid, and that
>>>>> the
>>>>> resulting H, which passes data to embedded copies of itself, and thus
>>>>> knows of stuff of its environment beyond what it is supposed to know is
>>>>> actually the equivalent of the decider that doesn't do any of that
>>>>> 'illegal' operations. My guess is that your H is actually NOT the
>>>>> equivalent of such an actual computation and does actually behave
>>>>> differently depending on execution environment, and thus fails to meet
>>>>> the basic requirements.
>>>>>
>>>>> Remember, if the H inside H^ doesn't behave exactly identical to the H
>>>>> that is deciding on that H^, then you aren't working on the right
>>>>> definitions of the system.
>>>>>
>>>>> This seems to be one of your fundamental tripping point, and is one of
>>>>> the issues with doing proofs like this in non-Turing Machine
>>>>> environment
>>>>> (like C/x86 or even RASP) that 'code fragments' can be non-computations
>>>>> and thus not the equivalent of a Turing Machine.
>>>>>
>>>>
>>>>
>>>
>>
>>
>

--
Copyright 2021 Pete Olcott

"Great spirits have always encountered violent opposition from mediocre
minds." Einstein

SubjectRepliesAuthor
o Why do theory of computation problems require pure functions?

By: olcott on Sat, 18 Sep 2021

242olcott
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor