Los sistemas tipificados más dependientes tienen unas condiciones de positividad estrictas para los tipos inductivos. ¿Alguien sabe un ejemplo donde la violación de la condición conduce a la inconsistencia en el sistema?
fuente
Los sistemas tipificados más dependientes tienen unas condiciones de positividad estrictas para los tipos inductivos. ¿Alguien sabe un ejemplo donde la violación de la condición conduce a la inconsistencia en el sistema?
En realidad, es posible relajar la estricta positividad y permanecer constante. Por ejemplo, es suficiente tener solo una condición de positividad. Es decir, podemos aceptar definiciones de tipo como
donde las variables de tipo recursivo ocurren a la izquierda de un número par de flechas y retienen la consistencia.
Sin embargo, las teorías que permiten este tipo de tipo inductivo no tienen modelos teóricos de conjuntos: no puede interpretar los tipos como conjuntos y los términos como elementos de conjuntos. En este caso, estamos diciendo que es isomorfo a su doble conjunto de potencia (es decir, T ≃ P ( P ( T ) ) ), y esto viola el teorema de Cantor .
Dado que las teorías de tipo dependiente a menudo se usan para formalizar las matemáticas, sus diseñadores generalmente dudan en agregar principios que no sean compatibles con una semántica de teoría de conjuntos, incluso si son consistentes.
EDITAR: Estoy agregando esta edición en respuesta a la pregunta de Andrej. El tipo es consistente si lo agrega a (digamos) Agda; no hay problemas con eso en absoluto. Solo tenemos un problema si combinamos una positividad no estricta con un medio excluido.
La intuición de por qué es seguro es (IMO) mejor vista a través de la lente de la parametricidad. En el Sistema F, podemos mostrar usando la parametricidad que para cualquier functor definible , el tipo μ F ≜ ∀ α . es de hecho un tipo inductivo.
Ahora, recuerde que un functor definible es un operador tipo F : ∗ → ∗ , junto con un operador m a p : ∀ α , β . satisface las condiciones de functorialidad (es decir, m a p
Ahora, podemos definir un operador de tipo para el doble conjunto de potencia
y debido a que ocurre solo positivamente, también podemos definir un operador de mapa para él: