La pregunta que hace es interesante y conocida. Está utilizando la llamada codificación impredicativa de los números naturales. Déjame explicarte un poco de los antecedentes.
Dado un constructor de tipos , podríamos estar interesados en el tipo "mínimo" A que satisface A ≅ T ( A ) . En términos de teoría de categorías, T es un functor y A es el álgebra T inicial . Por ejemplo, si T ( X ) = 1 + XT: T y p e → T y p eUNA ≅T( A )TUNTT( X) = 1 + X entonces corresponde a los números naturales. Si T ( X ) = 1 +UN entonces A es el tipo de árboles binarios finitos.T( X) = 1 + X× XUN
Una idea con una larga historia es que la inicial -algebra es el tipo
A : = Π X : T y p e ( T ( X ) → X ) → X .
(Está usando la notación Agda para productos dependientes, pero yo estoy usando una notación matemática más tradicional). ¿Por qué debería ser esto? Bueno, A esencialmente codifica el principio de recursión para el álgebra T inicial : dado cualquier T álgebra Y con una estructura de morfismo f : T ( YT
A : = ∏X: T y p e( T( X) → X) → X.
UNTTY , obtenemos un álgebra homomorfismo
ϕ : A → Y por
ϕ ( a ) = aF: T( Y) → Yϕ : A → Y
Entonces vemos que
A es
débilmenteinicial con seguridad. Para que sea inicial, deberíamos saber que
ϕ también es único. Esto no es cierto sin más suposiciones, pero los detalles son técnicos y desagradables y requieren la lectura de algunos antecedentes. Por ejemplo, si podemos mostrar un resultado satisfactorio
ϕ ( a ) = aYF.
UNϕ teorema de paramétrica , entonces ganamos, pero también hay otros métodos (como masajear la definición de
y asumir elaxioma
K y la extensionalidad de la función).
UNK
Apliquemos lo anterior a :
N a t = ∏ X : T y p e ( ( 1 + X ) → X ) → X = ∏ X : T y p e ( X × ( X → X ) ) → X = ∏ X → ( X → XT( X) = 1 + X
¡Tenemos números de la Iglesia! Y también entendemos ahora que obtendremos un principio de recursión gratis, porque los números de la Iglesiasonel principio de recursión para los números, pero no obtendremos inducción sin paramétrica o un dispositivo similar.
N a t = ∏X: T y p e( ( 1 + X) → X) → X= ∏X: T y p e( X× ( X→ X) ) → X= ∏X: T y p eX→ ( X→ X) → X.
La respuesta técnica a su pregunta es la siguiente: existen modelos de teoría de tipos en los que el tipo SimpleNat
contiene elementos exóticos que no corresponden a los números y, además, estos elementos rompen el principio de inducción. El tipo SimpleNat
en estos modelos es demasiado grande y solo es un álgebra inicial débil .