RA2019: Razonamiento estructurado sobre programas con Isabelle/HOL

En la clase de hoy del curso de Razonamiento automático se ha presentado cómo se puede demostrar propiedades de programas funcionales con Isabelle/HOL de forma estructurada con Isar.

Para ello, se ha visto cómo representar en Isabelle/HOL las demostraciones de propiedades de programas estudiadas en el tema 8 del curso de Informática.

Los métodos de demostración utilizados son razonamiento ecuacional, inducción sobre los números naturales, inducción sobre listas e inducción sobre esquemas correspondientes a definiciones recursivas.

Se ha usado Isabelle para analizar detalladamente las demostraciones
poniendo de relieve los lemas usados en cada paso. Para encontralos se
ha empleado la búsqueda de teoremas (con find_theorems) y la traza
(con using [[simp_trace]]).

La teoría con los ejemplos presentados en la clase es la siguiente:

Como tarea para la próxima clase se propuso la resolución de los ejercicios de la 3ª relación