The system F of variable types, fifteen years later
Theoretical Computer Science
Intersection type assignment systems with higher-order algebraic rewriting
Theoretical Computer Science
Normalization results for typeable rewrite systems
Information and Computation
The Java Language Specification
The Java Language Specification
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
FreshML: programming with binders made simple
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
Theoretical Computer Science
Information and Computation
Journal of Logic and Computation
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Curry-style types for nominal terms
TYPES'06 Proceedings of the 2006 international conference on Types for proofs and programs
A Nominal Axiomatization of the Lambda Calculus
Journal of Logic and Computation
Principal types for nominal theories
FCT'11 Proceedings of the 18th international conference on Fundamentals of computation theory
Principal types for nominal theories
FCT'11 Proceedings of the 18th international conference on Fundamentals of computation theory
Hi-index | 0.00 |
We define rank 1 polymorphic types for nominal rewrite rules and equations. Typing environments type atoms, variables, and function symbols, and since we follow a Curry-style approach there is no need to fully annotate terms with types. Our system has principal types, and we give rule and axiom formats to guarantee preservation of types under both rewriting and equality reasoning. This is non-trivial because substitution does not avoid capture, so a substituted symbol can--if we are not careful--appear in inconsistent typing contexts.