A strong call-by-need calculus

11/02/2021
by   Thibaut Balabonski, et al.
0

We present a call-by-need λ-calculus that enables strong reduction (that is, reduction inside the body of abstractions) and guarantees that arguments are only evaluated if needed and at most once. This calculus uses explicit substitutions and subsumes the existing strong-call-by-need strategy, but allows for more reduction sequences, and often shorter ones, while preserving the neededness. The calculus is shown to be normalizing in a strong sense: Whenever a λ-term t admits a normal form n in the λ-calculus, then any reduction sequence from t in the calculus eventually reaches a representative of the normal form n. We also exhibit a restriction of this calculus that has the diamond property and that only performs reduction sequences of minimal length, which makes it systematically better than the existing strategy. We have used the Abella proof assistant to formalize part of this calculus, and discuss how this experiment affected its design. In particular, it led us to derive a new description of call-by-need reduction based on inductive rules.

READ FULL TEXT
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

page 2

page 3

page 4

05/31/2021

Elegant elaboration with function invocation

We present an elegant design of the core language in a dependently-typed...
01/11/2022

A Faithful and Quantitative Notion of Distant Reduction for Generalized Applications (Long Version)

We introduce a call-by-name lambda-calculus λ J with generalized applica...
08/20/2018

Lambda Calculus with Explicit Read-back

This paper introduces a new term rewriting system that is similar to the...
12/02/2019

A categorical reduction system for linear logic

We build calculus on the categorical model of linear logic. It enables u...
04/20/2021

On reduction and normalization in the computational core

We study the reduction in a lambda-calculus derived from Moggi's computa...
04/15/2019

A Path To DOT: Formalizing Fully-Path-Dependent Types

The Dependent Object Types (DOT) calculus aims to formalize the Scala pr...
12/11/2018

Towards the average-case analysis of substitution resolution in λ-calculus

Substitution resolution supports the computational character of β-reduct...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.