Deutsch   English   Français   Italiano  
<vucs72$167ao$2@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Mikko <mikko.levanto@iki.fi>
Newsgroups: comp.theory
Subject: =?utf-8?Q?Re:_Refutation_of_Strachey=E2=80=99s_1965_Proof_Based_on_Self-Referential_Conflation_as_a_Category_(Type)_Error?=
Date: Thu, 24 Apr 2025 11:19:46 +0300
Organization: -
Lines: 204
Message-ID: <vucs72$167ao$2@dont-email.me>
References: <3%oNP.2703666$nb1.805417@fx01.ams4> <130c384bc4881eb654343d0ccf3ced6905a90fbb@i2pn2.org> <3QpNP.1081604$B61.671277@fx02.ams4> <vu7kke$7o3q$1@dont-email.me> <BTLNP.1469340$dBr6.1183611@fx04.ams4>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 24 Apr 2025 10:19:47 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="8b323bd0b35eb59ebd32e9261de22c1e";
	logging-data="1252696"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/lLbhSdngZx9n+tFUlLPQv"
User-Agent: Unison/2.2
Cancel-Lock: sha1:+zLCS/e8XT12n3bgDym48aR1n4w=
Bytes: 9900

On 2025-04-22 12:24:01 +0000, Mr Flibble said:

