Théorie des domaines et polymorphisme

8

La théorie des domaines donne une théorie étonnante de calculabilité en présence de types simples. Mais lorsque le polymorphisme paramétrique est ajouté, il ne semble pas y avoir une bonne théorie qui explique ce qui se passe aussi bien que la théorie des domaines explique le calcul sur des types simples. Je ne m'attendrais certainement pas à ce qu'une telle chose existe pour System-F car il n'existe aucun modèle théorique d'ensemble de System-F. Qu'en est-il d'une restriction de System-F qui a prédictive et a une hiérarchie d'univers? Cela a-t-il été étudié? Y a-t-il une belle théorie de domaine qui s'y applique? Pour en savoir plus sur les types dépendants? La théorie du domaine peut-elle être mélangée d'une manière ou d'une autre avec des groupements faibles pour accomplir quelque chose?ω

Jake
la source
1
Je suis confus: il existe des modèles théoriques de domaine du -calculus non typé , qui est intuitivement un calcul typé avec un type . Ceci, bien sûr, n'a pas non plus de modèles en ensembles. Pourquoi vous attendriez-vous à ce qu'il n'y ait pas de modèles de domaine du système F? Avez-vous essayé de chercher en ligne? λααα
cody
J'ai compris qu'il n'y a pas de modèles de système F dans lesquels les fonctions sont interprétées comme n'importe quel type de fonction dans la théorie des ensembles. J'ai compris qu'il n'y avait pas de modèles théoriques d'ensemble «naïfs» du calcul lambda typé, mais que les modèles théoriques d'ensemble existent tant que les fonctions sont des fonctions continues. Alors, tout comme les fonctions réelles continues ont la même cardinalité que les réels, les fonctions continues scott peuvent également avoir la même taille que leur (co) domaine. J'ai compris que c'était ainsi que le problème de taille avait été résolu. J'ai compris cependant qu'une telle solution n'existait pas pour le système-F.
Jake
Je dois également ajouter que je croyais que la théorie des domaines était encore une théorie théorique. C'est-à-dire que les fonctions sont toujours des fonctions théoriques définies, c'est juste que vous ne vous préoccupez que des fonctions continues lors de l'interprétation des fonctions dans un calcul. Par conséquent, ma compréhension semble exclure l'adaptation de System-F à un modèle théorique de domaine. C'est peut-être une de mes compréhensions qui est fausse ici.
Jake
3
Je vois, merci pour vos éclaircissements. Le traitement le plus "semblable à la théorie du domaine" du système FI connu est les "espaces cohérents" de Girard dont le traitement est décrit ici par Paul Taylor. Je ne sais pas si c'est une "belle théorie" selon votre demande, mais pour être honnête, je ne vois pas vraiment la théorie des domaines comme étant si agréable en général pour la sémantique des langues totales ...
cody
1
@cody: tsk, tsk.
Andrej Bauer

Réponses:

5

Il existe de nombreuses façons de modéliser le polymorphisme via la théorie des domaines, permettez-moi d'en décrire une qui est facile à comprendre, afin que vous puissiez y penser vous-même. C'est un "modèle PER".

Prenez n'importe quel modèle de -calculus non typé , par exemple un domaine tel que est un retrait de (par exemple, prenez tel que . Soit et la rétraction et la section.λDDDDDDN×(DD))Λ:D(DD)Γ:(DD)D

Nous allons interpréter les types comme les relations d'équivalence partielle (PER) sur . Rappelons qu'un PER est une relation symétrique et transitive, mais pas nécessairement réflexive. A chaque type on assigne donc un PER . Considérez comme " est un élément de " et comme " et sont égaux en ce qui concerne ".Dττxτxxτxτyxyτ

Nous pouvons avoir certains types de base (mais pas besoin), par exemple si nous nous assurons que est un sous-domaine de via un imbrication alors nous pouvons définir par NDι:NDnat

xnatynN.x=ι(n)=y.

Étant donné PERs et , définissez l' espace fonction PER par τσ τσ

xτσyz,wD.zτwΛ(x)(z)σΛ(y)(w)

Les termes sont interprétés comme typées termes de que l' on devrait normalement les interpréter .λD

Voici la punchline. Vous pouvez interpréter le polymorphisme comme une intersection de PER, c'est-à-dire: On peut calculer le PER correspondant à : c'est l'intersection de tous les PER, mais ce sera le PER vide. Calcul de est un exercice intéressant. Calcul de est un exercice difficile (qui m'a occupé pendant une semaine quand j'étais étudiant en théorie des domaines).

xX.τ(X)yfor all PERs xτ()y.
X.XX.XXX.XXX

Si nous voulons une récursivité dans notre langue, nous devons tenir compte des points fixes. Une possibilité est de restreindre les PER à ceux qui contiennent et sont fermés sous suprema de chaînes croissantes. Plus précisément, ne prenez que les PERs pour lesquelsD

  • DD , et
  • si et augmentent les chaînes en telles que pour tout , alors .x0x1x2y0y1y2Dxiyiisupixisupiyi

Nous pouvons maintenant interpréter en appliquant le théorème de Kanster-Tarski sur l'existence de points fixes, tout comme nous le faisons dans la théorie des domaines ordinaires. Cette fois, n'est pas vide, car il contient précisément .fixτ:(ττ)τX.XD

Andrej Bauer
la source
C'est une réponse au-delà fantastique! Cela donne essentiellement les mêmes outils que la paramétricité nous donne et les outils de la théorie des domaines. Ceci est exactement ce que je cherchais. Eh bien, j'ai quelque chose à faire ce week-end maintenant.
Jake
Pour mémoire, j'ai appris ce truc de Dana Scott. Je suis presque sûr que John Reynolds connaissait les modèles PER au moment où il a inventé la paramétricité. J'ai toujours pensé que la paramétricité venait des modèles PER, de toute façon.
Andrej Bauer
Je pensais qu'il était votre conseiller. Est-ce écrit quelque part ou est-ce du folklore?
Jake
Il y a beaucoup de choses écrites à ce sujet. Que cherchez-vous? Le premier papier historique (qui serait de Dana Scott), un papier classique qui fait vraiment avancer les choses, un manuel?
Andrej Bauer
2
Le manuel Domains and Lambda Calculi de Roberto Amadio et Pierre-Louis Curien couvre les modèles PER au chapitre 15, et un modèle PER du système F au 15.2.
Andrej Bauer
0

Roy Crole donne une belle explication sur la façon d'utiliser la théorie des domaines pour modéliser le polymorphisme des types dans son livre Catégories pour les types , en particulier dans la section 5.6.

Nathan BeDell
la source
2
Pourriez-vous au moins résumer cette section au profit de personnes qui pourraient ne pas avoir le livre? Un ou deux paragraphes donnant les idées principales suffiraient.
David Richerby