A teoria do domínio fornece uma incrível teoria da computabilidade na presença de tipos simples. Mas quando o polimorfismo paramétrico é adicionado, não parece haver uma teoria legal que explique o que está acontecendo tão bem quanto a teoria de domínio explica a computação por tipos simples. Certamente, eu não esperaria que isso existisse para o System-F, porque não existem modelos teóricos definidos do System-F. Que tal uma restrição do System-F que tem previsão e tem uma hierarquia no universo? Isso foi estudado? Existe uma boa teoria de domínio que se aplica a ela? Indo além, e os tipos dependentes? A teoria dos domínios pode, de alguma forma, ser misturada com grupos fracos para realizar alguma coisa?
8
Respostas:
Existem muitas maneiras de modelar o polimorfismo via teoria de domínio, deixe-me descrever uma que é fácil de entender, para que você possa pensar sobre isso sozinho. É um "modelo PER".
Pegue qualquer modelo do -calculus sem tipo, por exemplo, um domínio tal que seja uma retração de (por exemplo, considere tal que . Seja e sejam a retração e a seção, respectivamente.λ D D→D D D D≅N⊥×(D→D)) Λ:D→(D→D) Γ:(D→D)→D
Vamos interpretar os tipos como relações de equivalência parciais (PER) em . Lembre-se de que um PER é uma relação simétrica e transitiva, mas não precisa ser reflexiva. Para cada tipo , atribuímos um PER . Pense em como " é um elemento de " e como " e são iguais no que diz respeito a ".D τ ∼τ x∼τx x τ x∼τy x y τ
Podemos ter alguns tipos básicos (mas não precisamos), por exemplo, se garantirmos que seja um subdomínio de por meio de uma incorporação então podemos definir porN⊥ D ι:N→D ∼nat
Dado PERs e , defina o espaço de função PER por∼τ ∼σ ∼τ→σ
Os termos são interpretados como não tipificado termos -calculus como seria normalmente interpretar-los em .λ D
Aqui está o punchline. Você pode interpretar o polimorfismo como interseção de PERs, ou seja: Podemos calcular o PER correspondente a : é a interseção de todos os PERs, mas esse será o PER vazio. Calculando é um exercício interessante. Calculando é um exercício difícil (que me manteve ocupado por uma semana quando eu era estudante de teoria de domínio).
Se queremos recursão em nosso idioma, precisamos contabilizar pontos fixos. Uma possibilidade é restringir os PERs àqueles que contêm e são fechados sob o suprema de cadeias crescentes. Mais precisamente, tome apenas os PERs para que⊥D ≈
Agora podemos interpretar aplicando o teorema de Kanster-Tarski sobre a existência de pontos fixos, assim como fazemos na teoria de domínio comum. Desta vez, não está vazio, pois contém precisamente .fixτ:(τ→τ)→τ ∀X.X ⊥D
fonte
Roy Crole fornece uma boa explicação de como usar a teoria de domínio para modelar o polimorfismo de tipos em seu livro Categorias para Tipos , especificamente na seção 5.6.
fonte