Por que é impossível declarar um princípio de indução para os números da Igreja

17

Imagine, definimos números naturais no cálculo lambda de tipo dependente como números da Igreja. Eles podem ser definidos da seguinte maneira:

SimpleNat = (R : Set) → R → (R → R) → R

zero : SimpleNat
zero = λ R z _ → z

suc : SimpleNat → SimpleNat
suc sn = λ R z s → s (sn R z s)

SimpleNatRec : (R : Set) → R → (R → R) → SimpleNat → R
SimpleNatRec R z s sn = sn R z s

No entanto, parece que não podemos definir números de igrejas com o seguinte tipo de princípio de indução:

NatInd : (C : Nat -> Set) -> (C zero) -> ((n : Nat) -> C n -> C (suc n)) -> (n : Nat) -> (C n)

Por que é tão? Como posso provar isso? Parece que o problema está em definir um tipo para Nat que se torna recursivo. É possível alterar o cálculo lambda para permitir isso?

Konstantin Solomatov
fonte

Respostas:

20

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:TypeTypeAAT(A)TATT(X)=1+XUMA então A é o tipo de árvores binárias finitas.T(X)=1 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

UMA:=X:Type(T(X)X)X.
UMATTY , obtemos um homomorfismo da álgebra ϕ : A Y por ϕ ( a ) = af:T(Y)Yϕ:UMAY 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 umteorema 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).
ϕ(uma)=umaYf.
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 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.

Numat=X:Type((1 1+X)X)X=X:Type(X×(XX))X=X:TypeX(XX)X.

A resposta técnica para sua pergunta é a seguinte: existem modelos de teoria dos tipos nos quais o tipo SimpleNatconté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 SimpleNatnesses modelos é muito grande e é apenas uma álgebra inicial fraca .

Andrej Bauer
fonte
8
Concordo que a resposta é ótima, mas algumas referências podem ser úteis aqui: o artigo de Geuvers sobre a não derivabilidade da indução e o artigo de Neel K e Derek Dreyer sobre obter (alguma) indução da parametridade . Não estou ciente de um artigo que explora completamente o relacionamento.
Cody
Eu não sou muito forte em referências nessa área, obrigado @cody!
Andrej Bauer 27/03