En el artículo de Philip Wadler sobre Theorems for Free , afirma en la Sección 2 sobre Parametricidad que
no existen modelos ingenuos de teoría de conjuntos de cálculo lambda polimórfico
En el ingenuo modelo teórico de conjuntos, los tipos son conjuntos y las funciones son funciones teóricas de conjuntos, lo que parece razonable. Entonces, ¿por qué dice que no hay modelos ingenuos de teoría de conjuntos de cálculo lambda polimórfico?
data T = K ((T -> Bool) -> Bool)
. Entonces, T
y ((T->Bool)->Bool)
son isomorfos. Si tienen un modelo de conjunto donde ->
denota el espacio de funciones (como un conjunto), este último tiene una cardinalidad más alta, por lo que no puede ser isomorfo T
. Entonces, en un modelo, necesitamos interpretar de manera ->
diferente, por ejemplo, como el espacio de funciones continuas .