En regardant les modèles de polymorphisme paramétrique, je suis curieux de savoir pourquoi les catégories de graphe réflexif sont utilisées?
En particulier, pourquoi n'incluent-ils pas la composition relationnelle? En regardant les modèles, ils semblent tous soutenir une notion naturelle de composition relationnelle:
La plupart des articles récents qui utilisent des graphiques réflexifs semblent tenir cela pour acquis, et le seul article plus ancien que j'ai pu trouver qui a discuté était «Relational Parametricity and Local Variables» par O'Hearn et Tennent qui disent:
Une raison pour ne pas exiger la composabilité est que, comme cela est bien connu, la composition n'est pas préservée par des relations logiques à des types supérieurs.
Et je ne suis pas tout à fait sûr de ce que cela signifie, donc ma première question est de savoir ce que cela signifie et, espérons-le, une meilleure référence sur cette question.
Je pense que cela signifie que, par exemple, l'exponentielle ne préserve pas nécessairement la composition relationnelle du nez. En particulier, nous ne pouvons pas montrer . Cela signifie que l'exponentielle ne s'étend pas à un foncteur sur une catégorie de relations.
Cependant, bien que je ne puisse pas montrer l'équivalence entre les relations ci-dessus, je peux certainement prouver une inclusion , non?
Étant donné , alors il existe un de type approprié avec , donc étant donné un , je peux montrer . Cela ne signifie-t-il pas que l'exponentielle me donne un foncteur laxiste , ce qui semble être une mauvaise propriété à jeter? Ma deuxième question est donc: y a-t-il des exemples où l'inclusion dans cette direction n'est pas non plus prouvable?