DSL for Type Systems
Loading...
Files
Downloads
0
Date issued
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoká škola báňská – Technická univerzita Ostrava
Location
Signature
Abstract
The result of this thesis is a tiny dependently typed language suitable for specifying type systems and proving properties about them.
This language is build around the idea of \emph{bidirectional types} — types whose parameters are separated into inputs and outputs.
Most dependently typed languages have a big problem: using a lot of dependent types leads to combinatoric explosion of parameters that need to be dragged everywhere.
It's common to sweap them under the rug by making them implicit, but that still has issues.
To avoid them entirely, the presented type system allows output parameters to bind variables and to be pattern matched on.
This eliminates most of these parameters.
A prototype of this language has been implemented.
One of my goals is portability: I should be able to write definitions and basic proofs once, and export them to various languages.
To demonstrate that my language is suitable for this, a specification and implementation of a translation to Rocq has been provided.
Description
Delayed publication
Available after
Subject(s)
Type theory, Type systems, LF, Twelf, Bidirectional type checking, dependent types