Sujet : Re: Bad faith and dishonesty
De : rjh (at) *nospam* cpax.org.uk (Richard Heathfield)
Groupes : comp.theoryDate : 30. May 2025, 11:24:41
Autres entêtes
Organisation : Fix this later
Message-ID : <101c11c$eeca$1@dont-email.me>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
User-Agent : Mozilla Thunderbird
On 30/05/2025 10:19, vallor wrote:
On Thu, 29 May 2025 19:40:57 +0100, Richard Heathfield <rjh@cpax.org.uk>
wrote in <101a9np$gl7$1@dont-email.me>:
On 29/05/2025 19:14, olcott wrote:
<snip>
>
It is a tautology that any input D to termination analyzer H that
*would never stop running unless aborted*
DOES SPECIFY NON-TERMINATING BEHAVIOR.
>
But in making that claim you assume that you correctly know the
termination behaviour of D.
>
I can easily sketch out a program that your HHH analyser would
impatiently abort as non-terminating, but which could conceivably stop
running this year, next year, sometime... or never.
Was wondering when someone would mention that...what does his HHH()
do with arbitrary programs?
$ cat ddd.c
#include <stdio.h>
void ddd(int r)
{
r--;
if(r <= 0) return;
fprintf(stderr,"calling ddd(%d)\n",r);
ddd(r);
fprintf(stderr,"returning, r=%d\n",r);
return;
}
int main(void)
{
ddd(50);
return 0;
}
I'd bet his HHH() would say this is non-terminating.
Dunno. I can't test it because I was unable to construct his system locally, but your program terminates quite quickly, so maybe he can cope with it? I'm not sure.
Here's a sketch of a rather more ambitious program that will definitely give his HHH some serious pause for thought.
Imagine if you will a bignum library that can cope with basic arithmetic on integers whose bit patterns are stored in arbitrarily large arrays of unsigned char. (I have written such a library for my own purposes, but you could use Miracl or GMP.)
Clearly, in C this would be implemented using function calls, but for the sake of brevity in my sketch I'll pretend that C has operator overloading.
You could use the bignum library to implement Miller-Rabin, which I'll call is_prime().
Given all of this, we can sketch out a design for a C program that can't prove, but may or may not DISprove, the Goldbach conjecture:
int main(void)
{
int found = 0;
bignum even = 4;
while(!found)
{
even += 2;
found = check(even);
}
if(found)
{
printf("Goldbach conjecture is FALSE."
" Pass me a Fields Medal.\n");
}
return EXIT_SUCCESS;
}
int check(bignum n)
{
int found = 1; /* assume n is a counterexample */
bignum i, j;
for(i = 3; found && i += 2; i++)
{
j = n - i;
if(is_prime(i) && is_prime(j))
{
/* n is NOT a counter-example */
found = 0;
}
}
return found;
}
Good luck with that, HHH().
-- Richard HeathfieldEmail: rjh at cpax dot org dot uk"Usenet is a strange place" - dmr 29 July 1999Sig line 4 vacant - apply within