Sto cercando di trovare un modo per spiegare l'idea della prova del problema di Halting nel modo più accessibile possibile (agli studenti universitari). L'argomento più semplice che ho trovato è questo ; questo è precisamente lo stile di trattamento a cui sto puntando. Tuttavia, l'auto-riferimento (in particolare, verificare se un programma si ferma su se stesso) non è il più didattico.
Quello che mi chiedo, come uno schizzo di prova, è perché non potremmo semplificare ulteriormente e dire: se assumiamo un programma H(P,I)per il problema di Halting che si ferma con vero se si P(I)ferma e si ferma con falso altrimenti, allora potremmo creare un programma del modulo:
def Q(J):
if H(Q,J) then loop forever
else halt
... che è un programma valido se e solo se Halting Problem è un programma valido. Possiamo quindi chiedere: cosa dovrebbe H(Q,J)restituire un valore arbitrario per J? Vediamo una contraddizione in entrambe le possibilità e concludiamo che poiché l'esistenza di Hci consente di costruire il programma contraddittorio Q, quindi un programma della forma Hnon può esistere.
C'è ancora qualche auto-riferimento qui nel fatto che il programma Qcontrolla se si ferma o meno sull'input corrente (e fa il contrario), ma per me questo sembra molto più intuitivo che impostare una situazione in cui abbiamo bisogno di una chiamata del forma P(P)o H(P,P), ecc. Tuttavia, non ho visto questo argomento più semplice usato, e penso che sarebbe stato se fosse valido. Quindi le mie domande sono:
- L'argomento di cui sopra è sufficiente come prova (schizzo) del problema di Halting?
- Se è così, perché tanti argomenti vanno con una fase confusa del modulo
P(P)oH(P,P)? (È solo per rimuovere l '"input" non importante dall'equazione?) - In caso contrario, cosa manca?
- Se è così, perché tanti argomenti vanno con una fase confusa del modulo
Esistono diverse domande correlate su questo argomento, come ad esempio:
- Arrestare il problema senza autoreferenzialità
- Esiste una prova più intuitiva dell'indecidibilità del problema di arresto rispetto alla diagonalizzazione?
Ho anche trovato la menzione della prova basata sul paradosso di Berry, che è abbastanza interessante. Tuttavia, non sono ancora riuscito a convincermi se la specifica argomentazione di cui sopra funziona (anche se solo per la mia comprensione; sento che forse mi manca qualcosa di stupido e vorrei sapere di cosa si tratta).