RA2015: Razonamiento automático 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 “RA2015: Razonamiento automático sobre programas con Isabelle/HOL”

LI2015: Semántica de la lógica de primer orden

En la clase de hoy del curso Lógica Informática se ha completado el estudio de la semántica de la lógica de primer orden introduciendo los conceptos de consistencia, consecuencia lógica y equivalencia. Se ha explicado la metodología de búsqueda semántica de modelos y contramodelos.

Las transparencias de esta clase son las páginas 35 a 45 del tema 7:

I1M2015: Evaluación perezosa en Haskell

En la segunda parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se ha estudiado la evaluación perezosa en Haskell. Se han visto la estrategias de evaluación perezosa e impaciente, se han comparado respecto de la terminación y el número de pasos necesarios en las computaciones, se ha aplicado a la computación con estructuras infinitas y se han visto casos en los que se aumenta la eficiencia con evaluación estricta.

Como ejemplo, se ha estudiado el cálculo de los números primos mediante la criba de Erastótenes.

Finalmente, se ha explicado cómo instalar la librería de números primos mediante las siguientes órdenes del sistema

Como aplicación de la librería se han realizado cálculos con los primos de Mersenne.

Las transparencias usadas en la clase son las del tema 10

I1M2015: Declaraciones de clases y de instancias

En la primera parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se ha estudiado las clases en Haskell. Concretamente,

  • cómo definir clases con class,
  • cómo se define la clase Eq,
  • cómo ver en GHCi la información de una clase con :info Eq,
  • cómo definir instancias con instance,
  • cómo se define Bool como instancia de Eq,
  • cómo definir subclases,
  • cómo se define Ord como subclase de Eq,
  • cómo se define Bool como instancia de Ord y
  • cómo definir tipos de datos con clases derivadas.

Las transparencias usadas en la clase son las paginas 35 a 41 del tema 9: