No capítulo 1 e no apêndice A do livro Hott , são apresentadas várias famílias de tipos primitivos (tipos de universo, tipos de funções dependentes, tipos de pares dependentes, tipos de coprodutos, tipo vazio, tipo de unidade, tipo de número natural e tipos de identidade) para formar a base para a teoria do tipo de homotopia.
No entanto, parece que determinados tipos de universo e tipos de funções dependentes podem ser construídos com todos esses outros tipos "primitivos". Por exemplo, o tipo Empty poderia ser definido como
ΠT:U.T
Suponho que os outros tipos também possam ser construídos de maneira semelhante à forma como estão no CC puro (ou seja, apenas derivar o tipo da parte indutiva da definição).
Muitos desses tipos são explicitamente redundantes pelos tipos Indutivo / W que são introduzidos nos capítulos 5 e 6. Mas os tipos Indutivo / W parecem ser uma parte opcional da teoria, pois existem questões em aberto sobre como eles interagem com o HoTT (em menos no momento em que o livro saiu).
Portanto, estou muito confuso sobre o motivo pelo qual esses tipos adicionais são apresentados como primitivos. Minha intuição é que uma teoria fundamental deve ser tão mínima quanto possível, e redefinir um tipo vazio redundante como um primitivo na teoria parece muito arbitrário.
Essa escolha foi feita
- por algumas razões metateóricas que eu desconheço?
- por razões históricas, fazer com que a teoria do tipo parecesse teorias do tipo do passado (que não estavam necessariamente tentando ser fundamentais)?
- para "usabilidade" de interfaces de computador?
- por alguma vantagem na pesquisa de provas que eu desconheço?
Semelhante a: Especificação mínima da teoria dos tipos de Martin-Löf , /cs/82810/reducing-products-in-hott-to-church-scott-encodings/82891#82891
fonte
Respostas:
Deixe-me explicar por que a codificação sugerida do tipo vazio não funciona. Precisamos ser explícitos sobre os níveis do universo e não varrê-los para debaixo do tapete.
Quando as pessoas dizem "o tipo vazio", elas podem significar uma de duas coisas:
Um único tipo que está vazio em relação a todos os tipos. Tal tipo tem a regra de eliminação: para cada n e tipo de família A : E → U n , há um mapa e n , A : E → A .E n A:E→Un en,A:E→A
Uma família de tipos , uma para cada nível universo k , de tal modo que E k é "o tipo de vazio L k ". Tal tipo tem de satisfazer E k : U k , obviamente, e também: para cada tipo de família A : E k → U k , existe um mapa e k , A : E k → A .Ek k Ek Uk Ek:Uk A:Ek→Uk ek,A:Ek→A
Sem nenhuma condição, quando as pessoas dizem "tipo vazio", elas esperam o primeiro significado acima.
Como podemos obter ? Uma primeira tentativa pode ser algo como E = Π ( T : U )E
mas isso é precisamente o tipo de varrer para debaixo do tapete, que cria confusão. Devemos anotar níveis explícitos do universo. Se escrevermos algo como
E k = Π ( T : U k )
Outra tentativa é , mas agora você tem que explicar o que " Π n " é suposto ser. Você pode ficar tentado a dizer que existe um tipo L de níveis no universo, e então E = Π ( n : L )
Existe uma solução, conhecida como universo impredicativo . Este é um universo mágico que possui a propriedade de que, dado B : U → U , o tipo Π ( X : U ) B ( X ) vive em U (e não está um nível acima de U ). Então pelo menos Π ( X : U ) X está novamente em U e terá o eliminador esperado. Mas ainda não terminamos, pois agora precisamos nos preocupar com as equações para o eliminador, como apontou Neel.U B:U→U Π(X:U)B(X) U U Π(X:U)X U
Universos impredicativos podem ser organizados. No entanto, um famoso teorema de Thierry Coquand (se não me engano) mostra que ter dois universos impredicativos, um contido no outro, leva a uma contradição.
A moral da história é: basta axiomatizar o tipo vazio diretamente e parar de codificar as coisas.
fonte
Você está fazendo várias perguntas que são semelhantes, mas distintas.
Por que o livro do HoTT não usa codificações da Igreja para tipos de dados?
As codificações da igreja não funcionam na teoria do tipo Martin-Löf, por duas razões.
Segundo, mesmo se você definiu tipos de dados como os números naturais com codificações da Igreja, para fazer provas com esses tipos, você precisa de princípios de indução para provar coisas sobre eles. Para derivar princípios de indução para codificações da Igreja, você precisa usar um argumento baseado na parametridade de Reynolds, e a questão de como internalizar os princípios da parametridade na teoria de tipos ainda não está totalmente resolvida. (O estado da arte são os quantificadores paramétricos do artigo ICFP 2017 de Nuyts, Vezzosi e Devriese para a teoria dos tipos dependentes - observe que isso ocorre muito depois que o livro HoTT foi escrito!)
Em seguida, você está perguntando por que a base não é mínima. Essa é realmente uma das características sociológicas distintivas dos fundamentos da teoria dos tipos - os teóricos dos tipos consideram ter um pequeno conjunto de regras como uma conveniência técnica, sem muito significado fundamental. É muito, muito mais importante ter o conjunto certo de regras, em vez do menor conjunto de regras.
Desenvolvemos teorias de tipos para serem usadas por matemáticos e programadores, e é muito, muito importante que as provas feitas na teoria de tipos sejam as que os matemáticos e programadores consideram como sendo feitas da maneira correta. Isso ocorre porque os argumentos que os matemáticos geralmente consideram ter bom estilo são estruturados usando os principais princípios algébricos e geométricos do domínio de estudo. Se você precisar usar codificações complicadas, muita estrutura será perdida ou obscurecida.
É por isso que mesmo apresentações teóricas de tipo da lógica clássica proposicional invariavelmente fornecem todos os conectivos lógicos, mesmo que isso seja formalmente equivalente a uma lógica apenas com NAND. Claro, todos os conectivos booleanos podem ser codificados com NAND, mas essa codificação obscurece a estrutura da lógica.
fonte