Usar resultados negativos para probar resultados positivos en la teoría de la computabilidad

8

Muchos resultados en criptografía dependen de resultados / conjeturas imposibles en la teoría de la complejidad. Por ejemplo, se cree que la criptografía de clave pública que usa RSA es posible debido a la conjetura sobre la inviabilidad de la factorización (y los problemas de búsqueda de raíz modular).

Mi pregunta es :

¿Tenemos resultados similares en la teoría de la computabilidad? ¿Hay construcciones positivas interesantes que usan resultados de imposibilidad negativos?

Por ejemplo, ¿la indecidibilidad del problema de detención nos permite realizar tareas que no podríamos hacer si el problema de detención fuera decidible?

Kaveh
fuente
1
Dos usos principales de los resultados de negatividad en la teoría de la complejidad son (1) criptografía y (2) desrandomización. Ninguno de estos se aplica en el marco de computabilidad. Descifrar un criptosistema computable es inevitablemente una tarea computable, y cualquier función computable en una máquina de Turing aleatoria también es computable en una máquina de Turing determinista (de manera constructiva).
David Harris el
1
Esto parece ser una cuestión de redacción. "la criptografía de clave pública usando RSA es posible" es solo la forma medio llena de vidrio de decir "es imposible descifrar RSA en el tiempo múltiple". No veo cómo RSA es una construcción positiva ... es solo una construcción, y su prueba de seguridad es un resultado negativo sobre posibles algoritmos adversos.
Artem Kaznatcheev
@Artem, el punto aquí es que estamos construyendo un protocolo que puede usarse y la condición de que el protocolo sea útil es un resultado negativo de que no hay adversarios que puedan romperlo. Intuitivamente, lo que quiero decir con un resultado negativo es un teorema que dice que algo no se puede hacer. Por resultado positivo me refiero a una construcción que permite llevar a cabo alguna tarea (por ejemplo, comunicación segura). Un resultado positivo puede tener un resultado negativo en su interior. Pensaré en expresar esto más formalmente.
Kaveh
@David, sí, soy consciente de estos dos. ¿Conoces algún otro uso conocido de los resultados negativos para resultados positivos en teoría de la complejidad / criptografía?
Kaveh
55
Personalmente, también creo que es una cuestión de redacción. Por ejemplo, puede tomar el teorema de Rice y decir "para cada antivirus, puede construir un virus no reconocido". En cada teorema de incompletitud, puede transformarlo en "puede construir un contraejemplo".
Ludovic Patey

Respuestas:

7

En cierto sentido, de esto se trata la teoría de la parametricidad.

La abstracción de datos es cómo nos aseguramos de que ningún cliente de un módulo pueda acceder a los elementos de un módulo, excepto de acuerdo con la interfaz expuesta por el módulo. Confiamos en esto para garantizar que los clientes de un módulo no puedan romper los invariantes internos de las estructuras de datos; por ejemplo, si accede a un árbol equilibrado solo a través de la interfaz publicada, se deduce que el árbol siempre estará equilibrado.

Por lo tanto, utilizamos una propiedad negativa, que ningún cliente posible puede romper el límite de abstracción, para deducir una positiva, que la representación de datos siempre tiene.

Neel Krishnaswami
fuente
Se accede a los datos a través de un oráculo apropiado, pero eso no implica necesariamente que no se pueda acceder directamente a ellos
David Harris
1
La abstracción de datos es esencialmente un resultado definible : dice que ningún programa en el lenguaje de programación puede romper los límites de abstracción. Si utiliza un mecanismo extralingüístico (por ejemplo, activa su depurador), puede ver qué campos privados tiene esa tabla hash.
Neel Krishnaswami
6

La complejidad de Kolmogorov podría caer en esta categoría.

Se puede demostrar que hay ciertas cadenas que no pueden ser comprimidas por ninguna máquina de Turing. Estas cadenas se comportan "genéricamente" para que pueda estudiar las propiedades aleatorias de cierta información y tareas computacionales al estudiar el comportamiento con respecto a una cadena incompresible (no aleatoria).

David Harris
fuente
Gracias, alguien más también sugirió esto en una discusión fuera de línea. (No estoy completamente convencido, ya que realmente no usamos cadenas computacionalmente aleatorias para realizar tareas del mundo real, tiene más sabor existencial que construir algo, probablemente debería pensar un poco más sobre lo que quiero decir exactamente con un resultado positivo ps: mi motivación original fue dar a los estudiantes universitarios que aprenden teoría de la computabilidad un ejemplo de la utilidad de los resultados negativos en la construcción de cosas para realizar tareas del mundo real.)
Kaveh
Si bien uno no construye (y no puede) construir cadenas incompresibles en la práctica, es muy común construir una cadena al azar. Entonces, con alta probabilidad, será incompresible.
David Harris