En lógica matemática , la disciplina de tipos de intersección es una rama de la teoría de tipos que abarca sistemas de tipos que utilizan el constructor de tipos de intersección.asignar múltiples tipos a un solo término. [ 1 ] En particular, si un términoSe le puede asignar ambos tipos.y el tipo, entoncesSe le puede asignar el tipo de intersección.(y viceversa). Por lo tanto, el constructor de tipo intersección puede usarse para expresar polimorfismo ad hoc heterogéneo finito (a diferencia del polimorfismo paramétrico ). Por ejemplo, el término λSe le puede asignar el tipoen la mayoría de los sistemas de tipo intersección, asumiendo para el término variableambos tipos de funcióny el tipo de argumento correspondiente.
Entre los sistemas de tipos de intersección más destacados se incluyen el sistema de asignación de tipos Coppo-Dezani, [ 2 ] el sistema de asignación de tipos Barendregt-Coppo-Dezani, [ 3 ] y el sistema esencial de asignación de tipos de intersección. [ 4 ] Lo más llamativo es que los sistemas de tipos de intersección están estrechamente relacionados con (y a menudo caracterizan exactamente) las propiedades de normalización de los términos λ bajo la reducción β .
En lenguajes de programación como TypeScript [ 5 ] y Scala [ 6 ] , los tipos de intersección se utilizan para expresar polimorfismo ad hoc .
Historia
La disciplina de tipos de intersección fue iniciada por Mario Coppo, Mariangiola Dezani-Ciancaglini , Patrick Sallé y Garrel Pottinger. [ 2 ] [ 7 ] [ 8 ] La motivación subyacente era estudiar las propiedades semánticas (como la normalización ) del λ -cálculo mediante la teoría de tipos . [ 9 ] Si bien el trabajo inicial de Coppo y Dezani estableció una caracterización teórica de tipos de la normalización fuerte para el λ -cálculo I, [ 2 ] Pottinger extendió esta caracterización al λ -cálculo K. [ 7 ] Además, Sallé contribuyó con la noción del tipo universal.que se puede asignar a cualquier término λ , correspondiendo así a la intersección vacía. [ 8 ] Usando el tipo universalpermitió un análisis detallado de la normalización de cabeza, la normalización y la normalización fuerte. [ 10 ] En colaboración con Henk Barendregt , se presentó un modelo λ de filtro para un sistema de tipos de intersección, vinculando los tipos de intersección cada vez más estrechamente con la semántica del cálculo λ .
Debido a la correspondencia con la normalización, la tipabilidad en sistemas de tipos de intersección infinitos es indecidible . Sin embargo, restringir los tipos de intersección a rango finito hace que su tipabilidad sea decidible para cualquier rango finito, lo cual contrasta con el sistema F , donde las restricciones (de cuantificadores) a rangos finitos superiores a 3 aún presentan tipabilidad indecidible. [ 11 ] Por otro lado, si se añaden tipos recursivos a un sistema con tipos de intersección de rango 2 o superior, la tipabilidad se vuelve indecidible en general. [ 12 ]
Complementariamente, Paweł Urzyczyn demostró la indecidibilidad del problema dual de la ocupación de tipos en sistemas de tipos de intersección prominentes. [ 13 ] Posteriormente, este resultado se refinó mostrando la completitud exponencial del espacio de ocupación de tipos de intersección de rango 2 y la indecidibilidad de la ocupación de tipos de intersección de rango 3. [ 14 ] Cabe destacar que la ocupación de tipos principales es decidible en tiempo polinomial . [ 15 ]
Para abordar las dificultades de aplicar la correspondencia de Curry-Howard a los tipos de intersección, Kamareddine y Wells reemplazaron el constructor de intersección en el sistema de deducción con declaraciones de conjuntos finitos (FSD) para el dominio de cada variable en una abstracción lambda, convirtiéndolas en tipos Π . Además, extendieron el cubo lambda a lo que denominan el f-cubo, que posee tipos de intersección codificados con FSD en todos los vértices. El término U de Urzyczyn , que no se puede tipificar en el λ-cubo, sí se puede tipificar en el f-cubo. [ 16 ]
Sistema de asignación de tipos Coppo-Dezani
El sistema de asignación de tipos Coppo-DezaniExtiende el cálculo λ de tipo simple al permitir que se asuman múltiples tipos para una variable de término. [ 2 ]
Lenguaje de términos
El término lenguaje deviene dado por términos λ (o expresiones lambda ):
Lenguaje de tipos
El lenguaje de tipos dese define inductivamente mediante la siguiente gramática:
El constructor de tipo intersección () se toma módulo asociatividad, conmutatividad e idempotencia .
Reglas de mecanografía
Las reglas de mecanografía,,, ydeson:
Propiedades
La tipabilidad y la normalización están estrechamente relacionadas enpor las siguientes propiedades: [ 2 ]
- Reducción de sujetos : Siy, entonces.
- Normalización : Si, entoncestiene una forma β -normal .
- Tipabilidad de los términos λ fuertemente normalizadores : Sies fuertemente normalizador , entoncespara algunosy.
- Caracterización de la normalización λ I :tiene una forma normal en el cálculo λ I, si y solo sipara algunosy.
Si el lenguaje de tipos se extiende para contener la intersección vacía, es decir, entonceses cerrado bajo β -igualdad y es sólido y completo para la semántica de inferencia. [ 17 ]
Sistema de asignación de tipos Barendregt-Coppo-Dezani
El sistema de asignación de tipos Barendregt-Coppo-Dezaniextiende el sistema de asignación de tipos Coppo-Dezani en los siguientes tres aspectos: [ 3 ]
- introduce la constante de tipo universal(similar a la intersección vacía) que se puede asignar a cualquier término λ .
- permite el constructor de tipo intersecciónpara aparecer en el lado derecho del constructor de tipo flecha.
- introduce el subtipado de tipo de intersecciónorden parcial en tipos junto con una regla de tipado correspondiente.
Lenguaje de términos
El término lenguaje deviene dado por términos λ (o expresiones lambda ):
Lenguaje de tipos
El lenguaje de tipos dese define inductivamente mediante la siguiente gramática:
subtipificación del tipo de intersección
subtipificación del tipo de intersecciónse define como el preorden más pequeño ( relación reflexiva y transitiva ) sobre tipos de intersección que satisfacen las siguientes propiedades:
La subtipificación del tipo de intersección es decidible en tiempo cuadrático. [ 18 ]
Reglas de mecanografía
Las reglas de mecanografía,,,,, ydeson:
Propiedades
- Semántica :es sólido y completo con respecto a un modelo λ de filtro , en el que la interpretación de un término λ coincide con el conjunto de tipos que se le pueden asignar. [ 3 ]
- Reducción de sujetos : Siy, entonces. [ 3 ]
- Expansión del tema : Siy, entonces. [ 3 ]
- Caracterización de la normalización fuerte :es fuertemente normalizador con respecto a la β- reducción, si y solo sies derivable sin reglapara algunosy. [ 19 ]
- Pares principales (también conocidos como "tipificaciones principales" [ 20 ] ): SiSi es fuertemente normalizador, entonces existe un par principal.de tal manera que para cualquier tipola parejase puede obtener del par principalmediante expansiones de tipos, elevaciones y sustituciones. [ 21 ]
Referencias
- ↑ Henk Barendregt; Wil Dekkers; Richard Statman (20 de junio de 2013). Cálculo Lambda con tipos . Prensa de la Universidad de Cambridge. págs.1– . ISBN 978-0-521-76614-2.
- 1 2 3 4 5 Coppo, Mario; Dezani-Ciancaglini, Mariangiola (1980). "Una extensión de la teoría de la funcionalidad básica para el cálculo λ " . Notre Dame Journal of Formal Logic . 21 (4): 685– 693. doi : 10.1305/ndjfl/1093883253 . S2CID 29748788 .
- 1 2 3 4 5 Barendregt, Henk; Coppo, Mario; Dezani-Ciancaglini, Mariangiola (1983). "Un modelo lambda de filtro y la completitud de la asignación de tipos". Journal of Symbolic Logic . 48 (4): 931– 940. doi : 10.2307/2273659 . JSTOR 2273659 . S2CID 45660117 .
- ↑ van Bakel, Steffen (2011). "Tipos de intersección estricta para el cálculo Lambda". ACM Computing Surveys . 43 (3): 20:1–20:49. CiteSeerX 10.1.1.310.2166 . doi : 10.1145/1922649.1922657 . S2CID 5537689 .
- ↑ "Tipos de intersección en TypeScript" . Consultado el 1 de agosto de 2019 .
- ↑ "Tipos compuestos en Scala" . Consultado el 1 de agosto de 2019 .
- 1 2 Pottinger, G. (1980). Una asignación de tipos para los términos λ fuertemente normalizables . A HB Curry: ensayos sobre lógica combinatoria, cálculo lambda y formalismo, 561-577.
- 1 2 Coppo, Mario; Dezani-Ciancaglini, Mariangiola; Sallé, Patrick (1979). "Caracterización funcional de algunas igualdades semánticas dentro del cálculo lambda". En Hermann A. Maurer (ed.). Autómatas, lenguajes y programación, 6.º Coloquio, Graz, Austria, 16-20 de julio de 1979, Actas . Vol. 71. Springer. pp. 133–146 . doi : 10.1007/3-540-09510-1_11 . ISBN 3-540-09510-1.
- ↑ Coppo, Mario; Dezani-Ciancaglini, Mariangiola (1978). "Una nueva asignación de tipo para términos λ ". Archiv für mathematische Logik und Grundlagenforschung . 19 (1): 139– 156. doi : 10.1007/BF02011875 . S2CID 206809924 .
- ↑ Coppo, Mario; Dezani-Ciancaglini, Mariangiola; Venneri, Betti (1981). "Características funcionales de términos resolubles". Mathematical Logic Quarterly . 27 ( 2– 6): 45– 58. doi : 10.1002/malq.19810270205 .
- ↑ Kfoury, AJ; Wells, JB (enero de 2004). "Principalidad e inferencia de tipos para tipos de intersección usando variables de expansión". Theoretical Computer Science : 1–70 .
- ↑ Terauchi, T., Aiken, A.: Sobre la tipabilidad para tipos de intersección de rango 2 con recursión polimórfica. En: LICS, IEEE Computer Society (2006) pp. 111–122
- ↑ Urzyczyn, Paweł (1999). "El problema del vacío para los tipos de intersección". Journal of Symbolic Logic . 64 (3): 1195– 1215. doi : 10.2307/2586625 . JSTOR 2586625. S2CID 36979036 .
- ↑ Urzyczyn, Paweł (2009). "Habitación de tipos de intersección de bajo rango". Conferencia Internacional sobre Cálculos Lambda Tipados y Aplicaciones . TLCA 2009. Vol. 5608. Springer. pp. 356–370 . doi : 10.1007/978-3-642-02273-9_26 . ISBN 978-3-642-02272-2.
- ↑ Dudenhefner, Andrej; Rehof, Jakob (2019). "Principalidad y aproximación bajo límites dimensionales". Actas de la ACM sobre lenguajes de programación . POPL 2019. Vol. 3. ACM. pp. 8:1–8:29. doi : 10.1145/3290321 . ISSN 2475-1421 .
- ↑ Fairouz Dib Kamareddine, Joe Wells "Tipos de intersección mediante declaraciones de conjuntos finitos" https://arxiv.org/pdf/2405.00440 WoLLIC 2024
- ↑ Van Bakel, Steffen (1992). "Restricciones completas de la disciplina de tipo intersección". Theoretical Computer Science . 102 (1): 135– 163. CiteSeerX 10.1.1.310.903 . doi : 10.1016/0304-3975(92)90297-S .
- ↑ Dudenhefner, Andrej; Martens, Moritz; Rehof, Jakob (2017). "El problema de unificación del tipo de intersección algebraica". Métodos lógicos en informática . 13 (3). arXiv : 1611.05672 . doi : 10.23638/LMCS-13(3:9)2017 . S2CID 31640337 .
- ↑ Ghilezan, Silvia (1996). "Normalización fuerte y tipabilidad con tipos de intersección" . Notre Dame Journal of Formal Logic . 37 (1): 44– 52. doi : 10.1305/ndjfl/1040067315 .
- ↑ Wells, JB (2003). "La esencia de los tipados principales". ICALP '02: Actas del 29.º Coloquio Internacional sobre Autómatas, Lenguajes y Programación . págs. 913–925 .
- ↑ Ronchi Della Rocca, Simona; Venneri, Betti (1983). "Esquemas de tipos principales para una teoría de tipos extendida" . Informática Teórica . 28 ((1-2)): 151– 169. doi : 10.1016/0304-3975(83)90069-5 .
- teoría de tipos
- Sistemas de tipos
- Cálculo lambda
- Teoría de la computación
- Polimorfismo (informática)