TinkerType: A language for playing with formal systems

22Citations
Citations of this article
35Readers
Mendeley users who have this article in their library.

Abstract

TinkerType is a pragmatic framework for compact and modular description of formal systems (type systems, operational semantics, logics, etc.). A family of related systems is broken down into a set of clauses - individual inference rules - and a set of features controlling the inclusion of clauses in particular systems. Simple static checks are used to help maintain consistency of the generated systems. We present TinkerType and its implementation and describe its application to two substantial repositories of typed lambda-calculi. The first repository covers a broad range of typing features, including subtyping, polymorphism, type operators and kinding, computational effects, and dependent types. It describes both declarative and algorithmic aspects of the systems, and can be used with our tool, the TinkerType Assembler, to generate calculi either in the form of typeset collections of inference rules or as executable ML typecheckers. The second repository addresses a smaller collection of systems, and provides modularized proofs of basic safety properties.

Cite

CITATION STYLE

APA

Levin, M. Y., & Pierce, B. C. (2003). TinkerType: A language for playing with formal systems. Journal of Functional Programming, 13(2), 295–316. https://doi.org/10.1017/S0956796802004550

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free