Si un sistema de tipos puede asignar un tipo a λ x . x x
, o al que no termina (λx . x x) (λ x . x x)
, ¿entonces ese sistema es inconsistente como consecuencia? ¿Todos los tipos bajo ese sistema están habitados? ¿Puedes probar que es falso?
Si un sistema de tipos puede asignar un tipo a λ x . x x
, o al que no termina (λx . x x) (λ x . x x)
, ¿entonces ese sistema es inconsistente como consecuencia? ¿Todos los tipos bajo ese sistema están habitados? ¿Puedes probar que es falso?
Respuestas:
Ciertamente, asignando un tipo a no es suficiente para la inconsistencia: en el sistema F , podemos derivar λ x . x x : ( ∀ X . X ) → ( ∀ X . X )
de una manera bastante directa (¡este es un buen ejercicio!). Sin embargo, puede no estar bien escrito en este sistema, suponiendo ω -consistency de segunda aritmética orden, ya que esto implica que tales términos así-tecleado están normalizando.
Además, el sistema es consistente. Esto se sigue de cualquiera de normalización, como se puede mostrar que cualquier término de tipo ∀ X . X no puede tener una forma normal, o un argumento mucho más simple, en el que se asigna cada tipo un conjunto, ya sea ∅ o { ∅ } y se puede demostrar que todos los tipos derivables se asignan { ∅ } , y ∀ X . A X se le asigna ∅ (y, por lo tanto, no es derivable).
El último argumento puede llevarse a cabo en aritmética de primer orden. El hecho de que puede estar bien tipado en un sistema consistente, puede verse como algo perturbador y es una consecuencia de la impredicatividad de los sistemas . No debería sorprendernos que algunas personas cuestionen la confiabilidad de los sistemas de lógica impredecibles. Sin embargo, hasta ahora no se han encontrado inconsistencias en tales sistemas.
Se pueden encontrar más detalles en mi respuesta a una pregunta relacionada: /cstheory//a/31321/3984