How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Handbook of logic in computer science (vol. 2)
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
A Generalization of Short-Cut Fusion and its Correctness Proof
Higher-Order and Symbolic Computation
A Logic for Parametric Polymorphism
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
Inductive Definitions in the system Coq - Rules and Properties
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
Generic Programming within Dependently Typed Programming
Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming
Journal of Functional Programming
Universes for generic programs and proofs in dependent type theory
Nordic Journal of Computing
THEORETICAL PEARL Church numerals, twice!
Journal of Functional Programming
The Impact of seq on Free Theorems-Based Program Transformations
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
The Girard—Reynolds isomorphism (second edition)
Theoretical Computer Science
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Bidirectionalization for free! (Pearl)
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Free theorems involving type constructor classes: functional pearl
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Parametric datatype-genericity
Proceedings of the 2009 ACM SIGPLAN workshop on Generic programming
Singleton types here, singleton types there, singleton types everywhere
Proceedings of the 4th ACM SIGPLAN workshop on Programming languages meets program verification
Parametricity, type equality, and higher-order polymorphism
Journal of Functional Programming
Testing polymorphic properties
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Realizability and parametricity in pure type systems
FOSSACS'11/ETAPS'11 Proceedings of the 14th international conference on Foundations of software science and computational structures: part of the joint European conferences on theory and practice of software
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Adding equations to system f types
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
A Computational Interpretation of Parametricity
LICS '12 Proceedings of the 2012 27th Annual IEEE/ACM Symposium on Logic in Computer Science
Dependently typed programming with singletons
Proceedings of the 2012 Haskell Symposium
Dependently typed programming based on automated theorem proving
MPC'12 Proceedings of the 11th international conference on Mathematics of Program Construction
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Logical relations for a logical framework
ACM Transactions on Computational Logic (TOCL)
Hi-index | 0.00 |
Reynolds' abstraction theorem shows how a typing judgement in System F can be translated into a relational statement (in second order predicate logic) about inhabitants of the type. We (in second order predicate logic) about inhabitants of the type. We obtain a similar result for a single lambda calculus (a pure type system), in which terms, types and their relations are expressed. Working within a single system dispenses with the need for an interpretation layer, allowing for an unusually simple presentation. While the unification puts some constraints on the type system (which we spell out), the result applies to many interesting cases, including dependently-typed ones.