En règle générale, vous utilisez la paramétrie binaire pour prouver les équivalences de programme. Il n'est pas naturel de le faire avec un modèle unaire, car il ne parle que d'un programme à la fois.
Normalement, vous utilisez un modèle unaire si tout ce qui vous intéresse est une propriété unaire. Par exemple, consultez notre brouillon récent, Superficially Substructural Types , dans lequel nous prouvons un résultat de solidité de type à l'aide d'un modèle unaire. Puisque la solidité parle du comportement d'un programme (si alors il diverge ou se réduit à une valeur v : A ), un modèle unaire est suffisant. Si nous voulions prouver en plus les équivalences de programmes, nous aurions besoin d'un modèle binaire.e : Av : A
EDIT: Je viens de réaliser que si vous regardez notre article, il ressemble à un vieux modèle de relations logiques / réalisabilité. Je devrais en dire un peu plus sur ce qui le rend (et sur d'autres modèles) paramétrique. Fondamentalement, un modèle est paramétrique lorsque vous pouvez prouver le lemme d'extension d'identité pour lui: c'est-à-dire, pour toute expression de type, si toutes les variables de type libre sont liées à des relations d'identité, alors l'expression de type est la relation d'identité. Nous ne le prouvons pas explicitement comme un lemme (je ne sais pas pourquoi, mais vous en avez rarement besoin lorsque vous faites des modèles opérationnels), mais cette propriété est essentielle pour la solidité de notre langage.
La définition de "relation" et de "relation d'identité" en paramétrie est en fait un peu à gagner, et cette liberté est en fait essentielle si vous voulez prendre en charge des types fantaisistes comme des types supérieurs ou des types dépendants, ou si vous souhaitez travailler avec des structures sémantiques plus sophistiquées. Le récit le plus accessible que je connaisse se trouve dans le projet de document de Bob Atkey, Paramationality Relational for Higher Kinds .
Si vous avez un bon appétit pour la théorie des catégories, celle-ci a d'abord été formulée de manière abstraite par Rosolini dans son article Graphes réflexifs et polymorphisme paramétrique . Il a depuis été développé par Dunphy et Reddy dans leur article Parametric Limits , ainsi que par Birkedal, Møgelberg et Petersen dans les modèles théoriques de domaine du polymorphisme paramétrique .
Neel Krishnaswami
la source