Em Computabilidade, se quisermos provar que um problema não é recursivo ou não recursivamente enumerável, podemos usar, por exemplo, reduções de outros problemas não recursivos ou não re, o teorema de Rice, o teorema de Rice-Shapiro, etc. Essas técnicas funcionam graças a , ou se baseiam diretamente na existência de algum argumento diagonal (ou seja, algum programa se comporta de maneira oposta ao seu programa de entrada M ' , então M = M ' é contraditório). Em Complexidade, se queremos provar que algum problema não pode ser calculado em algum tempo (independentemente de reivindicações não comprovadas, como por exemplo, P ≠ N P), Usamos os argumentos que são, em última análise, com base em algumas argumento diagonal (por exemplo, o tempo de hierarquia teorema prova problemas -completo não estão em P , mas que o teorema também é comprovado por meio de um argumento diagonal).
Então, minha pergunta é a seguinte. São todos importantes resultados impossibilidade Computabilidade e Complexidade (impossibilidade real, não a impossibilidade até algum resultado unproved) em última análise, devido a algum argumento diagonal? Ou seja, todo o nosso importante "conhecimento da impossibilidade" em Computabilidade e Complexidade vem do fato de que os programas são poderosos o suficiente para executar programas?
O único resultado de impossibilidade importante que me vem à mente e que não se deve a um argumento diagonal é que a função de Ackermann não é recursiva primitiva. Estou perdendo outros contra-exemplos importantes dessa aparente "regra"?
Edição (18 de novembro): Desculpe por sugerir que minha pergunta estava focada particularmente no argumento diagonal, mas estou mais interessado em todos os argumentos que se baseiam na auto-referência de programas (incluindo o argumento diagonal, paradoxo de Berry, etc.). Para linguagens mais simples (por exemplo, regulares ou sem contexto), temos argumentos de impossibilidade "estruturais" com base em como essas linguagens são construídas (por exemplo, lemas de bombeamento). No entanto, para linguagens recursivas ou re, a maioria dos resultados de impossibilidade depende fortemente da auto-referência dos programas. Foi isso que eu quis dizer.