RA2014: Razonamiento por casos y por inducción en Isabelle/HOL

En la segunda parte de la clase de hoy del curso de Razonamiento automático hemos profundizado en el estudio de las demostraciones por casos y por inducción. En concreto, se ha estudiado

  • el razonamiento por casos booleanos,
  • el razonamiento por casos booleanos sobre una variable,
  • el razonamiento por casos sobre listas,
  • el razonamiento por inducción sobre números naturales con patrones,
  • el razonamiento sobre definiciones con existenciales,
  • el uso de librerías auxiliares (como Parity) y
  • el uso de otros métodos de demostración (como presburg).

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

RA2014: Ejercicios de razonamiento automático sobre programas con Isabelle/HOL

En la primera parte de la clase de hoy del curso de Razonamiento automático se ha comentado las soluciones de la 3ª relación de ejercicios cuyo objetivo es demostrar con Isabelle/HOL propiedades de programas.

Los ejercicios y sus soluciones se muestran a continuación
Read More “RA2014: Ejercicios de razonamiento automático sobre programas con Isabelle/HOL”

RA2014: 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.

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.

La teoría con los ejemplos presentados en la clase es la siguiente:
Read More “RA2014: Razonamiento estructurado sobre programas con Isabelle/HOL”

RA2014: Presentación del curso

En la clase de hoy del curso Razonamiento automático se ha hecho una presentación del mismo, comentando los siguientes puntos

  1. Objetivo: El objetivo fundamental del curso es la verificación de programas y de demostraciones matemáticas. Su necesidad se basa en la seguridad de sistemas críticos, en los teoremas incompletos y en los teoremas enormes (como el teorema de los 4 colores). Una colección de ejemplos de verificación se encuentra en The Archive of Formal Proofs.

  2. Sistema: El sistema que se usará es Isabelle/HOL.

  3. Punto de partida: El punto de partida es el conocimiento de la programación funcional con Haskell (correspondiente a los 10 primeros temas del curso de informática) y de la deducción natural (correspondiente a los temas 2 y 8 del curso de Lógica informática).

  4. Metodología: El curso será esencialmente práctico con relaciones semanales de ejercicio. El material del curso se irá publicando en la página del curso, en la se pondrá los

    • temas (con las teorías de cada tema),
    • ejercicios (con los relaciones de ejercicios),
    • documentación (con enlaces a lecturas recomendadas),
    • sistemas (con enlaces a los sistemas utilizados) y
    • diario (con el resumen de cada clase).

Las dos referencias fundamentales son los apuntes Programming and proving in Isabelle/HOL y el libro A proof assistant for higher-order logic.

Como tareas para la próxima clase se propusieron:

  1. Instalar Isabelle/HOL.
  2. Leer alguna de las visiones generales del razonamiento automático.