Matita [ 1 ] es un asistente de demostración experimental en desarrollo en el Departamento de Informática de la Universidad de Bolonia . Es una herramienta que facilita el desarrollo de demostraciones formales mediante la colaboración humano-máquina, proporcionando un entorno de programación donde coexisten de forma natural las especificaciones formales , los algoritmos ejecutables y los certificados de corrección verificables automáticamente.
Matita se basa en un sistema de tipos dependientes conocido como cálculo de construcciones (co)inductivas (un derivado del cálculo de construcciones ) y es compatible, hasta cierto punto, con Rocq .
La palabra «matita» significa «lápiz» en italiano (una herramienta de edición sencilla y muy extendida). Es una aplicación relativamente pequeña y sencilla, [ 2 ] cuya complejidad arquitectónica y de software está pensada para que los estudiantes la dominen, proporcionando una herramienta especialmente adecuada para probar ideas y soluciones innovadoras. Matita adopta un modo de edición basado en tácticas ; se generan objetos de prueba ( codificados en XML ) para su almacenamiento e intercambio.
Características principales
Las variables existenciales son nativas en Matita, lo que permite una gestión más sencilla de los objetivos dependientes. [ 3 ]
Matita implementa un algoritmo de inferencia de tipos bidireccional [ 4 ] que explota tanto los tipos inferidos como los esperados.
El poder del sistema de inferencia de tipos (refinador) se ve aumentado aún más por un mecanismo de sugerencias [ 5 ] que ayuda a sintetizar unificadores en situaciones particulares especificadas por el usuario.
Matita admite una estrategia de desambiguación sofisticada [ 6 ] basada en un diálogo entre el analizador sintáctico y el verificador de tipos .
A nivel interactivo, el sistema implementa una ejecución paso a paso de tácticas estructuradas [ 7 ] que permite una gestión mucho mejor del desarrollo de la prueba y, naturalmente, conduce a scripts más estructurados y legibles.
Aplicaciones
Matita ha trabajado en CerCo (Certified Complexity): un proyecto europeo del FP7 centrado en el desarrollo de un compilador formalmente verificado que preserva la complejidad, desde un gran subconjunto de C al lenguaje ensamblador de un microprocesador MCS-51 .
Documentación
El tutorial de Matita [ 8 ] proporciona una introducción pragmática a las principales funcionalidades del demostrador de teoremas interactivo Matita, ofreciendo un recorrido guiado a través de un conjunto de ejemplos no triviales en el campo de la especificación y verificación de software .
Véase también
Referencias
- ↑ Andrea Asperti, Wilmer Ricciotti, Claudio Sacerdoti Coen, Enrico Tassi. "El demostrador interactivo del teorema de Matita": CADE-23, LNCS 6803, 2011, págs .
- ^ Aspertí, A.; Ricciotti, W.; Sacerdoti Coen, C.; Tassi, E. (2009). "Un núcleo compacto para el cálculo de construcciones inductivas" . Sadhana . 34 : 71– 144. doi : 10.1007/s12046-009-0003-3 .
- ^ Andrea Asperti, Wilmer Ricciotti, C Sacerdoti Coen, Enrico Tassi. "Un nuevo tipo de táctica": Informe Técnico UBLCS-2009-14. Junio de 2009.
- ↑ Andrea Asperti, Wilmer Ricciotti, C. Sacerdoti Coen, Enrico Tassi. "Un algoritmo de refinamiento bidireccional para el cálculo de construcciones (co)inductivas" Métodos lógicos en informática, vol. 8, n.º 1
- ^ Andrea Asperti, Wilmer Ricciotti, C Sacerdoti Coen, Enrico Tassi. "Consejos para la unificación": LNCS V.5674, 2009, págs. 84-98
- ^ Claudio Sacerdoti Coen, Stefano Zacchiroli "Análisis ambiguo eficiente de fórmulas matemáticas" LNCS V.3119, 2004, págs. 347-362
- ^ Claudio Sacerdoti Coen, Enrico Tassi, Stefano Zacchiroli "Tinycals: Tácticas paso a paso" ENTCS V.174, n.2, 2007, páginas 125-142
- ↑ Andrea Asperti, Wilmer Ricciotti, Claudio Sacerdoti Coen "Tutorial Matita" Revista de Razonamiento Formalizado, V.7, n. 2, 2014, páginas 91-199
Enlaces externos
- El Asistente de Pruebas de Matita en Wayback Machine (archivado el 4 de febrero de 2023)
- Proyecto CerCo en Wayback Machine (archivado el 21/05/2022)
- Asistentes de corrección
- Demostradores de teoremas gratuitos
- Lenguajes con tipado dependiente
- Software educativo de matemáticas
- Software que utiliza la Licencia Pública General de GNU.
- Software libre programado en OCaml
- Lenguajes funcionales