Uma declaração do teorema de Rice é apresentada na página 35 de "Complexidade computacional: uma abordagem moderna" (Arora-Barak):
Uma função parcial a partir de a é uma função que não está necessariamente definido em todas as suas entradas. Dizemos que um TM calcula uma função parcial se para cada em que está definido, e para cada em que não está definido entra em um loop infinito quando executado na entrada . Sex S f S α M α Sé um conjunto de funções parciais, definimos ser a função booleana que na entrada saídas 1 sse calcula uma função parcial em . O teorema de Rice diz que, para todo S não trivial , a função f S não é computável.
A Wikipedia afirma que os idiomas das máquinas com limite temporal são EXPTIME completos. Espero que esse idioma se pareça com aceita em menos de etapas . Portanto, seja um DTM que decida esse idioma limitado em tempo exponencial. Parece que este DTM está decidindo alguma propriedade para TODAS as máquinas de turing, então minha intuição me diz que o teorema de Rice impede essa decisão. Mas obviamenten } M M calcula uma função total.
O que estou perdendo na relação entre essa linguagem e o teorema de Rice?
O teorema de Rice diz que você não pode dizer nada sobre o comportamento final de um programa quando ele é executado para o infinito - não importa como você classifique os programas, haverá dois programas que convergirão para o mesmo comportamento final (função computada ), embora você os tenha classificado de maneira diferente.
Mas deixar os programas rodarem até o infinito é essencial. Para descobrir o que eles fazem nos primeiros passos, você pode apenas simulá-los nos primeiros n passos e então terminar dando o seu veredicto sobre o comportamento do programa. Simulação semelhante até o infinito não funcionar, porque se o programa simulado nunca terminar em uma entrada simulada, seu classificador também divergirá, em vez de fornecer uma classificação.n n
fonte
Primeiro, as palavras no seu idioma não são codificações de máquinas, elas contêm mais informações, portanto você não pode aplicar diretamente o teorema de Rice. Dito isto, o teorema de Rice fala sobre a impossibilidade de raciocinar sobre a função calculada por uma máquina de Turing (a saber, se está em algum conjunto ). Este não é o caso aqui, pois, como Raphael mencionou, existem duas máquinas M , M ′ que computam a mesma função, mas uma está no seu idioma e a outra não (aqui estou ignorando a questão sintática, e esqueci o fato de que x , nS M, M′ x , n fazem parte da entrada). O ponto é que a propriedade que você está vendo aqui é mecânica e não semântica (as máquinas podem calcular a mesma função, mas de uma maneira diferente).
fonte
O teorema de Rice diz que, para qualquer conjunto não trivial de linguagens , o conjunto de máquinas de Turing que reconhecem uma linguagem em L é indecidível. A Wikipedia diz que um idioma específico é decidível. Portanto, não há contradição.eu eu
fonte