A pergunta que você está fazendo é interessante e conhecida. Você está usando a chamada codificação impredicativa dos números naturais. Deixe-me explicar um pouco do plano de fundo.
Dado um construtor de tipos , podemos estar interessados no tipo "mínimo" A satisfazendo A ≅ T ( A ) . Em termos de teoria das categorias, T é um functor e A é o T- álgebra inicial . Por exemplo, se T ( X ) = 1 + X, então A corresponde aos números naturais. Se T ( X ) = 1 +T:Type→TypeAA≅T(A)TATT(X)=1+XA então A é o tipo de árvores binárias finitas.T( X) = 1 + X× XUMA
Uma ideia com longa história que é o inicial -álgebra é do tipo
A : = Π X : T y p e ( T ( X ) → X ) → X .
(Você está usando a notação Agda para produtos dependentes, mas estou usando uma notação matemática mais tradicional.) Por que deveria ser isso? Bem, A codifica essencialmente o princípio de recursão para a T- álgebra inicial : dado qualquer T- álgebra Y com um morfismo de estrutura f : T ( YT
A : = ∏X: T e p e( T( X) → X) → X.
UMATTY , obtemos um homomorfismo da álgebra
ϕ : A → Y por
ϕ ( a ) = af: T( Y) → Yϕ : A → Y
Então, vemos que
A é
fracamenteinicial, com certeza. Para ser inicial, teríamos que saber que
ϕ também é único. Isso não é verdade sem outras suposições, mas os detalhes são técnicos e desagradáveis e requerem a leitura de algum material de apoio. Por exemplo, se podemos mostrar um
teorema da parametria satisfatório, ganhamos, mas também existem outros métodos (como massagear a definição de
A e assumir oaxioma
K e a extensionalidade da função).
ϕ ( a ) = aYf.
UMAϕUMAK
Vamos aplicar o acima para :
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 eT( X) = 1 + X
Temos números da igreja! E também entendemos agora que obteremos um princípio de recursão de graça, porque os números da Igrejasãoo princípio de recursão para números, mas não obteremos indução sem parametridade ou dispositivo semelhante.
N a t = ∏X: T e p e( ( 1 + X) → X) → X= ∏X: T e p e( X× ( X→ X) ) → X= ∏X: T e p eX→ ( X→ X) → X.
A resposta técnica para sua pergunta é a seguinte: existem modelos de teoria dos tipos nos quais o tipo SimpleNat
contém elementos exóticos que não correspondem a números e, além disso, esses elementos quebram o princípio da indução. O tipo SimpleNat
nesses modelos é muito grande e é apenas uma álgebra inicial fraca .