Publikuję tylko drobiazgowe wyjaśnienie odpowiedzi JeffE.
Wiemy, że istnieją dwie funkcje / przypadki, które mogą obliczyć funkcję f (n):
- Funkcja, która zawsze zwraca true (dla wszystkich n istnieje n liczby kolejnych zer)
- Funkcja, która zwróci true, jeśli n jest mniejsze niż liczba całkowita N, gdzie N jest zdefiniowane jako maksymalna długość kolejnych zer istniejących w podanej liczbie niewymiernej (w przeciwnym razie zwraca false).
Jedna i tylko jedna z tych funkcji może być poprawna. Nie wiemy który, ale wiemy na pewno, że istnieje odpowiedź. Obliczalność wymaga istnienia funkcji, która może ustalić odpowiedź w skończonej liczbie kroków.
Liczba kroków w przypadku 1 jest trywialnie związana tylko z powrotem 1.
W przypadku 2 liczba kroków jest również skończona. Dla każdej liczby całkowitej możemy zbudować maszynę Turinga która akceptuje, jeśli
a w przeciwnym razie odrzuca w skończonym czasie. Zatem brak znajomości górnej granicy nie ma znaczenia. Dla każdego istnieje maszyna Turinga, a mianowicie , która poprawnie oblicza, czy (nie wiemy, które z nich są poprawne, ale to nie ma znaczenia, jedno istnieje).T N ( n ) n < N N N T N ( n ) n < NNTN(n)n<NNNTN(n)n<N
Chociaż wybór dwóch przypadków może nie być możliwy (chociaż jeden wydaje się bardziej prawdopodobny niż inny), wiemy, że dokładnie jeden z nich musi być poprawny.
Na marginesie: nasze rozwiązanie zakłada, że chociaż nie jesteśmy w stanie ustalić, która funkcja wywoła poprawną wartość, istota obliczalności nie opiera się na konstrukcji dowodu. Czysta egzystencja jest wystarczająca.