19 votos

Estado de avance de la comprobación automatizada de pruebas

Hace poco me encontré con un concepto de comprobación automática de pruebas . Me intriga mucho la idea de que en el futuro todas las pruebas puedan ser verificadas por un ordenador.

Además, algunas pruebas ya estaban verificadas. Sin embargo, según tengo entendido, esas pruebas se formularon dentro de la lógica de primer orden.

En términos sencillos, ¿podría alguien explicar al resto de los matemáticos: cuán complicadas son ya las pruebas que podemos verificar? ¿Cuál es el progreso actual en la verificación de los principales resultados, cuáles son los retos y los posibles enfoques?

Gracias, señor.

1 votos

El mayor reto es desarrollar bibliotecas. Según [1], desarrollar una biblioteca para formalizar todas las matemáticas de pregrado llevará más de cien años-hombre. [1] A F. Wiedijk. Estimating the Cost of a Standard Library for a Mathematical Proof Checker, 2002. PDF .

6 votos

@J.D. En realidad, si esa estimación resultara ser correcta, no estaría tan mal y se vería empequeñecida por muchos productos de software de éxito que existen actualmente (pensemos en Word, Windows, etc.). En concreto, se ha estimado que el equipo de desarrollo de Windows 7, por ejemplo, estaba formado por más de 1000 desarrolladores .

1 votos

@3Esfera Cierto. Pero las empresas de software como Microsoft pueden ganar mucho dinero con grandes productos como Windows. No será el caso, por ejemplo, de una biblioteca Coq para demostrar teoremas de Sylow.

17voto

sewo Puntos 58

La mecánica de verificando pruebas por ordenador es prácticamente un problema resuelto. Tenemos un buen conocimiento de lo que es un paso de prueba válido y de cómo reconocer su validez por ordenador.

Lo que retrasa toda la empresa es que, aunque tenemos una buena teoría de la estructura de las pruebas, los ordenadores no entienden el inglés, por lo que las pruebas que queremos que comprueben deben traducirse al lenguaje formal con el que trabaja el comprobador de pruebas. El resultado suele parecerse más al código fuente de un programa que a la prosa matemática. Esta traducción aún no es del todo rutinaria, pero tampoco es un arte negro impenetrable.

Uno de los problemas es que existe una gran cantidad de conocimientos previos que, por lo general, los matemáticos que trabajan en la frontera de la investigación suponen ya conocidos. Antes de que los comprobadores de pruebas puedan empezar a trabajar con resultados contemporáneos, todo eso tiene que ser transcrito. Y la transcripción la tienen que hacer personas con conocimientos bastante sólidos de lógica y matemáticas, que podrían encontrar cosas más interesantes en las que emplear su tiempo.

Durante algún tiempo, ha sido posible obtener un doctorado cogiendo un trozo adecuado de matemáticas de licenciatura y formalizándolo en un sistema de pruebas informáticas. Pero la novedad va a desaparecer y, con el tiempo, dejará de impresionar a los comités de doctorado (puede que esto ya haya ocurrido, por lo que sé). Y luego, motivar a la gente para que haga el trabajo va a ser un verdadero problema. No es lo bastante conocido como para que los organismos de financiación pagar a cualquiera que haga el trabajo pesado, no por una cantidad suficiente de trabajo.

Creo que la esperanza general es que el desarrollo de bibliotecas de resultados acabe haciéndose mediante algún tipo de crowdsourcing, como el software de código abierto. Pero aún está por ver qué tipo de estructura de recompensa haría que eso funcionara.

0 votos

Entonces, ¿teóricamente ya se podría verificar todo dentro de ZFC?

0 votos

@ArtiomFiodorov: Sí, desde luego. Solo es cuestión de escribir las pruebas en un formato reconocido por el verificador.

3 votos

@TomArtiomFiodorov: Una vez tuve que demostrar el teorema de Ramsey infinito en Coq (uno de esos programas de comprobación de pruebas). Mientras que la demostración (matemática) de este teorema es bastante sencilla, resultó que la demostración en Coq tenía más de 750 líneas, la mayoría de las cuales eran tonterías sobre inducción y secuencias.

9voto

Julien Narboux Puntos 115

Algunas pruebas complicadas han sido verificadas por ordenador, el ejemplo bien conocido en matemáticas son:

  • el teorema de los 4 colores de Georges Gonthier y Benjamin Werner.

  • el teorema de Feit-Thompson por Gy Georges Gonthier y su equipo.

  • la conjetura de Kepler (teorema de Tomas Hales) por el equipo flyspeck.

Hay otros ejemplos en Informática:

  • un compilador de C: CompCert por Xavier Leroy

  • la corrección funcional de un núcleo de sistema operativo de uso general mediante NICTA

Como ha explicado Henning, la teoría de las pruebas ya se ha estudiado en profundidad y está bastante claro cómo comprobar una prueba formal.

Pero sigue habiendo muchos retos:

  • cómo intercambiar pruebas entre distintos sistemas

  • cómo editar una prueba y comprobarla en un entorno similar al de wikipedia

  • cuál es la mejor manera de formalizar un concepto dado

  • cómo modificar el asistente de pruebas para permitir un lenguaje más cercano al lenguaje matemático habitual: notaciones sobrecargadas, pasos implícitos en la prueba, coerciones implícitas, cómo tratar las pruebas por analogía o simetría, ...

  • cómo combinar cálculos y pruebas eficaces

  • cómo automatizar las pruebas

  • ...

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X