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

research
01/26/2021

A program logic for fresh name generation

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

Resource Control in P2P Cryptocurrency Networks

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

Pure Pattern Calculus à la de Bruijn

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

Towards Algorithmic Typing for DOT

The Dependent Object Types (DOT) calculus formalizes key features of Sca...
research
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...
research
09/06/2022

Encodability and Separation for a Reflective Higher-Order Calculus

The ρ-calculus (Reflective Higher-Order Calculus) of Meredith and Radest...
research
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 ...

Please sign up or login with your details

Forgot password? Click here to reset