Razonamiento automático (2016-17)
El curso es una introducción teórico-práctica a las técnicas de verificación formal y deducción lógica asistidas por ordenador, con un enfoque en el uso de Isabelle/HOL. A lo largo del curso se abordan temas como la programación funcional en Isabelle, el razonamiento automático y estructurado sobre programas escritos en Haskell e Isabelle/HOL, y diversas técnicas de prueba como el razonamiento por casos, por inducción y sobre estructuras como árboles y bosques. Además, se estudian casos prácticos de verificación de algoritmos clásicos, como la ordenación por inserción y por mezcla, y la compilación de expresiones. El curso también cubre fundamentos de lógica, incluyendo deducción natural tanto proposicional como en lógica de primer orden, y su implementación en Isabelle/HOL. Las sesiones prácticas están organizadas en una serie de relaciones de ejercicios que permiten aplicar los conceptos teóricos en problemas concretos, reforzando la comprensión y el dominio de las herramientas formales.
La asignatura forma parte del Máster Universitario en Lógica, Computación e Inteligencia Artificial impartido por el Departamento de Ciencias de la Computación e Inteligencia Artificial de la Universidad de Sevilla.
Temas
- Tema 1: Programación funcional en Isabelle.
- Tema 2a: Razonamiento sobre programas Haskell
- Tema 2b: Razonamiento automático sobre programas en Isabelle/HOL.
- Tema 3: Razonamiento estructurado sobre programas en Isabelle/HOL.
- Tema 4: Razonamiento por casos y por inducción.
- Tema 5: Razonamiento sobre árboles y bosques.
- Tema 6a: Verificación de la ordenación por inserción.
- Tema 6b: Verificación de la ordenación por mezcla.
- Tema 7: Caso de estudio: Compilación de expresiones.
- Tema 8a: Deducción natural proposicional.
- Tema 8b: Deducción natural proposicional con Isabelle/HOL.
- Tema 9a: Deducción natural en lógica de primer orden.
- Tema 9b: Deducción natural en lógica de primer orden con Isabelle/HOL
- Tema 10: Conjuntos, funciones y relaciones.
Ejercicios
- Relación 1: Programación funcional en Isabelle/HOL.
- Relación 2: Razonamiento automático sobre programas en Isabelle/HOL.
- Relación 3: Razonamiento estructurado sobre programas en Isabelle/HOL.
- Relación 4: Cuantificadores sobre listas.
- Relación 5: Eliminación de duplicados.
- Relación 6: Recorridos de árboles.
- Relación 7: Árboles binarios completos.
- Relación 8: Deducción natural proposicional en Isabelle/HOL.
- Relación 9: Deducción natural LPO en Isabelle/HOL.
- Relación 10: Formalización y argumentación en Isabelle/HOL.
Bibliografía
Visiones generales de la DAO
- J.A. Alonso. Razonamiento formalizado: Del sueño a la realidad de las pruebas. Vestigium, 26 de diciembre de 2012.
- J. Avigad. Interactive theorem proving, automated reasoning, and mathematical computation. ICERM, 14 de diciembre de 2012.
- M. Davis. The early history of automated deduction.
- J.P. Delahaye Du rêve à la réalité des preuves. Interstices, 8 de julio de 2012.
- J. Germoni Coq et caractères: Preuve formelle du théorème de Feit et Thompson. Images des Mathématiques, CNRS, 23 de noviembre de 2012.
- H. Geuvers Proof assistants: History, ideas and future. Sadhana, Vol. 34-1, pp. 3-25, février 2009.
- G. Gonthier The four-color theorem. Notices of the AMS, Vol. 55, n° 11, pp. 1382-1393, 2008.
- T. Hales. Formal proof. Notices of AMS, Vol. 55, N. 11 (2008) pp. 1370-1380.
- J. Harrison. A short survey of automated reasoning. Lecture Notes in Computer Science, Vol. 4545, pp. 334-349, 2007.
- J. Harrison. Formal proof: Theory and practice. Notices of the AMS, Vol. 55, N. 11 (2008) p.1395-1406.
- G. Kolata. Computer math proof shows reasoning power. The New York Times, 10 de diciembre de 1996.
- D. MacKenzie Computers and the sociology of mathematical proof.
- G. Sutcliffe. What is automated theorem proving?.
- F. Wiedijk Formalizing the «top 100» of mathematical theorems.
- F. Wiedijk Formal proof - Getting started. Notices of the AMS, Vol. 55, n° 11, pp. 1408-1414, 2008.
- F. Wiedijk, The QED manifesto revisited. Studies in Logic, Grammar and Rhetoric, Vol. 10(23), pp. 121-133, 2007.
Referencias sobre Isabelle/HOL
- B. Grechuk Isabelle primer for mathematicians.
- T. Nipkow Programming and proving in Isabelle/HOL.
- T. Nipkow, M. Wenzel y L.C. Paulson A proof assistant for higher-order logic.
- Isabelle/HOL — Higher-Order Logic.
- Tutorials and manuals for Isabelle.
Lecturas complementarias
Programación funcional
- J.A. Alonso Temas de "Programación funcional". Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.
- J.A. Alonso y M.J. Hidalgo Piensa en Haskell (Ejercicios de programación funcional con Haskell). Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.
- G. Hutton Programming in Haskell. Cambridge University Press, 2007.
- M. Lipovača ¡Aprende Haskell por el bien de todos!.
Lógica computacional
- J.A. Alonso Temas de "Lógica informática" (2012-13). Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.
- R. Bornat Proof and disproof in formal logic: an introduction for programmers. Oxford University Press, 2005.
- K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers Reasoned programming. Imperial College, 1994.
- K. Doets y J. van Eijck The Haskell road to logic, maths and programming.
- M. Huth y M. Ryan Logic in computer science: Modelling and reasoning about systems. Cambridge University Press, 2004. (Incluye el tutor en la Red).
Cursos relacionados
Cursos con Isabelle/HOL
- Clemens Ballarin y Gerwin Klein Introduction to the Isabelle proof assistant. (en el IJCAR-2004).
- A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. Computer-supported modeling and reasoning. (ETH Zurich, 2011).
- Mads Dam. Advanced formal methods. (KTH Royal Institute of Technology, 2007).
- Jacques Fleuriot y Paul Jackson. Automated reasoning. (Univ. de Edimburgo, 2012-13).
- Thomas Genet Software formal analysis and design. (Univ. de Rennes)
- Gerwin Klein. Theorem proving - Principles, techniques, applications. (NICTA, 2004).
- Gerwin Klein. Advanced topics in software verification. (NICTA, 2012).
- Joao Marcos. Lógica computacional: Demonstração assistida e semi-automática de teoremas.(UFRN, 2000).
- Tobias Nipkow. Semantics of programming languages. (Univ. de Munich, 2012-13).
- Tobias Nipkow Theorem proving with Isabelle/HOL: an intensive course.
- Larry Paulson. Interactive formal verification. (Univ. de Cambridge, 2009-10).
- Jan-Georg Smaus. Computer-supported modeling and reasoning. (Univ. de Feiburgo, 2009).
- Christian Sternagel Experiments in verification – Introduction to Isabelle/HOL. (Univ. de Innsbruck, 2011-12).
- Tjark Weber. Interactive formal verification. (Univ. de Cambridge, 2010-11).
Otros cursos
- José A. Alonso Lógica informática (Univ. de Sevilla, 2012-13).
- Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi Modelling and verifying algorithms in Coq: an introduction. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).
- Pierre Castéran Logic (Master in verification) (Univ. de Burdeos, 2011-12).
- Peter Lucas Knowledge representation and reasoning (Radboud University # egen, 2011-12).
- Larry Paulson Logic and proof (Univ. de Cambridge, 2011-12).
- Riccardo Pucella Logic and computation (Northeastern University, 2009). Curso con ACL2.