Deutsch English Français Italiano |
<v6ts2v$3irhh$3@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "Fred. Zwarts" <F.Zwarts@HetNet.nl> Newsgroups: comp.theory Subject: Re: DDD correctly emulated by HHH is correctly rejected as non-halting. Date: Sat, 13 Jul 2024 14:31:27 +0200 Organization: A noiseless patient Spider Lines: 97 Message-ID: <v6ts2v$3irhh$3@dont-email.me> References: <v6m7si$1uq86$2@dont-email.me> <v6ntmh$2bd9a$1@dont-email.me> <v6oomc$2fuva$3@dont-email.me> <v6qpcu$2uo3m$1@dont-email.me> <v6rb1f$30qtt$9@dont-email.me> <v6tbss$3ggjj$1@dont-email.me> <v6trco$3imib$8@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Sat, 13 Jul 2024 14:31:28 +0200 (CEST) Injection-Info: dont-email.me; posting-host="48d55f70239961768cb309f2b9ff54c8"; logging-data="3763761"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/ZlOSWy8TFpWKR693sZItB" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:cltNgamPRn4rngo/OGbdNrB/9Js= Content-Language: en-GB In-Reply-To: <v6trco$3imib$8@dont-email.me> Bytes: 4791 Op 13.jul.2024 om 14:19 schreef olcott: > On 7/13/2024 2:55 AM, Mikko wrote: >> On 2024-07-12 13:28:15 +0000, olcott said: >> >>> On 7/12/2024 3:27 AM, Mikko wrote: >>>> On 2024-07-11 14:02:52 +0000, olcott said: >>>> >>>>> On 7/11/2024 1:22 AM, Mikko wrote: >>>>>> On 2024-07-10 15:03:46 +0000, olcott said: >>>>>> >>>>>>> typedef void (*ptr)(); >>>>>>> int HHH(ptr P); >>>>>>> >>>>>>> void DDD() >>>>>>> { >>>>>>> HHH(DDD); >>>>>>> } >>>>>>> >>>>>>> int main() >>>>>>> { >>>>>>> HHH(DDD); >>>>>>> } >>>>>>> >>>>>>> We stipulate that the only measure of a correct emulation >>>>>>> is the semantics of the x86 programming language. By this >>>>>>> measure when 1 to ∞ steps of DDD are correctly emulated by >>>>>>> each pure function x86 emulator HHH (of the infinite set >>>>>>> of every HHH that can possibly exist) then DDD cannot >>>>>>> possibly reach past its own machine address of 0000216b >>>>>>> and halt. >>>>>> >>>>>> For every instruction that the C compiler generates the x86 language >>>>>> specifies an unambiguous meaning, leaving no room for "can". >>>>>> >>>>> >>>>> then DDD cannot possibly reach past its own machine >>>>> address of 0000216b and halt. >>>> >>>> As I already said, there is not room for "can". That means there is >>>> no room for "cannot", either. The x86 semantics of the unshown code >>>> determines unambigously what happens. >>>> >>> >>> Of an infinite set behavior X exists for at least one element >>> or behavior X does not exist for at least one element. >>> Of the infinite set of HHH/DDD pairs zero DDD elements halt. >> >> That is so far from the Common Language that I can't parse. >> > > *This proves that every rebuttal is wrong somewhere* > No DDD instance of each HHH/DDD pair of the infinite set of > every HHH/DDD pair ever reaches past its own machine address of > 0000216b That is correct and it proves that the simulation is incorrect, because it aborts too soon. Look at the full trace you referenced to. It also shows that HHH is unable to reach the end of its own simulation. DDD has nothing to do with it. It is easy to eliminate DDD: int main() { return HHH(main); } This has the same problem. This proves that the problem is not in DDD, but in HHH, which halts when it aborts the simulation, but it decides that the simulation of itself does not halt. HHH is unable to decide about finite recursions. void Finite_Recursion (int N) { if (N > 0) Finite_Recursion (N - 1); } It decides after N recursions that there is an infinite recursion, which is incorrect. Your HHH is programmed to abort the simulation after N cycles of recursive simulations. Therefore, it is incorrect to abort the simulation of HHH after the simulated HHH has performed N-1 cycles, because that changes the behaviour of HHH. Since the simulated HHH always runs one cycle behind the simulating HHH, it is clear that HHH can never simulate enough cycles for a correct simulation, as is required by the x86 language. Therefore, the simulation is incorrect according to the criteria you stipulated. The conclusion is simple: HHH cannot possibly simulate itself correctly. No matter how much you want it to be correct, or how many times you repeat that it is correct, it does not change the fact that such a simulation is incorrect, because it is unable to reach the end. Sipser would agree that this incorrect simulation cannot be used to detect a non-halting behaviour.