GRAPA: asistentes de prueba más accesibles

Date :
Changed on 11/08/2023
Con foco en el beneficio de los programadores, el equipo franco-chileno GRAPA (GRAdual Proof Assistants) tiene como objetivo principal extender el alcance de la tipificación gradual a teorías de tipos completas, para respaldar la programación certificada fluida en una nueva generación de asistentes de prueba. 
Foto Portada
Crédito © Inria / Photo M. Magnin

 

En este Equipo Asociado colaboran investigadores del centro Inria de la Université de Rennes y de la Universidad de Chile. Esta vez, hablamos con sus coordinadores, Nicolas Tabareau, investigador líder del equipo-proyecto Gallinette, y Éric Tanter, profesor del del Departamento de Ciencias de la Computación de la Facultad de Ciencias Físicas y Matemáticas de la  Universidad de Chile e investigador del grupo Pleiad, para conocer más acerca de su trabajo colaborativo. 

¿Podrían presentarnos a GRAPA?

Éric Tanter (ET): El equipo GRAPA está explorando cómo hacer que los asistentes de prueba sean más accesibles para los programadores, apoyando una relajación de las fuertes restricciones impuestas estáticamente, volviendo a verificar durante la reducción. Esta técnica general llamada escritura gradual, se ha estudiado para lenguajes de programación estándar, pero muy poco para asistentes de prueba completos basados en la teoría de tipos. Nos preocupamos tanto de los fundamentos teóricos del enfoque como de una realización concreta en el asistente de prueba Coq, y de la evaluación del enfoque en estudios de casos realistas.

Nicolas Tabareau (NT): Si bien la programación certificada con asistentes de prueba es, sin duda, un enfoque extremadamente atractivo y poderoso para la construcción sistemática de sistemas de software correctos, robustos y seguros, adolece de un problema de complejidad proporcionalmente grande que impide una amplia adopción más allá de multitudes muy especializadas. Una parte intrínseca de este problema es la dependencia absoluta de la verificación estática, cuyo carácter conservador puede ser frustrante para los desarrolladores, lo que genera la impresión de que la herramienta se interpone en el camino del progreso real en el desarrollo del sistema de software. Esta es la razón por la que gran parte de la industria sigue prefiriendo lenguajes dinámicos como Python y JavaScript

Un asistente de prueba: ¿qué es?

En ciencias de la computación, un asistente de prueba es un software que permite la verificación de pruebas matemáticas, ya sea en teoremas o en aserciones matemáticas. Los asistentes de prueba apuntan a probar teoremas y tienen también como objetivo la corrección de programas informáticos. 

 

Fruto de 25 años de investigación en Inria, el asistente de pruebas Coq es uno de los software de punta en este área. Coq es un sistema de gestión de pruebas formales que proporciona un lenguaje formal para escribir definiciones matemáticas, algoritmos ejecutables y teoremas, junto con un entorno para el desarrollo semi-interactivo de pruebas verificadas por máquina. Es un software libre y open source y reconocido en Francia por el Centro Nacional de Certificación.

 

Descubre Coq: https://coq.inria.fr/ 

Descubre la colaboración entre la Agencia Nacional de Seguridad de los Sistemas Informáticos (ANSSI) y Coq: https://www.inria.fr/fr/inria-partenariat-anssi-logiciel-coq-certification 

 

 

Los lenguajes dinámicos son flexibles y de fácil acceso, pero no ofrecen ninguna garantía de corrección por construcción. El equipo asociado GRAPA está interesado en la posibilidad general de combinar enfoques estáticos y dinámicos dentro del entorno desafiante de las teorías de tipos dependientes, apoyando así la programación certificada gradual. 

Un enfoque gradual permite a los programadores disfrutar de los beneficios del razonamiento estático y conservador en la medida que lo deseen, aplazando el análisis restante al tiempo de ejecución. El objetivo principal del equipo de GRAPA es, por lo tanto, extender el alcance de la tipificación gradual a teorías de tipos completas para respaldar la programación certificada sin problemas en una nueva generación de asistentes de prueba.

¿Cómo se originó GRAPA? ¿Cómo empezaron a colaborar por primera vez?

ET: Nuestros equipos de investigación han estado colaborando durante más de 10 años. Hemos tenido equipos asociados continuamente desde entonces. Esto es en sí mismo un seguimiento de mi tesis doctoral que fue codirigida con la Université de Nantes en 2000-2004, y mi colaboración con Nantes hasta que Nicolas Tabareau se unió a Inria en 2009.

