Generalised Algebraic Data Types

Juan Pablo Yamamoto
jpyamamoto[at]ciencias.unam.mx
Lógica Computacional II. Semestre 2025-1.

Requisitos Previos

Codificación de Naturales como Tipos

Codificamos los tipos naturales al nivel de tipos, no nos interesa que tengamos términos que los representen (constructores).

Vectores

Teniendo números naturales, podemos codificar los vectores como listas dependientes de un natural.

Funciones seguras

Definición de head:

Definición de tail:

Definición de map:

Append

¿Cuál sería el tipo que corresponde?

append :: Vec a m -> Vec a n -> Vec a ???

Suma de Naturales

Damos evidencia de los tipos, para definir la suma.