Teorema de Rice
¿Es posible saber rápidamente si un lenguaje es indecidible?
El teorema de Rice afirma que si un lenguaje \(X \subset \Sigma^*\) es definido por un conjunto no trivial y expresa una propiedad semántica concreta, entonces el lenguaje X es indecidible.
Condiciones
H1) X es un conjunto no trivial
Se dice que X es un conjunto no trivial cuando \(X \neq \emptyset\) o \(X \neq \{ <M> |\ M\ es\ una\ MT\ \}\).
H2) X expresa una propiedad semántica
Una propiedad semántica se refiere al comportamiento del programa. Por ejemplo: “el programa termina”, “el programa acepta cadenas capicúa”, “acepta solo boletas ganadoras de la próxima fecha” o “acepta los sets de fichas que cumplen el puzzle”. Por el contrario “es una MT de Turing que tiene 5 estados” o “el alfabeto de cinta tiene el doble de caracteres del alfabeto \(\Sigma\)” no dice nada del lenguaje.
La manera formal de denotar esta carácterística es:
\(\forall M_1, M_2\) Máquinas de Turing si \(\mathcal{L}(M_1)\), \(<M_1> \in X \iff <M_2> \in X\)
Es decir, dadas 2 máquinas de Turing, si ambas deciden el mismo lenguaje, entonces ambas están en X.
Tesis: Entonces el lenguaje X es indecidibile.
X es un lenguaje para el cuál no podemos construir una MT que decida el lenguaje.
Observación. X cumple con las condiciones del teorema $ \iff \overline{X} $ cumple con las condiciones. Recordamos. Que si X es decidible entonces $ \overline{X} $ es decidible.
Dem. Sea X un conjunto que satisface las condiciones y probemos que es indecibile.
Para eso suponemos que es decidible y veremos si llegamos a una contradiccón.
\(\exists\) MT R tal que:
\[R(<M>)=\begin {cases} acepta&\text{si }M \in X\\rechaza&\text{si } M \notin X\end{cases}\]La contradicción vendrá de probar que con MT R podemos decidir el lenguaje \(A_{MT}\)
\[A_{MT} = \{ <M,w> |\ M(w) = acepta \}\]Consideremos la MT \(M_\emptyset\) que rechaza todas las cadenas, es decir, \(\mathcal{L}(M_\emptyset) = \emptyset\).
Pueden pasar que \(M_\emptyset \in X \lor M_\emptyset \notin X\)
Analizamos el caso de \(M_\emptyset \in X\).
Existe al menos una MT \(M_1\) tal que \(<M_1> \notin X\), ya que X no puede ser el conjunto de todas las MT (debía ser no trivial).
Además \(\mathcal{L}(M_1) \neq \emptyset\).
Construimos \(S_{<M,w>}(\alpha):\)
- Simula el comportamiento de \(M_1(\alpha)\)
- Si \(M_1(\alpha) = rechaza \Longrightarrow S_{<M,w>}(\alpha) = rechaza\)
- Si \(M_1(\alpha) = acepta\), simulamos el comportamiento de M(w).
Notemos que si \(M(w) = acepta\), entonces \(S_{<M,w>}(\alpha) = acepta \iff M_1(\alpha)\), es decir:
\[\mathcal{L}(S_{<M,w>}) = \mathcal{L}(M_1)\]Por lo tanto:
\[<S_{<M,w>}> \notin X\]Pero si \(M(w) \neq acepta, entonces S_{<M,w>}(\alpha)\) no acepta la cadena.
Entonces \(\mathcal{L}(S_{<M,w>}) = \emptyset = \mathcal{L}(M_\emptyset)\)
En ese caso:
\[<S_{<M,w>}> \in X\]Construyamos ahora una MT T que se comporta de esta forma:
\[T(<M,w>)=\begin {cases} acepta&\text{si }R(<S_{<M,w>}>) = rechaza\\rechaza&\text{si } R(<S_{<M,w>}>) = acepta\end{cases}\]Veamos que:
\(T(<M,w>) = acepta\) \(\iff R(<S_{<M,w>}>) = rechaza\) \(\iff <S_{<M,w>}> \notin X \iff M(w) = acepta \iff <M,w> \in A_{MT}\)
\(T(<M,w>) = rechaza\) \(\iff R(<S_{<M,w>}>) = acepta\) \(\iff <S_{<M,w>}> \in X \iff M(w) = rechaza \iff <M,w> \notin A_{MT}\)
Con lo que tenemos una MT que me permite decidir \(A_{MT}\), lo que sabemos que no se puede.
Entonces X no puede ser decidible.