Quantitative program reasoning with graded modal types

Dominic Orchard, Vilem Benjamin Liepelt, Harley Eades

Research output: Contribution to journalArticlepeer-review

19 Scopus citations

Abstract

In programming, some data acts as a resource (e.g., file handles, channels) subject to usage constraints. This poses a challenge to software correctness as most languages are agnostic to constraints on data. The approach of linear types provides a partial remedy, delineating data into resources to be used but never copied or discarded, and unconstrained values. Bounded Linear Logic provides a more fine-grained approach, quantifying non-linear use via an indexed-family of modalities. Recent work on coeffect types generalises this idea to graded comonads, providing type systems which can capture various program properties. Here, we propose the umbrella notion of graded modal types, encompassing coeffect types and dual notions of type-based effect reasoning via graded monads. In combination with linear and indexed types, we show that graded modal types provide an expressive type theory for quantitative program reasoning, advancing the reach of type systems to capture and verify a broader set of program properties. We demonstrate this approach via a type system embodied in a fully-fledged functional language called Granule, exploring various examples.

Original languageEnglish (US)
Article number110
JournalProceedings of the ACM on Programming Languages
Volume3
Issue numberICFP
DOIs
StatePublished - Aug 2019
Externally publishedYes

Keywords

  • Coeffects
  • Graded modal types
  • Implementation
  • Linear types

ASJC Scopus subject areas

  • Software
  • Safety, Risk, Reliability and Quality

Cite this