I1M2017: El TAD de los polinomios en Haskell

En la clase de hoy de Informática de 1º del Grado en Matemáticas hemos estudiado el tipo abstracto de los polinomios y su implementación en Haskell.

Comenzamos la clase analizando las posibles representaciones de los polinomios y, como consecuencia, establecer la signatura y las propiedades del TAD de los polinomios.

A continuación, estudiamos tres prosibles representaciones del TAD de los polinomios mediante tipos algebraicos, mediantes listas dispersas y mediante listas densas y sus implementaciones en Haskell

Finalmente, hemos estudiado las operaciones con los polinomios usando el TAD de los polinomios.

Los apuntes correspondientes a la clase son

LMF2017: Deducción natural de primer orden con Isabelle/HOL

En la clase de hoy del curso de Lógica matemática y fundamentos se ha presentado la deducción natural de primer orden Isabelle/HOL. La presentación se basa en los ejemplos del tema 8 que, a su vez, se basa en el capítulo 2 del libro de Huth y Ryan Logic in Computer Science (Modelling and reasoning about systems).

La página al lado de cada ejemplo indica la página de las transparencias donde se encuentra la demostración.

Para cada ejemplo se presentan distintas demostraciones. La primera intenta reflejar la demostración de las transparencias, las siguientes van eliminando detalles de la prueba hasta la última que es automática.

A los largos de los ejemplos se van comentando los elementos del lenguaje conforme van entrando en el juego.

La teoría con los ejemplos presentados en la clase es la siguiente:
Read More “LMF2017: Deducción natural de primer orden con Isabelle/HOL”

I1M2017: Las librerías de conjuntos y de diccionarios en Haskell

En la segunda parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se han estudiado las librerías de diccionarios y de conjuntos en Haskell.

Como primera aproximación se ha explicado su exposición en ¡Aprende Haskell por el bien de todos!. Concretamente las secciones: Data.Map y Data.Set.

En segundo lugar se ha comentado las funciones con las librerías con sus ejemplos:

Finalmente, para comentar las complejidades de las funciones, se ha visto la documentación de las librerías Data.Set y Data.Map.

I1M2017: El TAD de los conjuntos en Haskell

En la primera parte de la clase de hoy de Informática de 1º del Grado en Matemáticas hemos estudiado el tipo abstracto de datos de los conjuntos y tres de sus implementaciones en Haskell.

Se ha seguido el mismo patrón que en los anteriores tipos de datos:

  • elección de las operaciones básicas,
  • especificación de sus propiedades,
  • implementación en Haskell mediante no ordenadas con duplicados,
  • implementación en Haskell mediante listas no ordenadas sin duplicados,
  • implementación en Haskell mediante listas ordenadas sin duplicados,
  • análisis de la complejidad de las definiciones de las operaciones básicas en las tres implementaciones y
  • verificación con QuickCheck de sus propiedades características.

Los apuntes correspondientes a la clase son