Estoy tratando de entender los conceptos de tipos universales y existenciales, pero en todas partes veo intuiciones lógicas u operativas (o implementaciones) (por ejemplo, el libro TAPL de B. Pierce), que, bueno ... es bueno , pero me gustaría ver las definiciones (donde las vemos como conjuntos), y de ellas, derivaciones de algunas leyes, así como justificaciones para nuestras intuiciones.
Entonces, como no puedo encontrar esas definiciones, decidí hacerlo yo mismo y creo que pueden ser razonables:
∃ x . T d e f : = ⋃ S - t y p e T [ x : = S ]
Pero, en el libro TAPL mencionado anteriormente, se nos da esta definición (aunque yo lo llamaría una identidad)
Tengo dos problemas con esto:
- En el LHS de esperaría que x fuera la única variable libre de T (porque ¿cómo ver un tipo "aún no construido" con algunas variables libres colgando en él?), Pero en el RHS parece que y puede tener algún impacto en T , por lo que es mejor que sea una variable libre en T . Por lo tanto, LHS no puede ser igual a RHS porque los conjuntos de variables libres de T difieren en ambos lados, ¿verdad?
- Incluso sin tener en cuenta la preocupación en el punto 1. - Traté de reescribir RHS usando mis definiciones y ver si puedo obtener mi definición de tipo existencial pero me quedé:
Ni siquiera se parece remotamente a mi definición. ¿Es posible simplificar la fórmula a la que llegué? Intuitivamente, debido a que hay tipos de funciones, probablemente nunca será igual a mi definición. Pero si no son iguales, ¿son al menos 'isomórficos' en algún sentido? Si no, ¿qué "salió mal"?