FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Compiling polymorphism using intensional type analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Bananas in space: extending fold and unfold to exponential types
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Encoding types in ML-like languages
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Type fixpoints: iteration vs. recursion
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Parametricity and variants of Girard's J operator
Information Processing Letters
An indexed model of recursive types for foundational proof-carrying code
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
A lightweight implementation of generics and dynamics
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Guarded recursive datatype constructors
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Encoding Intensional Type Analysis
ESOP '01 Proceedings of the 10th European Symposium on Programming Languages and Systems
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
Free theorems in the presence of seq
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parametric polymorphism and operational equivalence
Mathematical Structures in Computer Science
Intensional polymorphism in type-erasure semantics
Journal of Functional Programming
Strongly typed heterogeneous collections
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Type-FUNCTIONAL PEARL safe cast
Journal of Functional Programming
On equivalence and canonical forms in the LF type theory
ACM Transactions on Computational Logic (TOCL)
Generalizing Parametricity Using Information-flow
LICS '05 Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science
Recursive Polymorphic Types and Parametricity in an Operational Framework
LICS '05 Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science
Fast and loose reasoning is morally correct
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Simple unification-based type inference for GADTs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Free Theorems and Runtime Type Representations
Electronic Notes in Theoretical Computer Science (ENTCS)
Syntactic Logical Relations for Polymorphic and Recursive Types
Electronic Notes in Theoretical Computer Science (ENTCS)
Foundations for structured programming with GADTs
Proceedings of the 35th 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
Step-Indexed syntactic logical relations for recursive and quantified types
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Parametricity and dependent types
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
A Computational Interpretation of Parametricity
LICS '12 Proceedings of the 2012 27th Annual IEEE/ACM Symposium on Logic in Computer Science
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
A relationally parametric model of dependent type theory
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Logical relations for a logical framework
ACM Transactions on Computational Logic (TOCL)
Hi-index | 0.00 |
Propositions that express type equality are a frequent ingredient of modern functional programming – they can encode generic functions, dynamic types, and GADTs. Via the Curry–Howard correspondence, these propositions are ordinary types inhabited by proof terms, computed using runtime type representations. In this paper we show that two examples of type equality propositions actually do reflect type equality; they are only inhabited when their arguments are equal and their proofs are unique (up to equivalence.) We show this result in the context of a strongly normalizing language with higher-order polymorphism and primitive recursion over runtime-type representations by proving Reynolds's abstraction theorem. We then use this theorem to derive “free” theorems about equality types.