Deutsch   English   Français   Italiano  
<vu40v9$2pec$1@news.muc.de>

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

Path: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!news.szaf.org!news.karotte.org!news.space.net!news.muc.de!.POSTED.news.muc.de!not-for-mail
From: Alan Mackenzie <acm@muc.de>
Newsgroups: comp.theory
Subject: Re: Annotated Breakdown: Linz's Halting Problem Proof and the Category Error Perspective
Date: Sun, 20 Apr 2025 23:45:45 -0000 (UTC)
Organization: muc.de e.V.
Message-ID: <vu40v9$2pec$1@news.muc.de>
References: <_cdNP.1582076$Xb1.667097@fx05.ams4>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Injection-Date: Sun, 20 Apr 2025 23:45:45 -0000 (UTC)
Injection-Info: news.muc.de; posting-host="news.muc.de:2001:608:1000::2";
	logging-data="91596"; mail-complaints-to="news-admin@muc.de"
User-Agent: tin/2.6.4-20241224 ("Helmsdale") (FreeBSD/14.2-RELEASE-p1 (amd64))

Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
> This is a step-by-step outline of Linz's classical proof of the=20
> undecidability of the Halting Problem, with commentary from the=20
> perspective of a category-theoretic critique.

It's not even clear you understand what category-theoretic even means.

> This perspective suggests that certain steps in the proof involve
> category errors, where roles and types of entities are improperly mixed
> =E2=80=94 for example, treating a program and a meta-level decider as
> interchangeable.

You haven't said what you mean by a meta-level decider.  It seems you
mean a program.

> 1. Assume a Halting Decider Exists Linz begins by assuming the
> existence of a function H(P, x) that can determine whether program P
> halts on input x.

> Category-Theoretic View: This assumption does not yet involve any categ=
ory=20
> error. It describes a standard computational decider working over ordin=
ary=20
> program-input pairs.

Ordinary?  The assumption of the existence of a halting decider is that
it applies to ALL program/input pairs.  Otherwise it's not interesting.

> 2. Define a Contradictory Program D(P)
> Construct a new program D such that:
>     if H(P, P) reports 'halts', then D(P) loops forever;
>     if H(P, P) reports 'loops', then D(P) halts.

> Category-Theoretic View: This step begins to introduce potential catego=
ry=20
> confusion.

I don't think you understand what category confusion means.  You haven't,
as yet, defined any categories to get confused by.

> The function D is now being constructed specifically to act in
> contradiction to H's analysis of P on itself, blending the role of
> program and predicate. This blurs the boundary between object-level and
> meta-level semantics.

There is no such boundary.

> 3. Invoke D on Itself
> Evaluate D(D), which leads to the contradiction:
>     - If H(D, D) says D halts =E2=86=92 D(D) loops
>     - If H(D, D) says D loops =E2=86=92 D(D) halts

Contradiction of what, exactly?  The program runs successfully and
either returns or fails to return as you indicate.

> Category-Theoretic View: Here the category error is fully exposed. The=20
> object D is passed into H and simultaneously defined in terms of H=E2=80=
=99s=20
> result on itself.

There is no category error, here.  The category is programs, and D is a
program.

> This self-referential construct crosses semantic layers:=20

If you read up on Turing machines a bit, you'll see there's no such thing
as "self-reference" there.

> a program is both subject and evaluator.

This is an essential facet of the halting problem, namely that a
purported decider has to decide ANY program/input combination.

> In type-theoretic terms, this is akin to an ill-formed expression =E2=80=
=94 a
> form of circular logic not grounded in a well-defined semantic domain.

You haven't justified that at all, yet.  There's nothing ill formed about
the program D.  It's just a program.  As for the rest of that paragraph,
you're just being pompous; it's not clear you understand what
"well-defined semantic domain" means.

> 4. Conclude H Cannot Exist
> The contradiction implies that no such universal halting decider H can=20
> exist.

> Category-Theoretic View: From this perspective, the contradiction arise=
s=20
> not from an inherent limitation of deciders per se, ....

Correction: PURPORTED deciders.  The contradiction very much exposes
their limitations.

> .... but from allowing semantically invalid constructs. D(D) is seen as
> undefined or outside the valid domain of discourse =E2=80=94 not a legi=
timate
> program-input pair, but a malformed self-referential statement.

D(D) is just an ordinary program invocation, perfectly well defined.
From the set of all program/input combinations, this just happens to be
one which the purported halting decider H gets wrong.  There are many
cases where a program has itself as its input.  Many compilers are
written in their own language and compile themselves, for example.  A
purported halting decider which couldn't decide if a development version
of a compiler compiling itself is going to terminate wouldn't be all that
useful.

> 5. Interpretation
> The standard interpretation is that the Halting Problem is undecidable =
=E2=80=94=20
> there is no algorithm that can determine for all programs and inputs=20
> whether the program halts.

Not at all.  "Undecidable" means something else.  The correct
interpretation is that the termination status of a program/input pair is
incomputable.  That status is perfectly well defined.

> Category-Theoretic View: The undecidability arises only when the system=
=20
> permits semantically malformed constructions.

Who said anything about undecidability?  A purported halting decider
always gives a definite result, by its definition.  It's just the wrong
result a lot of the time.  Such a purported halting decider doesn't just
get it's specially selected program D wrong, it gets lots of other
program/input combinations wrong too.

> If the language of computation is refined to exclude category errors =E2=
=80=94
> such as programs that attempt to reference or reason about their own
> evaluation in this way =E2=80=94 then within that well-formed subset, h=
alting
> may be decidable or at least non-contradictory.

You might think so, but it's not.  Halting's been proven non computable
in several different ways, the proof you've outlined being just one of
them.

--=20
Alan Mackenzie (Nuremberg, Germany).