Intuição por trás da estrita positividade?


10

Eu estou querendo saber se alguém pode me dar a intuição por que a estrita positividade de tipos de dados indutivos garante forte normalização.

Para ser claro, vejo como ter ocorrências negativas leva à divergência, ou seja, definindo:

data X where Intro : (X->X) -> X

podemos escrever uma função divergente.

Mas estou me perguntando, como podemos provar que tipos indutivos estritamente positivos não permitem divergências? ou seja, existe alguma medida de indução que nos permita construir uma prova de forte normalização (usando relações lógicas ou similar)? E onde essa prova se decompõe para ocorrências negativas? Existem boas referências que mostram forte normalização para uma linguagem com tipos indutivos?


Eu acho que a ideia é que tipos estritamente positivos podem se converter em tipos W, conceitualmente. O tipo não estritamente positivo também é inconsistente com o Coq vilhelms.github.io/posts/… . Comentou-se que tipo positivo é consistente com Agda, mas eu gostaria de ver uma explicação conceitual também ...
molikto

@ Molikto Obrigado, isso é útil. Mas eu pensei que os tipos W não davam os princípios de indução desejados em uma teoria intensional? Como podemos provar uma forte normalização de indutores estritamente positivos em uma teoria intensional?
jmite

Respostas:


8

Parece que você deseja uma visão geral dos argumentos de normalização para sistemas de tipos com tipos de dados positivos. Eu recomendaria a tese de doutorado de Nax Mendler: http://www.nuprl.org/documents/Mendler/InductiveDefinition.html .

Como a data sugere, este é um trabalho bastante clássico. A intuição básica é que um ordinal pode ser associado a qualquer elemento de um tipo indutivo positivo, por exemplo, para o tipo de dadosλ

Inductive Ord = Zero : Ord | Suc : Ord -> Ord | Lim : (Nat -> Ord) -> Ord

Nós teríamos:

λ(t)=0
se é uma forma normal que não é um construtor e t
λ(Zero)=0
λ(Suc(o))=λ(o)+1
λ(Lim(f))=supnλ(f n)

onde varia sobre termos com formas normais. A ressalva é que essa interpretação só é definida no terceiro caso quando tem uma forma normal, o que requer algum cuidado nas definições.nf n

Pode-se então definir funções recursivas por indução sobre este ordinal.

Observe que esses tipos de dados já podem ser definidos na teoria clássica dos conjuntos, conforme indicado no excelente artigo sobre famílias indutivas de Dybjer ( http://www.cse.chalmers.se/~peterd/papers/Inductive_Families.pdf ). No entanto, como os espaços de função são muito grandes, tipos como Ordrequerem ordinais realmente grandes para serem interpretados.


Obrigado, isso é muito útil! Você sabe se esses ordinais podem ser definidos na própria teoria dos tipos? ou seja, se eu estava tentando usar o Agda com indução-recursão para modelar uma teoria de tipos com indutivos (mas sem indução-recursão), eu poderia usar algo parecido Ordcom modelar os ordinais necessários para mostrar fundamentos?
jmite

@ jmite, você pode, mas ordinais em teorias construtivas são um pouco estranhos, e você também pode trabalhar com ordens ou árvores bem fundamentadas ( a la W, como sugere Molikto). Pode ser difícil ter um único tipo de uniforme que capta bem fundado de todos os indutiva na língua objeto embora ...
Cody

11
@cody Não é o exemplo de Ord que você dá um tipo estritamente positivo?
Henning Basold

11
@ HenningBasold sim, é (é por isso que eu o usei como ilustração!). Mas não se comporta exatamente como os ordinais em uma teoria dos conjuntos (clássica), e certamente não como o conjunto de todos os ordinais. Em particular, é um pouco difícil definir uma ordem para eles.
Cody

11
@ HenningBasold também devo observar que a pergunta de jmite era especificamente sobre tipos estritamente positivos, embora informações sobre o cenário mais geral também sejam interessantes!
Cody

6

Outra boa fonte para ir além dos tipos estritamente positivos é a tese de doutorado de Ralph Matthes: http://d-nb.info/956895891

Ele discute extensões do Sistema F com tipos (estritamente) positivos no capítulo 3 e comprova muitos fortes resultados de normalização no capítulo 9. Existem algumas idéias interessantes discutidas no capítulo 3.

  1. Podemos adicionar menos pontos fixos para qualquer tipo com variável livre , desde que possamos fornecer uma testemunha de monotonicidade . Essa idéia já está presente no trabalho de Mendler que eles mencionaram. Tais testemunhas existem canonicamente para qualquer tipo positivo, porque são sintaticamente monótonas.ρααβ.(αβ)ρρ[β/α]

  2. Quando passamos de tipos estritamente positivos para positivos, os tipos indutivos não podem mais ser vistos como árvores (a codificação do tipo W). Em vez disso, eles introduzem alguma forma de impredicatividade, porque a construção de um tipo indutivo positivo já quantifica sobre o próprio tipo. Observe que essa é uma forma um tanto moderada de impredicatividade, pois a semântica de tais tipos ainda pode ser explicada em termos de iteração ordinal de funções monótonas.

  3. Matthes também fornece alguns exemplos de tipos indutivos positivos. Particularmente interessantes são

    • o tipo de continuação , em que não ocorre em .μ.1+((αρ)ρ)αρ
    • o tipo que funciona para qualquer tipo , transformando-o em um tipo positivo. Observe que isso usa muito a impredicatividade do sistema F.μαβ.(αβ)ρ[β/α]ρ

Matthes também usa tipos indutivos positivos para analisar a dupla negação, por exemplo, neste artigo: https://www.irit.fr/~Ralph.Matthes/papers/MatthesStabilization.pdf . Ele introduz uma extensão do de Parigot e prova forte normalização.λμ

Espero que isso ajude com sua pergunta.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.