English
Related papers

Related papers: The Call-by-need Lambda Calculus, Revisited

200 papers

Safety is a syntactic condition of higher-order grammars that constrains occurrences of variables in the production rules according to their type-theoretic order. In this paper, we introduce the safe lambda calculus, which is obtained by…

Programming Languages · Computer Science 2015-07-01 William Blum , C. -H. Luke Ong

The call-by-value lambda calculus can be endowed with permutation rules, arising from linear logic proof-nets, having the advantage of unblocking some redexes that otherwise get stuck during the reduction. We show that such an extension…

Logic in Computer Science · Computer Science 2023-06-22 Emma Kerinec , Giulio Manzonetto , Michele Pagani

Weak-head normalization is inconsistent with functional extensionality in the call-by-name $\lambda$-calculus. We explore this problem from a new angle via the conflict between extensionality and effects. Leveraging ideas from work on the…

Programming Languages · Computer Science 2016-06-22 Philip Johnson-Freyd , Paul Downen , Zena M. Ariola

In CSL-LICS 2014, Accattoli and Dal Lago showed that there is an implementation of the ordinary (i.e. strong, pure, call-by-name) $\lambda$-calculus into models like RAM machines which is polynomial in the number of $\beta$-steps, answering…

Logic in Computer Science · Computer Science 2015-05-15 Beniamino Accattoli , Claudio Sacerdoti Coen

Strong call-by-need combines full normalization with the sharing discipline of lazy evaluation, yet no prior implementation achieved both simplicity and efficiency. We introduce RKNL, an abstract machine that realizes strong call-by-need…

Programming Languages · Computer Science 2026-03-24 Małgorzata Biernacka , Witold Charatonik , Tomasz Drab

This paper provides foundations for strong (that is, possibly under abstraction) call-by-value evaluation for the lambda-calculus. Recently, Accattoli et al. proposed a form of call-by-value strong evaluation for the lambda-calculus, the…

Logic in Computer Science · Computer Science 2023-09-22 Beniamino Accattoli , Giulio Guerrieri , Maico Leberle

We present a technique to study normalizing strategies when termination is asymptotic, that is, it appears as a limit, as opposite to reaching a normal form in a finite number of steps. Asymptotic termination occurs in several settings,…

Logic in Computer Science · Computer Science 2022-05-24 Claudia Faggian , Giulio Guerrieri

The compactness lemma in programming language theory states that any recursive function can be simulated by a finite unrolling of the function. One important use case it has is in the logical relations proof technique for proving properties…

Programming Languages · Computer Science 2024-05-06 Matias Scharager

We introduce a first proofs-as-parallel-programs correspondence for classical logic. We define a parallel and more powerful extension of the simply typed lambda calculus corresponding to an analytic natural deduction based on the excluded…

Logic in Computer Science · Computer Science 2018-09-24 Federico Aschieri , Agata Ciabattoni , Francesco Antonio Genco

We propose an implementation of lambda+, a recently introduced simply typed lambda-calculus with pairs where isomorphic types are made equal. The rewrite system of lambda+ is a rewrite system modulo an equivalence relation, which makes its…

Logic in Computer Science · Computer Science 2018-11-06 Alejandro Díaz-Caro , Pablo E. Martínez López

The resource calculus is an extension of the lambda-calculus allowing to model resource consumption. It is intrinsically non-deterministic and has two general notions of reduction - one parallel, preserving all the possible results as a…

Logic in Computer Science · Computer Science 2012-11-20 Maurizio Dominici , Simona Ronchi Della Rocca , Paolo Tranquilli

Mechanical proofs by logical relations often involve tedious reasoning about substitution. In this paper, we show that this is not necessarily the case, by developing, in Agda, a proof that all simply typed lambda calculus expressions…

Programming Languages · Computer Science 2023-09-28 Emmanuel Suárez Acevedo , Stephanie Weirich

Much of the controversy about methods for automated decision making has focused on specific calculi for combining beliefs or propagating uncertainty. We broaden the debate by (1) exploring the constellation of secondary tasks surrounding…

Artificial Intelligence · Computer Science 2013-04-11 Michael P. Wellman , David Heckerman

We present a C-language implementation of the lambda-pi calculus by extending the (call-by-need) stack machine of Ariola, Chang and Felleisen to hold types, using a typeless- tagless- final interpreter strategy. It has the advantage of…

Programming Languages · Computer Science 2015-09-24 David M. Rogers

We introduce a set of eight universal Rules of Inference by which computer programs with known properties (axioms) are transformed into new programs with known properties (theorems). Axioms are presented to formalize a segment of Number…

Logic in Computer Science · Computer Science 2007-05-23 Charlie Volkstorf

Dependently typed lambda calculi such as the Logical Framework (LF) are capable of representing relationships between terms through types. By exploiting the "formulas-as-types" notion, such calculi can also encode the correspondence between…

Logic in Computer Science · Computer Science 2010-07-07 Zachary Snow , David Baelde , Gopalan Nadathur

We show that call-by-need is observationally equivalent to weak-head needed reduction. The proof of this result uses a semantical argument based on a (non-idempotent) intersection type system called $\mathcal{V}$. Interestingly, system…

Logic in Computer Science · Computer Science 2020-09-09 Delia Kesner , Alejandro Ríos , Andrés Viso

The classical lambda calculus may be regarded both as a programming language and as a formal algebraic system for reasoning about computation. It provides a computational model equivalent to the Turing machine, and continues to be of…

Quantum Physics · Physics 2007-05-23 Andre van Tonder

The lambda-calculus is a peculiar computational model whose definition does not come with a notion of machine. Unsurprisingly, implementations of the lambda-calculus have been studied for decades. Abstract machines are implementations…

Programming Languages · Computer Science 2017-01-04 Beniamino Accattoli

This paper is an introduction to Lambdix, a lazy Lisp interpreter implemented at the Research Laboratory of Paris XI University (Laboratoire de Recherche en Informatique, Orsay). Lambdix was devised in the course of an investigation into…

Programming Languages · Computer Science 2007-07-26 Catherine Recanati
‹ Prev 1 3 4 5 6 7 10 Next ›