Formal parametric polymorphism
Theoretical Computer Science - A collection of contributions in honour of Corrado Bo¨hm on the occasion of his 70th birthday
Full abstraction for idealized Algol with passive expressions
Theoretical Computer Science - Special issue on linear logic, 1
On full abstraction for PCF: I, II, and III
Information and Computation
Information and Computation
A Logic for Parametric Polymorphism
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
Towards a theory of type structure
Programming Symposium, Proceedings Colloque sur la Programmation
Full abstraction for functional languages with control
LICS '97 Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science
Parametricity as a notion of uniformity in reflexive graphs
Parametricity as a notion of uniformity in reflexive graphs
Evolving games and essential nets for affine polymorphism
TLCA'01 Proceedings of the 5th international conference on Typed lambda calculi and applications
A game semantics for generic polymorphism
FOSSACS'03/ETAPS'03 Proceedings of the 6th International conference on Foundations of Software Science and Computation Structures and joint European conference on Theory and practice of software
Hi-index | 0.00 |
Curry-style system F, that is, system F with no explicit types in terms, may be viewed as a core presentation of polymorphism from the point of view of programming languages. This paper gives a characterisation of type isomorphisms for this language using a game model, whose intuitions come from both the syntax and the game semantics universe. The model is composed of an untyped part to interpret terms, a notion of arena to interpret types and a typed part to express the fact that an untyped strategy σ plays on an arena A. By analysing isomorphisms in the model, we prove that the equational system corresponding to type isomorphisms for Curry-style system F is the extension of the equational system for Church-style isomorphisms with a new, non-trivial equation: ∀X.AA[∀Y.Y/X] if X appears only positively in A.