En Computabilidad, si queremos demostrar que un problema no es recursivo o recursivamente enumerable, podemos usar, por ejemplo, reducciones de otros problemas no recursivos o no re, el teorema de Rice, el teorema de Rice-Shapiro, etc. Estas técnicas funcionan gracias a , o se basan directamente en la existencia de algún argumento diagonal (es decir, algún programa comporta de manera opuesta a su programa de entrada M ' , por lo que M = M ' es contradictorio). En Complejidad, si queremos demostrar que algún problema no se puede calcular en algún momento (independientemente de cualquier reclamo no probado como, por ejemplo, P ≠ N P), utilizamos argumentos que, en última instancia, se basan en algún argumento diagonal (por ejemplo, el teorema de la jerarquía de tiempo demuestra que -los problemas completos no están en P , pero ese teorema también se prueba utilizando un argumento diagonal).
Entonces mi pregunta es la siguiente. ¿Todos los resultados imposibles importantes resultan en Computabilidad y Complejidad (imposibilidad real, no imposibilidad hasta algún resultado no probado) en última instancia debido a algún argumento diagonal? Es decir, ¿todo nuestro importante "conocimiento de imposibilidad" en Computabilidad y Complejidad proviene del hecho de que los programas son lo suficientemente potentes como para ejecutar programas?
El único resultado importante de imposibilidad que viene a mi mente que no se debe en última instancia a un argumento diagonal es que la función de Ackermann no es primitiva recursiva. ¿Me estoy perdiendo otros contraejemplos importantes de esta aparente "regla"?
EDITAR (18 de noviembre): Perdón por implicar que mi pregunta se centró particularmente en el argumento diagonal en sí, pero estoy más interesado en todos los argumentos que se basan en la auto referencia de los programas (incluido el argumento diagonal, la paradoja de Berry, etc.). Para lenguajes más simples (p. Ej., Regular o sin contexto), tenemos argumentos de imposibilidad "estructural" basados en cómo se construyen estos lenguajes (p. Ej., Bombear lemas). Sin embargo, para los idiomas recursivos o re, la mayoría de los resultados de imposibilidad dependen en gran medida de la autorreferencia de los programas. Esto es lo que quise decir.