NT: Cuando me uní a Inria en 2009, Éric Tanter ya estaba colaborando activamente con investigadores en Nantes sobre otros temas. Rápidamente logramos fusionar nuestros diferentes antecedentes para atacar un nuevo problema, en la frontera de los asistentes de prueba y los lenguajes de programación convencionales.

 

foto mano
Crédito
© Inria / Photo M. Magnin
Formación en el software Coq durante el evento Open Source Experience los días 8 y 9 de noviembre de 2022.

¿Cuáles son las áreas específicas de investigación de cada uno de ustedes? ¿Qué preguntas científicas buscan responder o ya han respondido con el proyecto?

ET: Mi laboratorio, Pleiad, está estudiando varios lenguajes de programación e ingeniería de software, con un enfoque reciente en sistemas de tipos, verificación de programas y semántica. El equipo Gallinette de Inria, dirigido por Nicolas Tabareau, se centra en el avance de la Teoría de Tipos en general y el asistente de prueba Coq en particular.

NT: Al utilizar la competencia del equipo Pleiad y Gallinette, nos gustaría ver cómo se pueden reutilizar las técnicas para obtener lenguajes de programación convencionales más flexibles en el entorno de los asistentes de prueba basados en la teoría de tipos, que son lenguajes de programación muy peculiares, pero aun así lenguajes de programación

¿Cuáles son los objetivos de GRAPA?

ET: Además de las contribuciones teóricas, esperamos:

  • producir una implementación práctica de un asistente de prueba gradual, probablemente como una extensión del asistente de prueba Coq;
  • llegar a una implementación a nivel de producción es probablemente demasiado ambicioso en este punto, pero al menos podemos avanzar en una prueba de concepto utilizable, aplicable a proyectos de tamaño pequeño a mediano.
Titre

¿Cuáles son las aplicaciones específicas que podría tener o ha tenido GRAPA?

Image
Eric Tanter
Verbatim

“Un asistente de prueba gradual permitiría a los programadores desarrollar programas sin problemas, fortaleciendo las especificaciones y pruebas de dichos programas a lo largo del camino según lo requieran los objetivos y requisitos específicos de un proyecto en un momento determinado. El aspecto gradual es el que permitirá este enfoque incremental para la programación certificada”

Auteur

Eric Tanter

Poste

Profesor, Departamento de Ciencias de la Computación, Facultad de Ciencias Físicas y Matemáticas, Universidad de Chile, Coordinador del equipo asociado GRAPA.

Image
Nicolas Tabareau
Verbatim

“Esperamos que proporcionar un mecanismo más incremental a la programación certificada ayude a los asistentes de prueba a extender su popularidad e ir más allá del nivel actual. De hecho, incluso si los asistentes de prueba como Coq ahora son muy populares en algunas áreas particulares de aplicación, están lejos de llegar a toda la industria del software”

Auteur

Nicolas Tabareau

Poste

Investigador líder del equipo-proyecto Gallinette, Inria, coordinador del equipo asociado GRAPA.

¿Cómo se complementa el trabajo entre los equipos de Francia y Chile?

ET: He estado trabajando en escritura gradual en lenguajes de programación durante más de una década, y Tabareau es un experto en teoría de tipos y asistentes de prueba. Por lo tanto, el proyecto GRAPA realmente explota esta sinergia entre ambas líneas de experiencia.

¿Qué es un Equipo Asociado?

Un equipo asociado es un proyecto de investigación conjunto entre un equipo-proyecto Inria y un equipo de investigación del extranjero. Por un período de 3 años, los socios definen conjuntamente un objetivo científico, un plan de investigación y un programa de intercambios bilaterales.

Desde la llegada de Inria a Chile en 2012, 29 proyectos de investigación franco-chilenos de diferentes áreas de las ciencias digitales han sido financiados por este programa por Inria. 

Actualmente, hay nueve Equipos Asociados trabajando, en los que colaboran investigadores de los centros de Inria en Francia, como Centro Inria de l'Université de Bordeaux, Centro Inria de la Université Grenoble Alpes, Centro Inria de l'Université de Lille, Centro Inria de Lyon, Centro Inria Nancy - Grand Est, Centro Inria de Paris, Centro Inria de l'Université de Rennes, Antena Inria de la Université de Montpellier, Centro Inria de Saclay, Centro Inria de la Université Côte d’Azur; e instituciones chilenas, como la Universidad de Chile, la Pontificia Universidad Católica de Chile, la Universidad del Bío Bío, la Pontificia Universidad Católica de Valparaíso, la Universidad Adolfo Ibáñez y la Universidad de O’Higgins.

 

Inria-0289-519

¡Postula a la convocatoria para Equipos Asociados 2024!