Victoria University

Decidable Subtyping for Path Dependent Types

ResearchArchive/Manakin Repository

Show simple item record

dc.contributor.advisor Potanin, Alex
dc.contributor.advisor Groves, Lindsay
dc.contributor.advisor Aldrich, Jonathan
dc.contributor.author Mackay, Julian
dc.date.accessioned 2020-08-10T21:52:44Z
dc.date.available 2020-08-10T21:52:44Z
dc.date.copyright 2020
dc.date.issued 2020
dc.identifier.uri http://researcharchive.vuw.ac.nz/handle/10063/9081
dc.description.abstract Path dependent types form a central component of the Scala programming language. Coupled with other expressive type forms, path dependent types provide for a diverse set of concepts and patterns, from nominality to F-bounded polymorphism. Recent years have seen much work aimed at formalising the foundations of path dependent types, most notably a hard won proof of type safety. Unfortunately subtyping remains undecidable, presenting problems for programmers who rely on the results of their tools. One such tool is Dotty, the basis for the upcoming Scala 3. Another is Wyvern, a new programming language that leverages path dependent types to support both first class modules and parametric polymorphism. In this thesis I investigate the issues with deciding subtyping in Wyvern. I define three decidable variants that retain several key instances of expressiveness including the ability to encode nominality and parametric polymorphism. Wyvfix fixes types to the contexts they are defined in, thereby eliminating expansive environments. Wyvnon-μ removes recursive subtyping, thus removing the key source of expansive environments during subtyping. Wyvμ places a syntactic restriction on the usage of recursive types. I discuss the formal properties of these variants, and the implications each has for expressing the common programming patterns of path dependent types. I have also mechanized the proofs of decidability for both Wyvfix and Wyvμ in Coq. en_NZ
dc.language.iso en_NZ
dc.publisher Victoria University of Wellington en_NZ
dc.rights.uri http://creativecommons.org/licenses/by/3.0/nz/
dc.subject Programming Languages en_NZ
dc.subject Formal Logics en_NZ
dc.subject Semantics en_NZ
dc.subject Functional Programming Languages en_NZ
dc.subject Object oriented Programming Languages en_NZ
dc.title Decidable Subtyping for Path Dependent Types en_NZ
dc.type Text en_NZ
vuwschema.contributor.unit School of Engineering and Computer Science en_NZ
vuwschema.type.vuw Awarded Doctoral Thesis en_NZ
thesis.degree.discipline Software Engineering en_NZ
thesis.degree.discipline Computer Science en_NZ
thesis.degree.grantor Victoria University of Wellington en_NZ
thesis.degree.level Doctoral en_NZ
thesis.degree.name Doctor of Philosophy en_NZ
dc.rights.license Creative Commons GNU GPL en_NZ
dc.rights.license Allow modifications en_NZ
dc.rights.license Allow commercial use en_NZ
dc.date.updated 2020-08-10T02:26:39Z
vuwschema.subject.anzsrcfor 080308 Programming Languages en_NZ
vuwschema.subject.anzsrcfor 080309 Software Engineering en_NZ
vuwschema.subject.anzsrctoa 1 PURE BASIC RESEARCH en_NZ


Files in this item

This item appears in the following Collection(s)

Show simple item record

http://creativecommons.org/licenses/by/3.0/nz/ Except where otherwise noted, this item's license is described as http://creativecommons.org/licenses/by/3.0/nz/

Search ResearchArchive


Advanced Search

Browse

My Account

Statistics