El cálculo lambda tipado simplemente ( ), una forma de teoría de tipos , es una interpretación tipada del cálculo lambda con un solo constructor de tipos ( ) que construye tipos de funciones . Es el ejemplo canónico y más simple de un cálculo lambda tipado. El cálculo lambda tipado simple fue introducido originalmente por Alonzo Church en 1940 como un intento de evitar el uso paradójico del cálculo lambda no tipado . [ 1 ]
El término tipo simple también se utiliza para referirse a extensiones del cálculo lambda de tipo simple con construcciones como productos , coproductos o números naturales ( Sistema T ) o incluso recursión completa (como PCF ). Por el contrario, los sistemas que introducen tipos polimórficos (como el Sistema F ) o tipos dependientes (como el Marco Lógico ) no se consideran de tipo simple . Los tipos simples, excepto la recursión completa, todavía se consideran simples porque las codificaciones de Church de tales estructuras se pueden hacer utilizando soloy variables de tipo adecuadas, mientras que el polimorfismo y la dependencia no pueden.
Sintaxis
En la década de 1930, Alonzo Church buscó utilizar el método logístico : [ a ] su cálculo lambda , como lenguaje formal basado en expresiones simbólicas, consistía en una serie numerablemente infinita de axiomas y variables, [ b ] pero también un conjunto finito de símbolos primitivos, [ c ] que denotaban abstracción y alcance, así como cuatro constantes: negación, disyunción, cuantificación universal y selección respectivamente; [ d ] [ e ] y también, un conjunto finito de reglas I a VI. Este conjunto finito de reglas incluía la regla V modus ponens, así como IV y VI para sustitución y generalización respectivamente. [ d ] Las reglas I a III se conocen como conversión alfa, beta y eta en el cálculo lambda. Church buscó utilizar el inglés solo como un lenguaje sintáctico (es decir, un lenguaje metamatemático) para describir expresiones simbólicas sin interpretaciones. [ f ]
En 1940, Church optó por una notación de subíndice para denotar el tipo en una expresión simbólica. [ b ] En su presentación, Church utilizó solo dos tipos base:para "el tipo de proposiciones" ypara "el tipo de individuos". El tipono tiene constantes de término, mientras quetiene un término constante. Frecuentemente el cálculo con un solo tipo base, usualmente , se considera. Los subíndices de las letras griegas , , etc. denotan variables de tipo; el subíndice entre paréntesisindica el tipo de función . Iglesia 1940 p.58 usó 'flecha o ' para denotar significa , o es una abreviatura de . [ g ] En la década de 1970 se utilizaba la notación de flecha independiente; por ejemplo, en este artículo símbolos sin subíndiceypuede abarcar varios tipos. El número infinito de axiomas se consideró entonces una consecuencia de aplicar las reglas I a VI a los tipos (véase axiomas de Peano ). De manera informal, el tipo de funciónse refiere al tipo de funciones que, dada una entrada de tipo , producir una salida de tipo . Por convención,asociados a la derecha:se lee como .
Para definir los tipos, un conjunto de tipos base , , primero deben definirse. A veces se les llama tipos atómicos o constantes de tipo . Una vez corregido esto, la sintaxis de los tipos es:
Por ejemplo , , genera un conjunto infinito de tipos que comienzan con ,,,,,,, ... ,, ...
También se fija un conjunto de constantes de término para los tipos base. Por ejemplo, se podría suponer que uno de los tipos base es nat , y sus constantes de término podrían ser los números naturales.
La sintaxis del cálculo lambda de tipos simples es esencialmente la del propio cálculo lambda. El términodenota que la variablees de tipo . El término sintaxis, en forma Backus-Naur , es referencia variable , abstracciones , aplicación o constante :
dóndees un término constante. Una referencia variableSe considera vinculado si se encuentra dentro de una vinculación de abstracción .Un término es cerrado si no hay variables no ligadas .
En comparación, la sintaxis del cálculo lambda sin tipado no tiene tales tipos ni constantes de término:
Mientras que en el cálculo lambda tipado, cada abstracción (es decir, función) debe especificar el tipo de su argumento.
Reglas de mecanografía
Para definir el conjunto de términos lambda bien tipados de un tipo dado, se define una relación de tipado entre términos y tipos. Primero, se introducen contextos de tipado o entornos de tipado ., que son conjuntos de supuestos de tipado. Un supuesto de tipado tiene la forma , que significa variabletiene tipo .
La relación de tipadoindica quees un término de tipoen contexto . En este casoSe dice que está bien tipificado (teniendo tipo ). Las instancias de la relación de tipado se denominan juicios de tipado . La validez de un juicio de tipado se demuestra proporcionando una derivación de tipado , construida utilizando reglas de tipado (en la que las premisas por encima de la línea nos permiten derivar la conclusión por debajo de la línea). El cálculo lambda tipado simple utiliza estas reglas: [ h ]
En palabras,
- Sitiene tipoen ese contexto, entoncestiene tipo .
- Las constantes de término tienen los tipos base apropiados.
- Si, en cierto contexto conque tiene tipo ,tiene tipo , entonces, en el mismo contexto sin ,tiene tipo .
- Si, en cierto contexto,tiene tipoytiene tipo, entoncestiene tipo .
Ejemplos de términos cerrados, es decir, términos que se pueden tipificar en el contexto vacío, son:
- Para cada tipo , un término( función identidad /I-combinador),
- Para tipos , un término(el combinador K) y
- Para tipos , un término(el combinador S).
Estas son las representaciones tipificadas en cálculo lambda de los combinadores básicos de la lógica combinatoria .
Cada tipoSe le asigna un orden, un número . . Para tipos base, ; para tipos de función , . Es decir, el orden de un tipo mide la profundidad de la flecha anidada más a la izquierda. Por lo tanto:
Semántica
Interpretaciones intrínsecas frente a extrínsecas
En términos generales, existen dos maneras diferentes de asignar significado al cálculo lambda simplemente tipado, al igual que a los lenguajes tipados en general, denominadas intrínsecas frente a extrínsecas, ontológicas frente a semánticas, o de estilo Church frente a de estilo Curry. [ 1 ] [ 7 ] [ 8 ] Una semántica intrínseca solo asigna significado a términos bien tipados, o más precisamente, asigna significado directamente a las derivaciones de tipado. Esto tiene como efecto que a términos que difieren únicamente en las anotaciones de tipo se les pueden asignar significados diferentes. Por ejemplo, el término identidadsobre los números enteros y el término identidadEn los booleanos, puede significar cosas diferentes. (Las interpretaciones clásicas previstas son la función identidad en los enteros y la función identidad en los valores booleanos). En contraste, una semántica extrínseca asigna significado a los términos independientemente de su tipado, como se interpretarían en un lenguaje sin tipado. Desde esta perspectiva,ysignifican lo mismo (es decir, lo mismo que ).
La distinción entre semántica intrínseca y extrínseca se asocia a veces con la presencia o ausencia de anotaciones en abstracciones lambda, pero, estrictamente hablando, este uso es impreciso. Es posible definir una semántica extrínseca en términos anotados simplemente ignorando los tipos (es decir, mediante el borrado de tipos ), al igual que es posible dar una semántica intrínseca a términos no anotados cuando los tipos se pueden deducir del contexto (es decir, mediante la inferencia de tipos ). La diferencia esencial entre los enfoques intrínseco y extrínseco radica en si las reglas de tipado se consideran como la definición del lenguaje o como un formalismo para verificar propiedades de un lenguaje subyacente más primitivo. La mayoría de las diferentes interpretaciones semánticas que se analizan a continuación pueden verse desde una perspectiva intrínseca o extrínseca.
Teoría de ecuaciones
El cálculo lambda tipado simple (STLC) tiene la misma teoría ecuacional de βη-equivalencia que el cálculo lambda no tipado , pero sujeto a restricciones de tipo. La ecuación para la reducción beta [ i ]
se sostiene en contextocuando seay , mientras que la ecuación para la reducción de eta [ j ]
se mantiene siempreyno aparece libre enLa ventaja del cálculo lambda tipado es que STLC permite acortar (es decir, reducir ) los cálculos potencialmente no terminantes. [ 9 ]
Semántica operacional
Asimismo, la semántica operacional del cálculo lambda simplemente tipado puede fijarse como en el cálculo lambda no tipado, utilizando la evaluación por nombre , por valor u otras estrategias de evaluación . Como en cualquier lenguaje tipado, la seguridad de tipos es una propiedad fundamental de todas estas estrategias de evaluación. Además, la fuerte propiedad de normalización descrita a continuación implica que cualquier estrategia de evaluación terminará en todos los términos simplemente tipados. [ 10 ]
Semántica categórica
El cálculo lambda tipado simple enriquecido con tipos de producto, operadores de emparejamiento y proyección (con-equivalencia) es el lenguaje interno de las categorías cerradas cartesianas (CCC), como observó por primera vez Joachim Lambek . [ 11 ] Dada cualquier CCC, los tipos básicos del cálculo lambda correspondiente son los objetos , y los términos son los morfismos . Recíprocamente, el cálculo lambda simplemente tipado con tipos producto y operadores de emparejamiento sobre una colección de tipos base y términos dados forma una CCC cuyos objetos son los tipos, y los morfismos son clases de equivalencia de términos.
Existen reglas de tipado para emparejamiento , proyección y término unitario . Dados dos términosy , el términotiene tipo . Asimismo, si uno tiene un plazo , entonces hay términosydonde elcorresponden a las proyecciones del producto cartesiano. El término unitario , de tipo 1, escrito comoy vocalizado como 'nil', es el objeto final . La teoría ecuacional se extiende de igual manera, de modo que uno tiene
Esto último se lee como " si t tiene tipo 1, entonces se reduce a cero ".
Lo anterior se puede convertir entonces en una categoría tomando los tipos como objetos . Los morfismosson clases de equivalencia de paresdonde x es una variable (de tipo ) y t es un término (de tipo ), que no contiene variables libres, excepto (opcionalmente) x . El conjunto de términos en el lenguaje es el cierre de este conjunto de términos bajo las operaciones de abstracción y aplicación .
Esta correspondencia puede extenderse para incluir "homomorfismos de lenguaje" y functores entre la categoría de categorías cartesianas cerradas y la categoría de teorías lambda simplemente tipadas.
Parte de esta correspondencia puede extenderse a categorías monoidales simétricas cerradas mediante el uso de un sistema de tipos lineal .
Semántica de la teoría de la demostración
El cálculo lambda de tipos simples está estrechamente relacionado con el fragmento implicacional de la lógica intuicionista proposicional , es decir, el cálculo proposicional implicacional , a través del isomorfismo de Curry-Howard : los términos corresponden precisamente a las demostraciones en la deducción natural , y los tipos habitados son exactamente las tautologías de esta lógica.
A partir de su método logístico, Church 1940 [ 1 ] p.58 estableció un esquema axiomático , [ 1 ] p. 60, que Henkin 1949 completó [ 3 ] con dominios de tipo (por ejemplo, los números naturales, los números reales, etc.). Henkin 1996 p. 146 describió cómo el método logístico de Church podría buscar proporcionar una base para las matemáticas (aritmética de Peano y análisis real), [ 4 ] a través de la teoría de modelos .
Sintaxis alternativas
La presentación dada anteriormente no es la única forma de definir la sintaxis del cálculo lambda de tipos simples.
Borrado de tipos
Una alternativa es eliminar por completo las anotaciones de tipo (de modo que la sintaxis sea idéntica al cálculo lambda sin tipado), al tiempo que se garantiza que los términos estén bien tipados mediante la inferencia de tipos de Hindley-Milner . El algoritmo de inferencia es terminante, sólido y completo: siempre que un término sea tipificable, el algoritmo calcula su tipo. Más precisamente, calcula el tipo principal del término , ya que a menudo un término sin anotar (como ) puede tener más de un tipo ( ,, etc., que son todos ejemplos del tipo principal ).
Verificación de tipos bidireccional
Otra presentación alternativa del cálculo lambda tipado simple se basa en la verificación de tipos bidireccional [ 12 ] , que requiere más anotaciones de tipo que la inferencia de Hindley-Milner pero es más fácil de describir. El sistema de tipos se divide en dos juicios, que representan tanto la verificación como la síntesis , escritosyrespectivamente. Operacionalmente, los tres componentes,yson todos insumos para el juicio de verificación , mientras que el juicio de síntesissolo tomaycomo entradas, produciendo el tipocomo resultado. Estos juicios se derivan mediante las siguientes reglas:
Obsérvese que las reglas [1]–[4] son casi idénticas a las reglas (1)–(4) anteriores , salvo por la cuidadosa selección de los juicios de verificación o síntesis. Estas selecciones pueden explicarse de la siguiente manera:
- Siestá en el contexto, podemos sintetizar tipopara .
- Los tipos de constantes de término son fijos y pueden sintetizarse.
- Para comprobar esotiene tipoEn algún contexto, extendemos el contexto cony comprobar quetiene tipo .
- Sisintetiza tipo(en algún contexto), ycomprobaciones contra el tipo(en el mismo contexto), entoncessintetiza tipo .
Obsérvese que las reglas de síntesis se leen de arriba abajo, mientras que las reglas de verificación se leen de abajo arriba. Nótese en particular que no necesitamos ninguna anotación en la abstracción lambda de la regla [3], porque el tipo de la variable ligada se puede deducir del tipo en el que verificamos la función. Finalmente, explicamos las reglas [5] y [6] de la siguiente manera:
- Para comprobar esotiene tipo , basta con sintetizar el tipo .
- Sicomprobaciones contra el tipo , entonces el término anotado explícitamentesintetiza .
Debido a estas dos últimas reglas que establecen una relación entre síntesis y verificación, es fácil ver que cualquier término bien tipificado pero sin anotaciones puede verificarse en el sistema bidireccional, siempre que insertemos suficientes anotaciones de tipo. De hecho, las anotaciones solo son necesarias en los β-redexes.
Observaciones generales
Dada la semántica estándar, el cálculo lambda simplemente tipado es fuertemente normalizador : toda secuencia de reducciones termina eventualmente. [ 10 ] Esto se debe a que la recursión no está permitida por las reglas de tipado: es imposible encontrar tipos para combinadores de punto fijo y el término de bucle .La recursión se puede agregar al lenguaje mediante un operador especial .de tipoo agregando tipos recursivos generales , aunque ambos eliminan la normalización fuerte.
A diferencia del cálculo lambda sin tipos, el cálculo lambda con tipos simples no es Turing completo . Todos los programas en el cálculo lambda con tipos simples terminan. En el cálculo lambda sin tipos, existen programas que no terminan y, además, no existe un procedimiento de decisión general que pueda determinar si un programa termina.
Resultados importantes
- Tait demostró en 1967 que-la reducción es fuertemente normalizadora . [ 10 ] Como corolarioLa equivalencia es decidible . Statman demostró en 1979 que el problema de normalización no es elemental , [ 13 ] una demostración que posteriormente fue simplificada por Mairson. [ 14 ] Se sabe que el problema está en el conjuntode la jerarquía de Grzegorczyk , [ 15 ] y más precisamente, es completa en la clase de complejidad llamada TOWER . [ 16 ] Berger y Schwichtenberg dieron una prueba de normalización puramente semántica (véase normalización por evaluación ) en 1991. [ 17 ]
- El problema de la unificación paraLa equivalencia es indecidible. Huet demostró en 1973 que la unificación de tercer orden es indecidible [ 18 ] , y esto fue mejorado por Baxter en 1978 [ 19 ] y luego por Goldfarb en 1981 [ 20 ] al demostrar que la unificación de segundo orden ya es indecidible. Colin Stirling anunció en 2006 una prueba de que el emparejamiento de orden superior (unificación donde solo un término contiene variables existenciales) es decidible, y se publicó una prueba completa en 2009. [ 21 ]
- Podemos codificar los números naturales mediante términos del tipo( Números de la Iglesia ). Schwichtenberg demostró en 1975 que enExactamente los polinomios extendidos se pueden representar como funciones sobre numerales de Church; [ 22 ] estos son aproximadamente los polinomios cerrados bajo un operador condicional.
- Un modelo completo dese da interpretando los tipos base como conjuntos y los tipos de función por el espacio de funciones de la teoría de conjuntos . Friedman demostró en 1975 que esta interpretación es completa para-equivalencia, si los tipos base se interpretan mediante conjuntos infinitos. [ 23 ] Statman demostró en 1983 queLa -equivalencia es la equivalencia máxima que es típicamente ambigua , es decir cerrada bajo sustituciones de tipo ( Teorema de ambigüedad típica de Statman ). [ 24 ] Un corolario de esto es que se cumple la propiedad del modelo finito , es decir, los conjuntos finitos son suficientes para distinguir términos que no están identificados por-equivalencia.
- Plotkin introdujo las relaciones lógicas en 1973 para caracterizar los elementos de un modelo que son definibles por términos lambda. [ 25 ] En 1993, Jung y Tiuryn demostraron que una forma general de relación lógica (relaciones lógicas de Kripke con aridad variable) caracteriza exactamente la definibilidad lambda. [ 26 ] Plotkin y Statman conjeturaron que es decidible si un elemento dado de un modelo generado a partir de conjuntos finitos es definible por un término lambda ( conjetura de Plotkin-Statman ). Loader demostró que la conjetura era falsa en 2001. [ 27 ]
Notas
- ↑ Alonzo Church (1956) Introducción a la lógica matemática pp.47-68 [ 2 ]
- 1 2 Church 1940, p.57 denota variables con subíndices para su tipo:[ 1 ]
- ↑ Church 1940, p.57: los símbolos primitivos 2º y 3º enumerados ( ) denotan alcance:[ 1 ]
- 1 2 Iglesia 1940, pág. 60:son cuatro constantes que denotan respectivamente negación, disyunción, cuantificación universal y selección. [ 1 ]
- ^ Iglesia 1940, p.59 [ 1 ] Henkin 1949 p.160; [ 3 ] Henkin 1996 p.144 [ 4 ]
- ↑ Iglesia 1940, pág. 57 [ 1 ]
- ↑ Church 1940 p.58 enumera 24 fórmulas abreviadas. [ 1 ]
- ↑ Este artículo muestra a continuación 4 juicios de tipografía , en palabras.es el entorno de escritura . [ 5 ]
- ↑ El ' ' denota el proceso de producir la sustitución de la expresión u por x, en la forma t.
- ↑ El ' ' denota el proceso de producir la expansión de la forma t aplicada a x.
- 1 2 3 4 5 6 7 8 9 10 Church, Alonzo (junio de 1940). "Una formulación de la teoría simple de tipos" ( PDF) . Journal of Symbolic Logic . 5 (2): 56– 68. doi : 10.2307/2266170 . JSTOR 2266170. S2CID 15889861. Archivado del original (PDF) el 12 de enero de 2019.
- ↑ Church, Alonzo (1956) Introducción a la lógica matemática
- 1 2 Leon Henkin (septiembre de 1949) La completitud del cálculo funcional de primer orden pág. 160
- 1 2 Leon Henkin (junio de 1996) El descubrimiento de mis pruebas de completitud
- ↑ Aprendizaje hedonista: aprender por el simple placer de hacerlo (Última actualización: 25 de noviembre de 2021, 14:00 UTC) Comprender los juicios de mecanografía
- ↑ Pfenning, Frank, Church y Curry: Combinando la tipificación intrínseca y extrínseca (PDF) , pág. 1 , consultado el 26 de febrero de 2022
- ↑ Curry, Haskell B (1934-09-20). "Funcionalidad en lógica combinatoria" . Actas de la Academia Nacional de Ciencias de los Estados Unidos de América . 20 (11): 584– 90. Bibcode : 1934PNAS...20..584C . doi : 10.1073 / pnas.20.11.584 . ISSN 0027-8424 . PMC 1076489. PMID 16577644 . (presenta una lógica combinatoria de tipo extrínseco, posteriormente adaptada por otros al cálculo lambda) [ 6 ]
- ↑ Reynolds, John (1998). Teorías de los lenguajes de programación . Cambridge, Inglaterra: Cambridge University Press. págs. 327, 334. ISBN 9780521594141.
- ↑ Norman Ramsey (Primavera de 2019) Estrategias de reducción para el cálculo lambda
- 1 2 3 Tait, WW (agosto de 1967). " Interpretaciones intensionales de funcionales de tipo finito I" . The Journal of Symbolic Logic . 32 (2): 198– 212. doi : 10.2307/2271658 . ISSN 0022-4812 . JSTOR 2271658. S2CID 9569863 .
- ↑ Lambek, J. (1986). «Categorías cerradas cartesianas y λ-cálculos tipados» . Combinadores y lenguajes de programación funcional . Notas de clase en informática. Vol. 242. Springer. págs. 136–175 . doi : 10.1007/3-540-17184-3_44 . ISBN 978-3-540-47253-7.
- ↑ Dunfield, Jana; Krishnaswami, Neel (30 de junio de 2022). "Bidirectional Typing" . ACM Computing Surveys . 54 (5): 1– 38. arXiv : 1908.05839 . doi : 10.1145/3450952 . ISSN 0360-0300 .
- ↑ Statman, Richard (1 de julio de 1979). "El cálculo λ tipado no es recursivo elemental" . Theoretical Computer Science . 9 (1): 73–81 . doi : 10.1016/0304-3975(79)90007-0 . hdl : 2027.42/23535 . ISSN 0304-3975 .
- ↑ Mairson, Harry G. (14 de septiembre de 1992). "Una demostración simple de un teorema de Statman". Theoretical Computer Science . 103 (2): 387– 394. doi : 10.1016/0304-3975(92)90020-G . ISSN 0304-3975 .
- ↑ Statman, Richard (julio de 1979). "El cálculo λ tipado no es recursivo elemental" . Theoretical Computer Science . 9 (1): 73–81 . doi : 10.1016/0304-3975(79)90007-0 . hdl : 2027.42/23535 . ISSN 0304-3975 .
- ↑ Nguyên, Lê Thành Dũng (2024-09-05). "La convertibilidad simplemente tipada es TOWER-completa incluso para términos lambda seguros" . Métodos lógicos en informática . 20 (3) 11344. doi : 10.46298/lmcs-20(3:21)2024 . ISSN 1860-5974 .
- ↑ Berger, U.; Schwichtenberg, H. (julio de 1991). "Una inversa del funcional de evaluación para el cálculo lambda tipado" . [ 1991 ] Actas del Sexto Simposio Anual del IEEE sobre Lógica en Ciencias de la Computación . págs. 203–211 . doi : 10.1109/LICS.1991.151645 . ISBN 0-8186-2230-X. S2CID 40441974 .
- ↑ Huet, Gérard P. (1 de abril de 1973). "La indecidibilidad de la unificación en la lógica de tercer orden". Information and Control . 22 (3): 257– 267. doi : 10.1016/S0019-9958(73)90301-X . ISSN 0019-9958 .
- ↑ Baxter, Lewis D. (1 de agosto de 1978). "La indecidibilidad del problema de unificación diádica de tercer orden" . Information and Control . 38 (2): 170– 178. doi : 10.1016/S0019-9958(78)90172-9 . ISSN 0019-9958 .
- ↑ Goldfarb, Warren D. (1 de enero de 1981). "La indecidibilidad del problema de unificación de segundo orden". Theoretical Computer Science . 13 (2): 225– 230. doi : 10.1016/0304-3975(81)90040-2 . ISSN 0304-3975 .
- ↑ Stirling, Colin (22 de julio de 2009). "Decidibilidad del emparejamiento de orden superior". Métodos lógicos en informática . 5 (3) 757: 1– 52. arXiv : 0907.3804 . doi : 10.2168/LMCS-5(3:2)2009 . S2CID 1478837 .
- ^ Schwichtenberg, Helmut (1 de septiembre de 1975). "Definierbare Funktionen imλ-Kalkül mit Typen" . Archiv für mathematische Logik und Grundlagenforschung (en alemán). 17 (3): 113– 114. doi : 10.1007/BF02276799 . ISSN 1432-0665 . S2CID 11598130 .
- ↑ Friedman, Harvey (1975). «Igualdad entre funcionales» . Coloquio de lógica . Notas de clase en matemáticas. Vol. 453. Springer. pp. 22–37 . doi : 10.1007/BFb0064870 . ISBN 978-3-540-07155-6.
- ↑ Statman, R. (1 de diciembre de 1983) .-funcionales definibles yconversión" . Archiv für mathematische Logik und Grundlagenforschung . 23 (1): 21– 26. doi : 10.1007/BF02023009 . ISSN 1432-0665 . S2CID 33920306 .
- ↑ Plotkin, GD (1973). Lambda-definibilidad y relaciones lógicas (PDF) (Informe técnico). Universidad de Edimburgo . Recuperado el 30 de septiembre de 2022 .
- ↑ Jung, Achim; Tiuryn, Jerzy (1993). "Una nueva caracterización de la definibilidad lambda" . Cálculos lambda tipados y aplicaciones . Notas de clase en informática. Vol. 664. Springer. págs. 245–257 . doi : 10.1007/BFb0037110 . ISBN 3-540-56517-5.
- ↑ Loader, Ralph (2001). "La indecidibilidad de la λ-definibilidad" . Lógica, significado y computación . Springer Netherlands. págs. 331–342 . doi : 10.1007/978-94-010-0526-5_15 . ISBN 978-94-010-3891-1.
Enlaces externos
- Loader, Ralph (febrero de 1998). "Notas sobre el cálculo lambda tipado simple" .
- Entrada sobre la "Teoría de los tipos de Church" en la Enciclopedia de Filosofía de Stanford.
- Cálculo lambda
- Teoría de la computación
- teoría de tipos