LI2014: Modelos de Herbrand

En la segunda parte de la clase de hoy del curso de Lógica Informática se ha estudiado cómo se puede puede reducir la consistencia de conjuntos de cláusulas de primer orden a la consistencia de conjuntos de cláusulas proposicionales.

En primer lugar, se ha observado que la reducción es inmediata en el caso de fórmulas sin variables.

A continuación se han presentado procedimientos para construir los universos de Herbrand, las bases de Herbrand y las interpretaciones de Herbrand. Así como un procedimiento que transforma modelos de conjuntos de cláusulas en modelos de Herbrand. Por tanto, la consistencia de un conjunto de cláusulas se reduce a la búsqueda de modelos de Herbrand.

Finalmente, se ha explicado el teorema de Herbrand y su aplicación para decidir la consistencia de un conjunto de cláusulas buscando un subconjunto finito de su extensión de Herbrand que sea consistente (en el sentido proposicional).

Las transparencias de la clase son las del tema 11.

LI2014: Formas normales de Skolem y cláusulas

En la primera parte de la clase de hoy del curso de Lógica Informática se estudiado cómo se puede diseñar un procedimiento de forma que dada una fórmula F obtenga otra G que no tenga cuantificadores, que esté en forma normal conjuntiva y que sea equisatisfacible con F (es decir, que G es satisfacible precisamente si lo es F). Con dicho procedimiento se calcula la forma normal de Skolem. A partir de las formas se Skolem se obtienen las formas clausales.

Las transparencias de esta clase son las del tema 10

I1M2014: Programación de dibujos, fractales y animaciones en Haskell

En la clase de hoy de Informática de 1º del Grado en Matemáticas se ha explicado cómo programar dibujos, fractales y animaciones en Haskell.

En la primera parte, se ha explicado cómo se puede programar dibujos, fractales, animaciones y simulaciones usando CodeWorld siguiendo su tutorial.

En la segunda parte, se ha explicado cómo se puede hacer con la librería Gloss. Esta parte se ha divido a su vez en otras tres:

  • En la primera se explicado la programación de dibujos. En primer lugar, se ha explicado el tipo algebraico de datos de los dibujos: los componentes básicos (líneas, polígonos y textos), las listas de dibujos, las transformaciones geométricas (translaciones, giros y escalado) y el coloreado. A continuación, se han presentado las figuras básicas, la programación de dibujo con lista de comprensión y, finalmente, ejemplos de diseños descendentes de dibujos.

  • En la segunda se explicado la programación de fractales. En primer lugar, se ha expuesto el concepto de fractal y cómo aparecen los fractales en la naturaleza. A continuación, se han presentado la programación de los siguietes fractales: el árbol, la curva de Koch, el copo de nieve de Koch, el triángulo de Sierpinski y la curva del dragón.

  • En la tercera se ha explicado la programación de animaciones. En primer lugar, se ha expuesto la animación de dibujos simples con rotaciones, translaciones y variaciones del radio en función del tiempo. A continuación, se ha estudiado la animación de fractales.

Los apuntes y código utilzado son los siguientes