Gödel define em seu Sistema T recursividade primitiva sobre tipos mais altos. Encontrei notas de Girard, onde ele explica a implementação do Sistema T em cima do cálculo lambda simplesmente digitado. Na página 50, ele menciona que, quando usamos mais tipos no recursor, obtemos um poder mais expressivo com o sistema.
Não entendo exatamente como isso acontece. É possível criar uma espécie de hierarquia de Ackermann com a recursão primitiva de ordem superior, ou seja, uma hierarquia de funções cada vez mais rápidas, onde cada função é expressável no Sistema T, mas a diagonal não? Acho que sim, mas a construção não me parece evidente e eu estaria interessado em ver como alguém a construiria ou receberia indicações para a literatura.
Estou atrás de algo concreto. Estou ciente do argumento diagonal geral que comprova a existência de uma função que não está em T, mas gostaria de ver como alguém realmente "avançaria na hierarquia de tipos".
fonte
Respostas:
(Essa é uma resposta muito parcial, abordando apenas o primeiro ponto, e não a questão principal sobre a hierarquia.)
Eu não tenho uma prova para apontar para você, mas a idéia é que um único recursor de primeira ordem em naturais como
seria muito menos poderoso do que ter o esquema de recursão completo (primitivo)
uma vez que este se assemelha mais ou menos um termo polimórfica no Sistema F, que pode ser usado em muitos tipos .U
De fato, o básico apenas nos dá acesso ao esquema de recursão primitiva de primeira ordem, como podemos encontrar em um livro de teoria da computabilidade / recursão. Com apenas isso, sabemos que funções como a de Ackermann não são definíveis. (Bem, isso não é tão óbvio, já que aqui também temos lambdas de ordem superior, é apenas a recursão que é restrita. Mas o ponto deve permanecer assim mesmo, eu acho.)rec
Com o esquema , podemos escolher , o que nos permite definir a função de Ackermann, como mostra Girard no livro mencionado pelo OP. Portanto, o esquema é estritamente mais poderoso.recU U=nat→nat
fonte
Essa é uma pergunta interessante, cuja resposta não é absolutamente trivial.
Darei a resposta curta primeiro: existe uma hierarquia de sistemas, chame-os de , onde os únicos recursores permitidos são com a ordem de , em que a ordem de um tipo é definida como :Tk recU U≤k
Então o teorema é:
Observe que .T=⋃kTk
Como primeiro passo, provavelmente é útil observar que a função Ackermann pode ser definida assim (como sugerido pela resposta de chi ): modulo um erro da minha parte.
Isso realmente sugere que tinha "poder" adicional.recnat→nat
Mas como subimos a torre até arbitrário ?Tk
O truque é considerar uma correspondência tripla entre:
1) Ordinais abaixoε0
2) Fragmentos de da aritmética de Heyting, em que a indução é restrita a declarações com menos de alternações de quantificadores.HAk k
3) Funções definíveis emTk
Para cada ordinal que a torre tem altura , é possível considerar na aritmética de Heyting uma prova de que esse ordinal é bem fundamentado, e extrair dele um termo tipificável no sistema que corresponde à função na hierarquia Grzegorczyk .λk=ωω…ω k tk Tk gλk
Esse termo não pode ser bem digitado em devido à correspondência descrita acima, e o fato de que não prova a fundamentação de .Tk−1 HAk−1 λk
Mentiras e referências :
A correspondência entre , e não é tão limpa quanto sugeri, deve haver realmente , e , cada um relacionado por alguma constante concreta.Tk HAk λk k k′ k′′
Uma construção explícita para o ao longo do caminho descrito acima é dada por Ulrich Berger na Extração de Programas da Prova de Indução de Gentzen atétk ε0
Receio não ter uma referência para a correspondência tripla melhor do que Provas e Tipos , embora eu ficaria muito feliz em saber de uma.
fonte