PROGRAMA ECOS
PROYECTOS CONJUNTOS DE INVESTIGACIÓN CIENTIFICA
URUGUAY - FRANCIA
Especificaciones y programas: modelos de cálculo, tipos e implementaciones
Palabras Claves: Area disciplinaria: ( ) Ciencias Humanas y Sociales ( ) Ciencias de la Vida y la Salud. ( ) Ciencias de la Tierra y del Universo (*) Ciencias Exactas (Computación). |
2. Institución principal a la cual pertenece el responsable del proyecto en Uruguay:
Instituto: Instituto de Computación - Facultad de Ingeniería – Universidad de la República (In.Co.). Nombre del Director: María Urquhart. Institución principal a la cual pertenece el responsable del proyecto en Francia: Laboratoire d’Informatique (CNRS UMR 8548) – Ecole Normale Superieure, Paris.
|
3. Responsable del proyecto. En Uruguay: Nombres y apellidos Cargo académico: Profesor Asociado (grado 4) Dirección: In.Co. -Facultad de Ingeniería - J. Herrera y Reissig 565 - 11300 Montevideo – URUGUAY Teléfono: (598)(2) 71.42.44/47 Fax: (598)(2) 71.04.69 Correo electrónico: nora@fing.edu.uy En Francia: Nombre y apellido Cargo académico: Directeur de Recherches (1ere cl., HEC3) Dirección: Laboratoire d’Informatique École Normale Supérieure 45 Rue d'Ulm, 75005 Paris, France Fax : (33)(1) 44.32.21.51 Correo electrónico: longo@dmi.ens.fr
|
4. Lista de Investigadores participantes en el proyecto. En Uruguay: Nora Szasz, Profesora grado 4 del In.Co. Investigador principal. Paula Severi, Profesora grado 3 del Centro de Matemática de la Facultad de Ciencias de la Universidad de la República. Investigador principal. En Francia: Guiseppe Longo, Directeur de Recherches (DR1), Laboratoire d'Informatique (LIENS - UMR 8548). Investigador principal. Maribel Fernández, Maître de Conférences, Laboratoire d'Informatique (LIENS - UMR 8548). Investigador principal Ian Mackie, Chargé de Recherche, CNRS - Chef de Travaux Pratiques, École Polytechnique - LIX (CNRS UMR 7650). Investigador principal. |
5. Descripción del proyecto científico y objetivos perseguidos.
5.1. Resumen de la InvestigaciónEl plan consiste en la definición y la investigación de las propiedades de ciertos cálculos tipados (inspirados del cálculo lambda [ Bar85]), que permiten la modelización de la especificación de un problema y del programa que lo resuelve. Nos interesa estudiar propiedades como por ejemplo la confluencia y la normalización: la primera asegura el determinismo del sistema, y la segunda la existencia de un resultado para cada computación.Los sistemas de tipos, y los algoritmos de inferencia de tipos, son importantes en este marco ya que permiten, en muchos casos, la verificación automática de estas propiedades, además de proteger las estructuras de datos y los operadores contra usos incorrectos. Por ejemplo, en el cálculo lambda, los subsistemas tipados son fuertemente normalizantes (todas las computaciones terminan). Este resultado es válido en sistemas de tipos muy diferentes, que van de los tipos simples al Cálculo de Construcciones. Entre las posibles extensiones de los cálculos que nos proponemos estudiar, está la inclusión de tipos inductivos, y de reglas de reducción arbitrarias sobre éstos (utilizando sistemas de reescritura de términos). Si bien en los sistemas tipados todas las computaciones permiten obtener el resultado deseado, es importante definir una estrategia que llegue a este resultado lo más rápido posible. Desde un punto de vista práctico, para obtener una implementación eficiente de estos cálculos, nos proponemos estudiar diferentes estrategias de computación y comparar sus performances. La herramienta que nos servirá de base en este estudio es la Lógica Lineal [ Gir87] y sus derivados, como las redes de interacción, que inspiraron la definición de estrategias eficientes (y optimales) en el cálculo lambda gracias a la descomposición en acciones atómicas de cada paso en la computación.En [ Sza97] Nora Szasz presenta una teoría formal de la programación basada en la Teoría Constructiva de Tipos. La principal contribución de este trabajo es que se obtiene una noción de programa más realista que la que existe en las distintas formulaciones de la teoría de tipos pero se mantienen las ventajas que tiene la utilización de dichas teorías, esto es: la unificación de conceptos, el hecho que la verificación de programas se reduce a un control de tipos, y la posibilidad de construir en paralelo los programas y sus pruebas de corrección.En este proyecto proponemos iniciar el proceso de construcción de un asistente que permita utilizar en la practica la teoría de Nora Szasz. Para ello, las principales etapas son: el estudio de las relaciones entre tipos y normalización, el desarrollo de un algoritmo de control de tipos, y el estudio de estrategias eficientes de reducción utilizando técnicas derivadas de la Lógica Lineal.
5.2. Descripción del proyecto Científico y objetivos perseguidosFundamentación y AntecedentesEl proyecto de investigación propuesto se fundamenta en el hecho de que el cálculo lambda es la base teórica de la programación funcional [ BW88] y puede ser considerado como un lenguaje de programación abstracto dado que contiene el concepto de cómputo en su forma más pura y general (es equivalente a la máquina de Turing) y además tiene una sintaxis extremadamente simple. Los primeros lenguajes de programación tipados fueron Pascal y Algol, luego aparecieron otros lenguajes como ML, Miranda y Haskell. Estos lenguajes están basados en fragmentos del Sistema F [Gir86], que es un cálculo lambda tipado de segundo orden desarrollado por Girard y Reynolds. La teoría de los cálculos lambda tipados también puede ser pensada desde el punto de vista de la lógica como la teoría de la demostración. En esta perspectiva el estudio de la normalización es el estudio de la simplificación de las demostraciones. Una forma normal es la prueba más simple que se puede encontrar de un teorema. El estudio del chequeo de tipos y de la habitabilidad de tipos corresponde al chequeo de demostraciones y a la deducción automática de la demostración a partir del enunciado del teorema. Los llamados asistentes de demostraciones, que son sistemas que ayudan a la demostración de teoremas matemáticos, están basados en su mayor parte en los cálculos lambda tipados. Algunos de ellos son Coq [Ba97], Lego [LP92], Constructor [HA91], Nuprl [Co86] y Alf [Mag94]. Estos sistemas pueden ser usados en particular para probar que un programa funcional es correcto, es decir, que satisface su especificación. Las propiedades de confluencia y de normalización aseguran la coherencia del sistema de prueba.En la tesis de doctorado [ Sza97], Nora Szasz presentó una Teoría de Especificaciones basada en la Teoría de Tipos de Martin Löf, en la cual es posible construir programas correctos a partir de sus Especificaciones. En [SS99] Paula Severi y Nora Szasz reformularon la Teoría de Especificaciones y comenzaron a estudiar propiedades de dicha teoría como normalización y confluencia de la reducción.En la tesis de doctorado [ Fer93] y en sus trabajos posteriores [BF97,BF95,BBF96], Maribel Fernández realizó estudios de confluencia y normalización para varios cálculos que combinan cálculo lambda (para la definición de funciones de orden superior) y reescritura de términos (para la representación de estructuras de datos y operadores algebraicos). Entre los resultados obtenidos está la modularidad de las propiedades de confluencia y terminación (normalización fuerte) en los fragmentos tipados de estos cálculos. En la tesis de doctorado [Sev96a] y en otros trabajos [SP94,Sev96b,RS95,Sev98,RSSX99] Paula Severi realizó estudios de confluencia y normalización sobre la teoría general de Sistemas Puros de Tipos [Ber88,Ter89,Bar92], así como también estudios de la normalización fuerte en cálculo lambda puro. En la tesis de doctorado [Mac94] y en sus trabajos posteriores [Mac98a,Mac98b] Ian Mackie estudió la implementación del cálculo lambda utilizando redes de interacción, basadas en redes de prueba de la Lógica Lineal, y la Geometría de la Interacción (un modelo semántico de la Lógica Lineal). Ian Mackie y Maribel Fernández [FM99] definieron, basados en estos trabajos, una estrategia de reducción en un cálculo lambda con substituciones explícitas, que tiene todas las ventajas de la llamada reducción débil, pero que permite reducciones dentro de las abstracciones (cosa que la reducción débil no permite), y gracias a esto las reducciones son más eficientes.En este proyecto nos proponemos estudiar en profundidad las propiedades de los modelos de cálculo tipados, que permiten el desarrollo de programas correctos a partir de especificaciones formales y tienen aplicaciones prácticas inmediatas de acuerdo a lo descripto anteriormente. Objetivos Generales y Específicos, Resultados PrevistosEn la primera etapa del proyecto, planeamos continuar con el estudio de las propiedades de normalización de la Teoría de Especificaciones, con el objetivo de obtener un resultado de normalización fuerte para esta teoría. En [ Sza97] se presentó la Teoría de Especificaciones como una extensión a la Teoría de Tipos de Martin Löf, que permite la construcción de programas correctos a partir de sus especificaciones. Una especificación para un programa es una propiedad que el programa debe satisfacer. En general ésta es una proposición que tiene la forma "xÎA. $yÎB. P(x, y). A partir de una prueba p de una proposición de esta forma, la idea es extraer la función f Î A® B tal que P(x, f(x)) se cumpla. La función f será el programa buscado que satisface la especificación. Ya que el existencial en la teoría de conjuntos de Martin Löf es constructivo, el axioma de elección es derivable y es posible construir esta función dada por f = l xÎA. fst(p x). Sin embargo, desde el punto de vista computacional esta función extraída a partir del existencial constructivo no es ni buena ni deseable ya que contiene cierta información redundante y al momento de evaluar f(a) se realizarían cómputos innecesarios.En la Teoría de Especificaciones se agrega una nueva construcción áxÎA | P(x) ñ llamada par que es en principio similar al existencial. Este par posee propiedades especiales que permiten extraer programas sin información redundante. Para esto, en [SS99] se agrega una reducción o relación de cómputo de manera que la forma normal de un elemento de "xÎA áyÎB| P(x, y) ñ sea un par de la forma áf, qñ donde f es la función deseada de A en B y q es la prueba de "xÎA. P(x, f(x)). De esta manera, es posible construir el programa junto con su especificación y luego al normalizar se separa la parte que corresponde al programa de la parte que corresponde a la prueba de su corrección.En otros asistentes de pruebas como Coq [ Ba97], es posible realizar extracción de programas. El programa extraído en Coq será el mismo que se obtiene por medio de esta reducción. La diferencia está en el hecho que en Coq la extracción se realiza por medio de una función que esta por fuera de la teoría. En cambio, en la Teoría de Especificaciones la extracción de programas se realiza calculando la forma normal de una cierta reducción dentro de la teoría y además es posible obtener tanto la parte del programa f como la prueba de su corrección q.El modelo sintáctico obvio para esta teoría, es la misma teoría de Martin Löf donde la interpretación calcula la forma normal de esta nueva reducción. Como consecuencia inmediata de la corrección de esta interpretación, se obtiene que este sistema es normalizable. El estudio de la normalización fuerte es, en cambio, más delicado. Es necesario aplicar ciertas técnicas como interpretar los tipos en los llamados conjuntos saturados o codificar las expresiones nuevas dentro de la teoría de tipos de Martin Löf o dentro de algún cálculo lambda que se sepa fuertemente normalizable. Los miembros del proyecto han utilizado estas técnicas con éxito en otros cálculos, y los resultados obtenidos podrían aplicarse en este caso: Paula Severi estudió en su tesis de doctorado las propiedades de normalización de una clase de cálculos tipados, los Sistemas Puros de Tipos (PTS). El estudio de la normalización de un cálculo es importante entre otras razones porque el chequeo de tipos es decidible para aquellos sistemas que son normalizables. En [ Sev96b,Sev98] se simplificaron las reglas de los PTS's obteniendo los llamados Sistemas Puros de Tipos Débiles(WPTS); se estudió la propiedad de normalización y se definió un algoritmo de inferencia de tipos para los sistemas puros de tipos usando los sistemas debilitados. La ventaja de este algoritmo es que actúa sobre una clase de sistemas (los PTS's). La prueba de corrección de este algoritmo es delicada por ser un algoritmo general de inferencia de tipos. En el trabajo del proyecto PEDECIBA Una Sistema de Tipos para un Lenguaje Funcional con Constantes Polimorficas, Paula Severi definió un algoritmo de inferencia de tipos para un cálculo lambda tipado particular; se probó su corrección y se llevó a cabo su implementación.Para la Teoría de Especificaciones, en lugar de la Teoría de Martin Löf, se podría elegir algún cálculo lambda tipado donde se pueda expresar funciones proposicionales. Un buen candidato es el sistema l P. Esto sugiere la posibilidad de extender los Sistemas Puros de Tipos con este nuevo constructor para pares, y generalizar los resultados de normalización fuerte de Paula Severi a esta extensión. Maribel Fernández estudió las propiedades de normalización de extensiones de los sistemas del cubo de Barendregt (que incluye l P y el Cálculo de Construcciones) con reglas de reescritura de términos arbitrarios. Utilizando la técnica de los Predicados de Reductibilidad de Girard, que es equivalente al uso de conjuntos saturados, se demostró en [ BFG97] que todos estos sistemas son fuertemente normalizantes si las reglas de reducción agregadas tienen una forma particular, llamada esquema general de recursión. Este resultado también es válido en sistemas de tipos implícitos, como el sistema de tipos intersección (originalmente definido para el cálculo lambda [CDC80]), y extendido a combinaciones de cálculo lambda y reescritura en [BBF96]. En particular, el sistema intersección permite la caracterización por medio de tipos de los conjuntos de términos fuertemente normalizantes, y que tienen una ``head-normal-form'', es decir, que la raíz del término es estable luego de un cierto número de pasos de reducción.Otro objetivo de este trabajo es el estudio comparado de diferentes estrategias de reducción en la Teoría de Especificaciones, un paso hacia la implementación de la teoría. Para expresar estrategias, es importante que todas las etapas de cómputo sean descriptas de manera explícita en el sistema. Esto es posible por ejemplo utilizando los llamados cálculos de substituciones explícitas. El cálculo definido por Maribel Fernández e Ian Mackie [ FM99] permite también la representación explícita del manejo de recursos (duplicación y borrado). Existe una correspondencia entre la reducción en este sistema, y la reducción en un sistema de redes de interacción en el cual los términos se representan por medio de grafos. Actualmente se dispone de varias implementaciones (secuenciales y paralelas) [Pin00] de las redes de interacción.Las redes de interacción, derivadas de las redes de prueba de la Lógica Lineal, permiten la codificación del algoritmo de reducción optima en el cálculo lambda [ GAL92], y la definición de estrategias eficientes de reducción [Mac98b]. Estos resultados fueron obtenidos para un cálculo lambda con un sistema de tipos simples. La extensión de estos resultados a sistemas de tipos como F o lP es el punto de partida para el estudio de estrategias de reducción eficientes en la Teoría de Especificaciones.Finalmente, en programación funcional, las definiciones de tipos recursivos o inductivos juegan un papel esencial. Una extensión posible de la Teoría de Especificaciones consiste en agregar una noción de tipo inductivo general [ CP90,Ore92,Dyb93] a estos sistemas de tipos y ver su comportamiento con los pares. Este es un objetivo a largo plazo.Resumiendo, los principales resultados que se espera obtener son: una caracterización de las propiedades de normalización de la teoría, un algoritmo de control de tipos, y la definición de estrategias de reducción eficientes.
Actividades de FormaciónConcretamente, Maribel Fernández e Ian Mackie darán cursos sobre Lógica Lineal, y sus aplicaciones en Informática (desarrollo de lenguajes de programación), para el grupo de estudiantes de matemática y computación interesados en los temas de Lógica. Ian Mackie ha dado cursos de este tipo previamente en la Universidad de Minho (Portugal) y en la École Normale Supérieure (en el marco del Magisterio MMFAI). Maribel Fernández colabora en el curso de Lógica Informática del Magisterio MMFAI, y es responsable del curso Equivalencia de programas declarativos, que incluye lenguajes basados en el cálculo lambda tipado y en redes de interacción, en el DEA Programmation : Sémantique, Preuves et Langages, co-habilitado por las Universidades de Paris VI, Paris VII, Paris Sud (XI), École Normale Supérieure de Paris (Ulm), École Normale Supérieure de Cachan, École Polytechnique, et CNAM. Nora Szasz pertenece al grupo de Métodos Formales del In.Co., el cual tiene dentro de sus principales áreas de trabajo la investigación de métodos y herramientas de producción de programas de corrección certificada, con particular interés en aquellos basados en la Teoría de Tipos. Paula Severi es la única investigadora en el área de computación trabajando en este momento en la Facultad de Ciencias. Creemos que el intercambio entre el grupo del Prof. Giuseppe Longo de la École Normale Supérieure y tanto el grupo de Métodos Formales del In.Co. como el grupo en formación del Centro de Matemática será de grandes beneficios para la parte uruguaya. |
6. Antecedentes de cooperación con la contraparte francesa. Maribel Fernández y Paula Severi realizaron sus estudios de grado en la Facultad de Ingeniería (Uruguay). Posteriormente, Maribel Fernández ingresó a la Escuela Superior Latino Americana de Informática (ESLAI) en Argentina junto con Nora Szasz. Al término de estos estudios, Nora Szasz y Maribel Fernández obtuvieron puestos permanentes de docencia e investigación en la ESLAI y en este marco realizaron varios proyectos conjuntos, que incluyeron la dirección de pasantías y trabajos de grado sobre las teorías ecuacionales, y el desarrollo de un laboratorio para trabajar con estas teorías. Luego de terminar sus estudios de doctorado, Paula Severi obtuvo un puesto de profesor en la Facultad de Ciencias, y Nora Szasz en la Facultad de Ingeniería, donde Maribel Fernández e Ian Mackie han presentado sus trabajos en seminarios invitados en varias oportunidades. |
7. Recursos. Recursos ya asignados al proyecto, provenientes de otras fuentes de financiamiento: - Por el momento no se cuenta con recursos provenientes de otras fuentes de financiación. Recursos solicitados para el primer año de actividad: Número de misiones de Francia a Uruguay para investigadores formados: - Maribel Fernández: 1 mision de 3 semanas. - Ian Mackie: 1 mision de 3 semanas. Número de misiones de Uruguay a Francia para investigadores formados: - Nora Szasz: 1 mision de un mes. - Paula Severi: 1 mision de un mes. Estadías de duración media (3 a 6 meses) para investigadores en formación ---- Becas de doctorado para uruguayos, encaradas sobre la totalidad del programa. ---- |
8. Información Complementaria. Este proyecto NO ha sido presentado a ningún otro organismo, ni parcialmente. |
Fecha:
Nombre y Firma del responsable uruguayo del proyecto.
Dra. Nora Szasz
Nombre y firma del responsable del Instituto al que pertenece el responsable del proyecto.
La opinión del responsable se encuentra adjunta al presente documento
Ing. María Urquhart
Nombre y firma del Decano de la Facultad.
La opinión del Decano se encuentra adjunta al presente documento
Ing. María Simón
Atención
|