Cubo lambda

Lambda-cube ( λ-cube ) es una clasificación visual de ocho cálculos lambda tipados con asignación de tipo explícita (sistemas de tipo Church ) . El cubo se organiza de acuerdo a las posibles dependencias entre los tipos y términos de este cálculo y forma una estructura natural para el cálculo de construcción . La idea del cubo λ fue propuesta en 1991 por el lógico y matemático holandés Henk Barendregt . Se pueden obtener más generalizaciones del cubo lambda considerando el sistema de tipo puro .

Estructura del cubo λ

En los sistemas de cubos λ, las variables se asignan a uno de dos tipos: o . Todas las expresiones válidas también se ordenan. La afirmación de que una expresión pertenece a un género se construye sobre la afirmación de tipo, es decir, la declaración dice lo siguiente: el elemento tiene un tipo y pertenece al género . La ordenación se usa para variables ordinarias y términos del cálculo λ, la ordenación  se usa para variables y expresiones de tipo. Por lo tanto, en los sistemas de cubos λ, los tipos de clasificación y los elementos de clasificación se tratan como intersecantes. Por ejemplo, el tipo de un término se puede escribir como un elemento de un tipo "superior" . Los tipos de cultivares a veces se denominan géneros .

La dependencia se entiende como la capacidad de definir y utilizar funciones que asignan elementos de un tipo a otro (o el mismo). Los elementos de un género dependen de los elementos de un género si:

El vértice base del cubo es el sistema correspondiente al cálculo lambda de tipo simple . Los términos (elementos de género ) dependen de los términos; Los tipos (elementos de clasificación ) no participan en las dependencias. Los tres ejes que emergen del vértice base dan lugar a los siguientes sistemas:

Los sistemas restantes son varias combinaciones de las dependencias enumeradas. El sistema más rico (cálculo lambda polimórfico de orden superior con tipos dependientes) es en realidad un cálculo de construcción .

Propiedades de los sistemas de cubos λ

Todos los sistemas de cubo lambda tienen la propiedad de normalización fuerte : cualquier término (y tipo) admisible puede reducirse a una sola forma normal después de un número finito de reducciones β .

Soporte en lenguajes de programación

Diferentes lenguajes funcionales admiten un subconjunto diferente de los sistemas de tipos representados en el cubo lambda.

Enlaces