Dans l'article de Philip Wadler sur les théorèmes gratuits, il déclare dans la section 2 sur la paramétrie que
il n'y a pas de modèles naïfs de théorie des ensembles du calcul lambda polymorphe
Dans le modèle naïf de la théorie des ensembles, les types sont des ensembles et les fonctions sont des fonctions de la théorie des ensembles, ce qui semble raisonnable. Alors pourquoi dit-il qu'il n'y a pas de modèles naïfs de théorie des ensembles du calcul lambda polymorphe?
data T = K ((T -> Bool) -> Bool)
. Ensuite,T
et((T->Bool)->Bool)
sont isomorphes. S'ils ont un modèle d'ensemble où->
désigne l'espace de fonction (en tant qu'ensemble), ce dernier a une cardinalité plus élevée, il ne peut donc pas être isomorphe àT
. Ainsi, dans un modèle, nous devons interpréter->
différemment - par exemple comme l'espace des fonctions continues .Réponses:
Notez qu'un autre article, par Andrew Pitts, Polymorphism is Set Theoretic, Constructively , renverse quelque peu cette conclusion en montrant que la contradiction ci-dessus n'est possible que dans la théorie classique des ensembles, et qu'il existe plusieurs théories constructives des ensembles dans lesquels le polymorphisme peut être interprété avec les interprétations habituelles des espaces de fonctions et des produits. Plus particulièrement, ces «grands produits» existent dans les Topos efficaces, la plus complète des introductions étant donnée par Phoa .
la source