Presentación de la lógica para informáticos

Existen distintas presentaciones de la lógica para informáticos.Quizás la más conocida sea Logic as The Calculus of Computer Science de P.G. Kolaitis y M.Y. Vardi. En la que presntan el papel que juega la lógica en la informática de manera análoga al del cálculo en la física.

Ayer nuestro compañero Joaquín Borrego publicó Introducción a la lógica
Es nueva presentación de la lógica para informáticos; en este caso, par los estudiantes de la asignatura de Lógica y computabilidad de segundo curso de la Ineniería Técnica en Informática de Sistemas.

Problemas filosóficos y errores matemáticos

He estado leyendo este fin de semana el libro 101 problemas de filosofía.

En el libro se presentan de forma amenas problemas filosóficos que tratan sobre la verdad, la relación entre la materia y el espíritu, la relación entre el espacio y el tiempo, la causalidad y el libre albedrío.

Aparte de los problemas filosóficos en el libro aparecen errores matemáticos como los dos que cito a continuación. El primero es relativo al teorema de incompletitud de Gödel, del que dice en la página 210,

Incluso Kurt Gödel, al proseguir los infructuosos intentos de Bertrand Russell por edificar la aritmética sobre cimientos firmes, fue incapaz de probarlo todo y, en su lugar, estableció la “Teoría de la incompletitud”, que demuestra que no se puede demostrar todo.

el segundo error es sobre los números complejos, de los que dice en la página 254

Los matemáticos creen que dos ejemplos contradictorios hacen precisamente esto. Creen que un número negativo multiplicado por otro número negativo producirá un número positivo. De hecho creen que esto es verdad por definición. Pero, al mismo tiempo, permiten que los números negativos tengan raíces cuadradas, lo que significa, esencialmente, que otro negativo se multiplique por sí mismo y que siga siendo negativo.

A pesar se dus errores matemáticos, os recomiendo la lectura del libro de los 101 problemas de filosofía.

El tipo abstracto de datos de los polinomios en Haskell

Como comenté en la entrada anterior, estoy elaborando los apuntes de los temas del curso Informática del Grado en Matemáticas (2010-11) no incluidos aún en el libro Temas de programación funcional (2010-11).

Uno de los temas en los que he estado trabajando últimamente es en el de los tipos abstractos de datos (TAD). Además de los habituales (pilas, colas, colas de prioridad, conjuntos, tablas, árboles binarios de búsqueda, montículos y árboles AVL), un TAD especialmente adecuado para los estudiantes de matemáticas es el de polinomios. A continuación muestro la implementación que estoy diseñando en Haskell para incluirla en el tema.

Del código deseo resaltar las siguientes características:

  • Independización de los resultados de las implementaciones mediante las funciones de escritura.
  • Comprobación de las implementaciones con QuickCheck mediante las funciones generadoras de polinomios.

A continuación muestro los ficheros con los códigos desarrollados.
Read More “El tipo abstracto de datos de los polinomios en Haskell”