LMF2018: Deducción natural proposicional con Isabelle/HOL

En la clase de hoy del curso de Lógica matemática y fundamentos se ha completado la presentación de la deducción natural con Isabelle/HOL que se empezó en la clase anterior.

La presentación se basa en los ejemplos del tema 2 del curso 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 “LMF2018: Deducción natural proposicional con Isabelle/HOL”

Resumen de lecturas compartidas durante febrero de 2019

Esta entrada es una recopilación de lecturas compartidas, durante febrero de 2019, en Twitter fundamentalmente sobre programación funcional y demostración asistida por ordenador.

Las lecturas están ordenadas según su fecha de publicación en Twitter.

Al final de cada artículo se encuentran etiquetas relativas a los sistemas que usa o a su contenido.

Una recopilación de todas las lecturas compartidas se encuentra en GitHub.
Read More “Resumen de lecturas compartidas durante febrero de 2019”

I1M2018: Cálculo numérico en Haskell

En la tercera parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se han explicado las soluciones de los ejercicios de la relación 19, en la que se definen funciones para resolver los siguientes problemas de cálculo numérico:

  • diferenciación numérica,
  • cálculo de la raíz cuadrada mediante el método de Herón,
  • cálculo de los ceros de una función por el método de Newton y
  • cálculo de funciones inversas.

Un aspecto a destacar desde el punto de vista de la programación es el uso de la abstracción de procedimientos.

Los ejercicios, y sus soluciones, se muestran a continuación.
Read More “I1M2018: Cálculo numérico en Haskell”

I1M2018: Introducción a la programación imperativa con Maxima y Python

En la primera parte de la clase de hoy del curso de Informática de 1º del Grado en Matemáticas se ha presentado una introducción a la programación con Maxima.

En la presentación se ha seguido el siguiente guión:

  1. Maxima como calculadora
  2. Variables y asignaciones
  3. Bloques de instrucciones
  4. Definición de funciones
  5. Escritura y lectura
  6. La estructura condicional: condicionales simples y múltiple.
  7. Estructuras iterativas: bucles mientras, hasta y para.
  8. Recursión

Además, se ha comentado

En la segunda parte, se ha presentado una introducción a la programación con Python.

En la presentación se ha seguido el mismo guión con con Maxima reslatando la analogía entre ambos lenguajes y entre sus entornos (WxMaxima y Colaboratory).

El cuaderno de la presentación se encuentra Colaboratory.