( AGGIORNAMENTO : qui viene posta una domanda meglio formata poiché i commenti per la risposta accettata di seguito mostrano che questa domanda non è ben definita)
La classica dimostrazione dell'impossibilità del problema di arresto dipende dalla dimostrazione di una contraddizione quando si tenta di applicare l'algoritmo di rilevamento dell'arresto a se stesso come input. Vedi lo sfondo di seguito per ulteriori informazioni.
La contraddizione dimostrata si applica a causa di un paradosso autoreferenziale (come la frase "Questa frase non è vera"). Ma se severamente vietassimo tali autoreferenze (ovvero accettassimo il fatto che tali autoreferenze non siano decidibili a fermarsi), quale risultato ci rimane? Il problema di arresto per il restante set di macchine non autoreferenziali è decidibile o meno?
Le domande sono:
Se consideriamo un sottoinsieme di tutte le possibili macchine di Turing, che non sono autoreferenziali (cioè non le considerano come input), cosa sappiamo del problema di arresto per questo sottoinsieme?
AGGIORNARE
Forse una migliore riformulazione di ciò che sto cercando è una migliore comprensione di ciò che definisce un insieme decidibile. Stavo cercando di isolare la classica prova di indecidibilità perché non aggiunge alcuna informazione sull'indecidibilità, tranne per i casi in cui esegui HALT su se stesso.
Sfondo: supponendo che vi sia una contraddizione che esiste una macchina di Turing che può decidere sull'ingresso M che è una codifica per una macchina di Turing e X , anche se M ( X ) si ferma. Quindi considera una macchina di Turing K che prende M e X e usa Q per decidere se M ( X ) si ferma o meno, quindi fa il contrario, ovvero K si ferma se M ( X ) non si ferma e non si ferma se M ( X )fermate. Quindi mostra una contraddizione, poiché K dovrebbe fermarsi se non si ferma e non si ferma quando si ferma.
Motivazione: un collega sta lavorando alla verifica formale dei sistemi software (specialmente quando il sistema è già stato provato a livello di codice sorgente e vogliamo riprovarlo per la sua versione compilata, per neutralizzare i problemi del compilatore), e nel suo caso si preoccupa di un serie speciale di programmi di controllo integrati per i quali sappiamo per certo che non si riferiranno da soli. Un aspetto della verifica che vuole effettuare è se è garantito che il programma compilato si fermerà se si dimostra che il codice sorgente di input termina.
AGGIORNARE
Sulla base dei commenti che seguono chiarisco il significato delle macchine di Turing non autoreferenziali.
L'obiettivo è definirlo come l'insieme che non porta alla contraddizione posta nella dimostrazione (cfr. "Sfondo" sopra). Potrebbe essere definito come segue:
Supponendo che vi sia una macchina di Turing che decide il problema di arresto per un set di macchina di Turing S , allora S non è autoreferenziale rispetto a Q se esclude tutte le macchine che invocano Q su S (direttamente o indirettamente). (Chiaramente ciò significa che Q non può essere un membro di S. )
Per chiarire cosa si intende invocando su S indirettamente:
Invocare su S è indicato da una macchina di Turing Q con un insieme di stati e un certo possibile input iniziale sul nastro (corrispondente a qualsiasi membro di S ), con la testa inizialmente all'inizio di quell'ingresso. Una macchina W invoca Q su S "indirettamente" se esiste una sequenza (finita) di passi che W prenderebbe per rendere la sua configurazione "omomorfa" alla configurazione iniziale di Q ( S ) .
AGGIORNAMENTO 2
Da una risposta che segue sostenendo che ci sono infinitamente molte macchine di Turing che fanno lo stesso compito, e quindi non è univoco, cambiamo la definizione sopra dicendo dicendo che Q non è una singola macchina di Turing, ma l'insieme (infinito) di tutte le macchine che calcolano la stessa funzione (HALT), in cui HALT è la funzione che decide in che modo una macchina di Turing si ferma su un particolare input.
AGGIORNAMENTO 3
La definizione di omomorfismo di Turing Machine:
Una TM A è omomorfa alla TM B se il grafico di transizione di A è omomorfo a quello di B, nel senso standard degli omomorfismi dei grafici con nodi E bordi etichettati. Un grafico di transizione (V, E) di una TM è tale che V = stati, E = archi di transizione tra stati. Ogni arco è etichettato con (S, W, D), S = simbolo letto dal nastro e W = il simbolo da scrivere su di esso, e D = la direzione verso cui si sposta la testa.