Relación entre la capacidad de decisión de verificación de tipo, la capacidad de decisión de tipificación y la fuerte normalización

8

¡Yo! Esta es probablemente una pregunta estúpida, sin embargo, nunca lo he visto escrito explícitamente si, por ejemplo, la capacidad de decisión de la verificación de tipo es equivalente a la propiedad de normalización fuerte. Por lo tanto, hago esta pregunta para aclarar todas las relaciones posibles entre la verificación de tipos, la tipificación y la normalización fuerte.

Déjame explicarte mi motivación. Para las teorías de tipos (estoy siendo intencionalmente vago aquí, pero estoy interesado principalmente en las teorías de tipos dependientes), se utiliza una fuerte normalización para demostrar la capacidad de decisión de la verificación de tipos. Por otro lado, cualquier sistema tipeado que conozca que tenga una de estas propiedades también tiene la otra. Sin embargo, nunca he visto explícitamente que una fuerte normalización sea equivalente a la capacidad de decisión de la verificación de tipos.

De forma análoga, para demostrar la tipibilidad, uno generalmente (tal vez siempre) reduce un término a una forma normal. Sin embargo, se sabe que la tipificación no es cierta para las teorías de tipos dependientes, mientras que puede mantenerse una fuerte normalización.

Por decidabilidad de la verificación de tipos, quiero decir que para cualquier tipo , contexto y término sin tipo , es posible decidir en un número finito de pasos si es verdadero o no.AΓaΓa:A

Por decidabilidad de la tipificación, quiero decir que para cualquier término sin tipo dado , es posible decidir en un número finito de pasos si existe un contexto y un tipo tal que es verdadero.aΓAΓa:A

1) ¿Es cierto que la capacidad de decisión de la verificación de tipos es equivalente a que cada término sea fuertemente normalizable?

2) En términos más generales, ¿cuál es la relación entre la capacidad de decidir la verificación de tipos, la tipificación y la normalización fuerte? ¿Cuál implica el otro?

Gracias por adelantado.

EDITAR

Dada la insatisfacción con respecto al nivel de generalidad de mi pregunta (que desconocía), me gustaría delimitarla solo a Pure Type Systems. Por supuesto, los comentarios adicionales o contraejemplos con respecto a otras teorías de tipo serán de gran utilidad.

usuario40276
fuente
44
¿Sin restricciones de ningún tipo? ¿Qué pasa si tomamos el sistema de tipo trivial donde cada término tiene cada tipo? Eso es trivialmente decidible pero no normalizado. Me temo que, en general, a menos que se impongan más restricciones al sistema de tipos, puede que no haya relaciones entre las nociones que usted cita.
chi
@chi lo siento. No sabía el nivel de generalidad de la definición de un sistema mecanografiado. Lo que tenía en mente era algo así como un fragmento de la teoría de tipo Martin-Löf (extensional) con universos. Creo, por lo tanto, que Pure Typed Systems sería el límite correcto en mi pregunta.
user40276
¿Qué quiere decir que el aplazamiento de la expansión se ha resuelto? El enlace ya no está disponible. Hasta ahora, entiendo que se sabe que es cierto para una subclase de PTS (semi-completo, creo), pero sigue siendo una conjetura abierta para el caso general.
Saroupille

Respuestas:

12

Daré una respuesta más centrada y técnica a la de Martin. Si estamos interesados ​​en teorías de tipo dependiente, entonces ninguna dirección es obvia, pero generalmente se asume que ambas sostienen. Sin embargo, la dirección Decidable Normalizing está abierta, creo, incluso para sistemas relativamente bien entendidos, aunque tenemos resultados parciales. Esta pregunta explora algunos de los mismos problemas.

Más técnicamente: un buen marco técnico para estas preguntas es el establecimiento de sistemas de tipo puro en el que la normalización hace implicaría decidibilidad de comprobación de tipos. El resultado es folklore, pero no trivial, ya que se necesita encontrar una estrategia para cuándo aplicar la regla de conversión. La estrategia obvia es normalizar los tipos inferidos antes de todas las aplicaciones de la regla de aplicación. Hay algunas sutilezas incluso aquí, donde la corrección de una estrategia natural (más eficiente) llamada aplazamiento de expansión estuvo abierta por un tiempo, pero se ha resuelto desde entonces.

Hay sistemas de tipos que se están normalizando pero son indecidibles, sobre todo el sistema con tipos de intersección que escribe exactamente los términos de normalización, por lo que debe ser indecidible (ya que de lo contrario podría usarse para identificar términos de normalización). Sería tentador decir aquí que el sistema es defectuoso en el sentido de que no está dirigido por tipo , es decir, los términos no contienen suficiente información para determinar el tipo.

Ahora lo contrario, lo que sugeriría que los sistemas no normalizadores son indecidibles, está lejos de ser obvio: ¡incluso estuvo abierto durante un tiempo para el famoso sistema de Martin-Löf! Este caso se resolvió dando un ejemplo de un combinador de bucles, que permite escribir cálculos arbitrarios.Type:Type

Sin embargo, el problema general todavía está abierto para los sistemas generales de tipo puro, aunque se cree que es cierto, y se han mostrado algunos resultados parciales en esta dirección, por ejemplo, aquí .

cody
fuente
Gracias por tu respuesta. ¿Qué pasa con la capacidad de decidir la tipificación?
user40276
1
@ user40276 esta es una pregunta bastante diferente. Con anotaciones en las abstracciones, la capacidad de escribir y la inferencia de tipos son igualmente difíciles. Sin anotaciones, las cosas se vuelven indecidibles casi de inmediato, independientemente de la terminación, como se explica en las respuestas aquí: cs.stackexchange.com/questions/12691/…
cody
4

(1) falso. Ejemplo de contador: Java, Scala, Haskell, ...

(2) No se mantienen relaciones generales, realmente depende de los detalles del lenguaje / sistema de mecanografía. Hay una excepción: para los idiomas sanos y los sistemas de escritura, imagino que la capacidad de inferencia de tipos (que supongo es lo que quiere decir con "capacidad de escritura") trivialmente implica la verificación de tipos. Pero no me sorprendería si uno pudiera inventar un sistema loco donde incluso esa implicación no se cumple.

Martin Berger
fuente
Gracias por tu respuesta. La tipificación se refiere al proceso de encontrar un tipo tal que un término le pertenece y no todos estos tipos.
user40276
¿Cómo se relaciona esto con el concepto convencional de inferencia de tipos?
Martin Berger
Un ejemplo específico donde la inferencia de tipo decidible no implica una verificación de tipo decidible: cálculo lambda polimórfico de rango 2. Existen algoritmos de inferencia para este lenguaje, sin embargo, no son estables con la adición de firmas de tipo. Es decir, no tenemos que Γ⊢a: A implica Γ⊢ (a :: A): A donde estoy usando :: para la redacción del lenguaje objeto de "a has type A". Por lo tanto, a pesar de que podemos inferir A para a, no siempre podemos verificar un contra A.
wren romano
@wrenromano Interesante. El sistema F tiene inferencia y comprobación indecidibles, y el cálculo lambda polimórfico de rango 2 es un subsistema (de algún tipo). ¿Tienes una referencia para este fenómeno?
Martin Berger
Lo siento. Mi comentario es incorrecto como lo he escrito, debería ser: "Typability se refiere al proceso de encontrar un tipo tal que el término dado le pertenece y no a todos estos tipos". La capacidad de decisión de la inferencia de tipos implica la capacidad de decidir la tipificación Estoy casi seguro de que la afirmación recíproca no se cumple, pero no conozco un contraejemplo.
user40276