> On Tue, 22 Apr 2025 11:39:42 +0300, Mikko wrote:
> 
>> On 2025-04-21 11:18:23 +0000, Mr Flibble said:
>> 
>>> On Mon, 21 Apr 2025 06:54:33 -0400, Richard Damon wrote:
>>> 
>>>> On 4/21/25 6:21 AM, Mr Flibble wrote:
>>>>> Refutation of Strachey’s 1965 Proof Based on Self-Referential
>>>>> Conflation as a Category (Type) Error
>>>>> 
>>>>> This document refutes Christopher Strachey’s 1965 argument in “An
>>>>> Impossible Program” by leveraging the assumption that
>>>>> self-referential conflation of a halt decider and its input
>>>>> constitutes a category (type) error. The refutation demonstrates that
>>>>> Strachey’s proof, which relies on a self-referential program
>>>>> construction, is invalid in a typed system where such conflation is
>>>>> prohibited.
>>>>> 
>>>>> ---
>>>>> 
>>>>> 1. Strachey’s 1965 Argument In “An Impossible Program” (The Computer
>>>>> Journal, Vol. 7, No. 4, p. 313,
>>>>> 1965), Strachey presents a proof of the undecidability of the halting
>>>>> problem. The argument assumes a halt decider T, which determines
>>>>> whether any program P halts on a given input. Strachey constructs a
>>>>> program Strachey_P as follows:
>>>>> 
>>>>> void Strachey_P() {
>>>>> L: if (T(Strachey_P)) goto L; return;
>>>>> }
>>>>> 
>>>>> 
>>>>> Here, T(Strachey_P) checks whether Strachey_P halts. The proof
>>>>> analyzes Strachey_P’s behavior:
>>>>> - If T(Strachey_P) returns true (Strachey_P halts), Strachey_P loops
>>>>> infinitely (does not halt).
>>>>> - If T(Strachey_P) returns false (Strachey_P does not halt),
>>>>> Strachey_P halts.
>>>>> This contradiction implies that T cannot exist, proving the halting
>>>>> problem undecidable.
>>>>> 
>>>>> ---
>>>>> 
>>>>> 2. Assumption: Self-Referential Conflation as a Type Error The
>>>>> refutation assumes that the self-referential call T(Strachey_P)
>>>>> within Strachey_P constitutes a category (type) error. A type error
>>>>> occurs when an operation is applied to arguments of an inappropriate
>>>>> type.
>>>>> Here, conflating the halt decider T with its input Strachey_P (by
>>>>> allowing Strachey_P to embed T(Strachey_P)) is argued to violate type
>>>>> constraints, rendering Strachey_P ill-formed.
>>>> 
>>>> And where do you get that assumption from? It is valid logic to
>>>> temporarily assume a statement true to prove that it leads to a
>>>> contradiction and thus can't be true.
>>>> 
>>>> It is NOT valid to just assume it to be true and then use its Truth to
>>>> prove something else is true.
>>>> 
>>>> You are just showing your ignorance of the topic.
>>>> 
>>>> 
>>>>> ---
>>>>> 
>>>>> 3. Refutation The refutation proceeds by demonstrating that
>>>>> Strachey_P is invalid in a typed system due to a type error,
>>>>> undermining the contradiction in Strachey’s proof.
>>>> 
>>>> But only by an unproven assumption.
>>>> 
>>>> 
>>>>> 3.1. Type System In a typed context, the halt decider T has a type
>>>>> signature:
>>>>> T: (Program, Input) → Boolean where Program is the type of valid
>>>>> program descriptions, and Input is the type of program inputs.
>>>>> Strachey_P, as a program, must be of type Program to be a valid
>>>>> argument to T. The call T(Strachey_P) requires Strachey_P to be a
>>>>> well-defined program description.
>>>> 
>>>> Which it is, at least if T is.
>>>> 
>>>> 
>>>>> 3.2. Self-Reference as a Type Error Strachey_P’s definition includes
>>>>> T(Strachey_P), meaning Strachey_P depends on its own description as
>>>>> an argument to T. This self-reference creates a circular dependency:
>>>>> - Strachey_P’s type cannot be resolved without evaluating
>>>>> T(Strachey_P).
>>>> 
>>>> Your "type" was that it was a program. That is not a dynamically
>>>> determined category, but a statically determined one.
>>>> 
>>>> Note, that if T was a program, its actual response is solely
>>>> determined by the input it is given.
>>>> 
>>>>> - T(Strachey_P) requires Strachey_P to be a fully defined Program.
>>>>> In a strict type system, such circular definitions are rejected as
>>>>> type errors, as they violate referential transparency. Strachey_P is
>>>>> thus not a well-formed program, as its type is undefined due to the
>>>>> self-referential conflation.
>>>> 
>>>> And it is, as program definition is based on fully defining the code
>>>> of said program, and the code of Strachey_P is fully defined and built
>>>> by legal processes.
>>>> 
>>>> Your "Type System" is not "strictly" defined, but improperly defined.
>>>> 
>>>> 
>>>>> 3.3. Impact on Strachey’s Proof Strachey’s proof assumes Strachey_P
>>>>> is a valid program. If T(Strachey_P) is a type error, Strachey_P is
>>>>> ill-formed and cannot be used to derive a contradiction. The proof’s
>>>>> logic collapses, as the contradictory behavior (halting or not
>>>>> halting) depends on an invalid program. Therefore, the argument fails
>>>>> to demonstrate that T cannot exist.
>>>> 
>>>> But it IS a valid program, as the definition of a valid program is
>>>> being built on valid construction processes.
>>>> 
>>>> What "Error" was made in the construction of Strachey_P?
>>>> 
>>>> The only way for Strachey_P to be an invalid program is for T to not
>>>> be a valid one.
>>>> 
>>>> 
>>>>> 3.4. Implications By excluding self-referential programs like
>>>>> Strachey_P due to type errors, the proof’s universality is
>>>>> challenged. A halt decider T might exist for non-self-referential
>>>>> programs in a typed system, suggesting that Strachey’s proof does not
>>>>> establish undecidability in such contexts.
>>>> 
>>>> But you didn't prove your point, as there was no type error of the
>>>> types defined by the problem.
>>>> 
>>>> 
>>>>> 3.5. Critical Examination - Counterargument: Turing machines, as used
>>>>> by Strachey, are untyped, allowing self-referential programs without
>>>>> type errors.
>>>> 
>>>> Actually, Turing Machines don't support "references" at all, so there
>>>> can't BE a self-refeential program. We just are allowed to give
>>>> programs descriptions of themselves as part of "for any input".
>>>> 
>>>> And since Halt Deciders are DEFINED to answer about any program
>>>> described to them, you can't limit that domain with a type that
>>>> doesn't cover ALL programs.
>>>> 
>>>>> - Response: Imposing a type discipline on the computational model
>>>>> (e.g., typed lambda calculus) restricts self-reference. In such
>>>>> systems, Strachey_P is invalid, and the proof does not hold.
>>>> 
>>>> But you need to impose a VALID type system. A Prgram defined to take
>>>> as an input *ALL* programs (via their description) must still take in
>>>> *ALL*
>>>> programs to be valid for its definition.
>>>> 
>>>>> - Limitation: This refutation targets Strachey’s specific
>>>>> construction and does not disprove the halting problem’s
>>>>> undecidability, which is supported by other proofs (e.g., Turing
>>>>> 1936).
>>>> 
>>>> Whch means you really are admitting you aren't doing anything,
>>>> 
>>>> 
>>>>> ---
>>>>> 
>>>>> 4. Conclusion Based on the assumption that self-referential
>>>>> conflation is a type error, Strachey’s 1965 proof is refuted. The
>>>>> program Strachey_P is ill-formed due to the type error in
>>>>> T(Strachey_P), invalidating the contradiction. This highlights the
>>>>> role of type systems in computational arguments and shows that
>>>>> Strachey’s proof fails in typed contexts where self-reference is
>>>>> restricted.
>>>> 
>>>> Right, based on a false assumption you can prove a false claim.
>>>> 
>>>> Congradulations, you just proved that bad logic leads to bad
>>>> conclusions, and that your "type system" just isn't a useful tool the
>>>> way you are using it.
>>>> 
>>>> It seems you only have a hammer, and thus see everything as a Nail,
========== REMAINDER OF ARTICLE TRUNCATED ==========