L-types for resource awareness: an implicit name approach

12/21/2021
by   Silvia Ghilezan, et al.
0

Since the early work of Church on λI-calculus and Gentzen on structural rules, the control of variable use has gained an important role in computation and logic emerging different resource aware calculi and substructural logics with applications to programming language and compiler design. This paper presents the first formalization of variable control in calculi with implicit names based on de Bruijn indices. We design and implement three calculi: first, a restricted calculus with implicit names; then, a restricted calculus with implicit names and explicit substitution, and finally, an extended calculus with implicit names and resource control. We propose a novel concept of L-types, which are used (a) to define terms and (b) to characterize certain classes of terms in each of the presented calculi. We have adopted to work simultaneously on the design and implementation in Haskell and Agda. The benefit of this strategy is twofold: dependent types enable to express and check properties of programs in the type system and constructive proofs of preservation enable a constructive evaluator for terms (programs).

READ FULL TEXT

page 1

page 2

page 3

page 4

01/26/2021

A program logic for fresh name generation

We present a program logic for Pitts and Stark's ν-calculus, an extensio...
10/27/2018

Resource Control in P2P Cryptocurrency Networks

For decentralised P2P networks, it is very important to have a mechanism...
06/13/2020

Pure Pattern Calculus à la de Bruijn

It is well-known in the field of programming languages that dealing with...
08/17/2017

Towards Algorithmic Typing for DOT

The Dependent Object Types (DOT) calculus formalizes key features of Sca...
03/18/2019

A constructive proof of dependent choice in classical arithmetic via memoization

In a recent paper, Herbelin developed dPA^ω, a calculus in which constru...
08/21/2019

Scala Implicits are Everywhere: A large-scale study of the use of Implicits in the wild

The Scala programming language offers two distinctive language features ...
07/05/2018

Formalisation in Constructive Type Theory of Barendregt's Variable Convention for Generic Structures with Binders

We introduce a universe of regular datatypes with variable binding infor...