LI2014: Semántica de la lógica proposicional

El objetivo fundamental de la clase de hoy del curso Lógica Informática ha consistido en responder estas dos preguntas:

  • ¿cómo se puede construir un programa para que dada una fórmula decida si es verdadera?
  • ¿cómo se puede construir un programa para que dada un conjunto de fórmulas S una fórmula F decida si es consecuencia de S?

Para responder a la primera pregunta, desarrollamos la semántica de la lógica proposicional. En primer lugar, el valor de verdad de una fórmula en una interpretación se define por recursión. A partir del valor de verdad podemos, dada una fórmula F, dividir las interpretaciones entre las que son modelo de F y las que no lo son. Además, las fórmulas pueden clasificarse en satisfacibles (las que tienen modelos) e insatisfacibles (en caso contrario). Las fórmulas satisfacibles se pueden clasificar en tautologías (para las que todas las interpretaciones son modelo) y contingentes (en caso contrario).

Hemos continuado planteando los problemas SAT y TAUT y presentando dos algoritmos para su solución: tablas de verdad y método de Quine.

Además, se han definidos los conceptos de equivalencia de fórmulas, modelos de conjuntos de fórmulas, conjuntos consistentes e inconsistentes y la relación de consecuencia lógica.

Las transparencias de esta clase son las páginas 14-30 del tema 1
Read More “LI2014: Semántica de la lógica proposicional”

I1M2014: Ejercicios de definiciones por composición sobre números, listas y booleanos

En la clase de hoy del curso de Informática de 1º del Grado en Matemáticas hemos comentado las soluciones de los ejercicios de la 1ª relación sobre definiciones por composición de funciones sobre números, listas y booleanos.

Los ejercicios y su solución se muestran a continuación
Read More “I1M2014: Ejercicios de definiciones por composición sobre números, listas y booleanos”

LI2014: Sintaxis de la lógica proposicional

La clase de hoy del curso Lógica Informática ha tenido dos partes.

En la primera parte se ha presentado un panorama de la lógica y sus aplicaciones a la informática. Como ejemplo de aplicación se ha mostrado cómo se puede generar automáticamente programas usando MagicHaskeller.

En la segunda parte se ha explicado la sintaxis de la lógica proposicional insistiendo en el carácter inductivo del tipo de datos de las fórmulas proposicionales, del procedimiento de definiciones por recursión sobre las fórmulas y de demostración de propiedades por inducción sobre las fórmulas.

Como tarea se ha propuesto resolver de los ejercicios de la 1ª relación.

Las transparencias de esta clase son las páginas 1-13 del tema 1
Read More “LI2014: Sintaxis de la lógica proposicional”

I1M2014: Introducción a la programación con Haskell

En la clase de hoy del curso Informática (de 1º de Grado en Matemáticas se ha presentado una introducción a la programación con Haskell usando emacs como entorno de programación. Concretamente, se ha explicado cómo

  • usar Haskell como calculadora aritmética (con las funciones +, -, *, /, div y ^).
  • escribir guiones de Haskell en emacs.
  • cargar los guiones y evaluar expresiones con las funciones definidas.

También se han comentado las funciones sobre números, listas y booleanos en el resumen de funciones.

Finalmente, se ha explicado cómo trabajar con las relaciones de ejercicios y la wiki. En el vídeo se resumen el procedimiento.

Como tarea para la próxima clase se ha propuesto escribir de manera colaborativa las soluciones de los ejercicios de la 1º relación.

Las transparencias usadas en la clase son las del tema 2:
Read More “I1M2014: Introducción a la programación con Haskell”

LI2014: Presentación del curso de “Lógica informática”

En la clase de hoy, se ha presentado el curso Lógica Informática siguiendo el plan de la asignatura. Se ha comentado el contenido de la asignatura, el sistema de evaluación y los materiales de la asignatura en la Red: