I1M2015: Funciones de orden superior en Haskell

En la clase de hoy de Informática de 1º del Grado en Matemáticas se han estudiado las funciones de orden superior y las funciones de procesamiento de listas (map y filter).

Además, se ha estudiado cómo puede abstraerse los esquemas definición de funciones de recursión sobre listas mediante la función de plegado (foldr) y cómo con dicha función puede simplificarse la definición de funciones.

A continuación se ha visto cómo definir funciones con acumuladores y cómo simplificarlas con el patrón de plegado por la izquierda (foldl).

Finalmente, se ha visto cómo puede simplificarse la definición de funciones usando el operador de composición.

En la segunda parte de la clase se ha explicado cómo trabajar en línea con Haskell usando el FP Haskell Center.

Las transparencias usadas en la clase son las páginas 1 a 22 del tema 7.

El codigo correspondiente se encuentra en GitHub.

LI2015: Resolución proposicional

En la clase de hoy del curso Lógica Informática hemos continuado la búsqueda de la automatización del razonamiento.

Comenzamos observando que, a partir de la forma normal conjuntiva, podemos representar las fórmulas, y los conjuntos de fórmulas, mediante conjunto de conjuntos de literales. Con esta nueva representación, basta una única regla de demostración: la regla de resolución. Esta regla engloba distintas reglas (como modus ponens, modus tollens y encadenamiento).

Mediante FNC, el problema de inconsistencia de un conjunto de de fórmulas se reduce al de la inconsistencia de un conjunto de cláusulas.

Mediante resolución, el problema de la inconsistencia de un conjunto de cláusulas se reduce a buscar la cláusula vacía entre las resolventes del conjunto S.

En la segunda parte de la clase se han comentado las soluciones de los ejercicios 4.10 y 4.12 del libro de ejercicios

Las transparencias de esta clase son las páginas 1 a 17 del tema 5

LI2015: Formales normales conjuntivas y disyuntivas

En la primera parte de la clase de hoy del curso Lógica Informática hemos continuado la búsqueda de métodos automáticos para el problema TAUT (i.e. decidir si una fórmula dada es una tautología) y el problema SAT (i.e decidir si una fórmula dada es satisfacible).

Comenzamos observando que:

  1. el problema TAUT se resuelve fácilmente para las fórmulas que son conjunciones de disyunciones de literales (es decir, están en forma normal conjuntiva (FNC)) y
  2. el problema SAT se resuelve fácilmente para las fórmulas que son disyunciones de conjunciones de literales (es decir, están en forma normal disyuntiva (FND)).

Por tanto,

  1. para la solución del problema TAUT sólo nos falta un procedimiento mecánico que dada una fórmula calcule otra que sea equivalente a la dada y que esté en FNC y
  2. para la solución del problema SAT sólo nos falta un procedimiento mecánico que dada una fórmula calcule otra que sea equivalente a la dada y que esté en FND.

Mostramos las reglas equivalencia para el cálculo de los formas normales y los procedimientos de decisión para los porblemas TAUT y SAT.

Finalmente, observamos cómo el método de los tableros semánticos proporciona otro procedimiento de cálculo de las formas normales.

En la segunda parte de la clase se han comentado la solución de los ejercicios 3.7 y 3.8 del libro de ejercicios

Las transparencias de esta clase son las del tema 4