English
Related papers

Related papers: Complexity Analysis for Call-by-Value Higher-Order…

200 papers

In a recent paper we introduced a new framework for the study of call by need computations to normal form and root-stable form in term rewriting. Using elementary tree automata techniques and ground tree transducers we obtained simple…

Logic in Computer Science · Computer Science 2011-11-29 Irène Durand , Aart Middeldorp

In a previous work, the first author extended to higher-order rewriting and dependent types the use of size annotations in types, a termination proof technique called type or size based termination and initially developed for ML-like…

Logic in Computer Science · Computer Science 2016-08-16 Frédéric Blanqui , Colin Riba

We prove that orthogonal constructor term rewrite systems and lambda-calculus with weak (i.e., no reduction is allowed under the scope of a lambda-abstraction) call-by-value reduction can simulate each other with a linear overhead. In…

Programming Languages · Computer Science 2019-03-14 Ugo Dal Lago , Simone Martini

This paper describes an automatic termination checker for a generic first-order call-by-value language in ML style. We use the fact that value are built from variants and tuples to keep some information about how arguments of recursive call…

Logic in Computer Science · Computer Science 2015-07-01 Hyvernat Pierre

We prove that orthogonal constructor term rewrite systems and lambda-calculus with weak (i.e., no reduction is allowed under the scope of a lambda-abstraction) call-by-value reduction can simulate each other with a linear overhead. In…

Programming Languages · Computer Science 2012-08-03 Ugo Dal Lago , Simone Martini

We develop a static complexity analysis for a higher-order functional language with structural list recursion. The complexity of an expression is a pair consisting of a cost and a potential. The former is defined to be the size of the…

Programming Languages · Computer Science 2013-05-29 N. Danner , J. Paykin , J. S. Royer

The paper extends the expectation transformer based analysis of higher-order probabilistic programs to the quantum higher-order setting. The quantum language we are considering can be seen as an extension of PCF, featuring unbounded…

Logic in Computer Science · Computer Science 2026-01-26 Martin Avanzini , Alejandro Díaz-Caro , Emmanuel Hainry , Romain Péchoux

All current investigations to analyze the derivational complexity of term rewrite systems are based on a single termination method, possibly preceded by transformations. However, the exclusive use of direct criteria is problematic due to…

Logic in Computer Science · Computer Science 2015-07-01 Harald Zankl , Martin Korp

Interpretation methods and their restrictions to polynomials have been deeply used to control the termination and complexity of first-order term rewrite systems. This paper extends interpretation methods to a pure higher order functional…

Logic in Computer Science · Computer Science 2023-06-22 Emmanuel Hainry , Romain Péchoux

We propose a notion of complexity for oriented conditional term rewrite systems satisfying certain restrictions. This notion is realistic in the sense that it measures not only successful computations, but also partial computations that…

Logic in Computer Science · Computer Science 2019-03-14 Cynthia Kop , Aart Middeldorp , Thomas Sternagel

This paper formalizes and proves correct a compilation scheme for mutually-recursive definitions in call-by-value functional languages. This scheme supports a wider range of recursive definitions than previous methods. We formalize our…

Programming Languages · Computer Science 2010-02-01 Tom Hirschowitz , Xavier Leroy , J. B. Wells

This paper is an expository contribution reporting on published work. It focusses on an approach followed in the rewriting community to formalize the concept of strategy. Based on rewriting concepts, several definitions of strategy are…

Logic in Computer Science · Computer Science 2013-03-05 Hélène Kirchner

A typical way of analyzing the time complexity of functional programs is to extract a recurrence expressing the running time of the program in terms of the size of its input, and then to solve the recurrence to obtain a big-O bound. For…

Programming Languages · Computer Science 2020-08-03 Joseph W. Cutler , Daniel R. Licata , Norman Danner

We revisit parallel-innermost term rewriting as a model of parallel computation on inductive data structures and provide a corresponding notion of runtime complexity parametric in the size of the start term. We propose automatic techniques…

Logic in Computer Science · Computer Science 2026-04-08 Thaïs Baudon , Carsten Fuhs , Laure Gonnord

Levy's call-by-push-value is a comprehensive programming paradigm that combines elements from functional and imperative programming, supports computational effects and subsumes both call-by-value and call-by-name evaluation strategies. In…

Programming Languages · Computer Science 2025-03-11 Sergey Goncharov , Stelios Tsampas , Henning Urbat

Call-by-need evaluation for the lambda-calculus can be seen as merging the best of call-by-name and call-by-value, namely the wise erasing behaviour of the former and the wise duplicating behaviour of the latter. To better understand how…

Logic in Computer Science · Computer Science 2026-05-08 Beniamino Accattoli , Adrienne Lancelot

We examine the relationship between the algebraic lambda-calculus, a fragment of the differential lambda-calculus and the linear-algebraic lambda-calculus, a candidate lambda-calculus for quantum computation. Both calculi are algebraic:…

Logic in Computer Science · Computer Science 2015-07-01 Ali Assaf , Alejandro Díaz-Caro , Simon Perdrix , Christine Tasson , Benoî t Valiron

We present a call-by-need $\lambda$-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…

Logic in Computer Science · Computer Science 2023-06-22 Thibaut Balabonski , Antoine Lanco , Guillaume Melquiond

Calculi with control operators have been studied to reason about control in programming languages and to interpret the computational content of classical proofs. To make these calculi into a real programming language, one should also…

Logic in Computer Science · Computer Science 2012-10-12 Robbert Krebbers

This paper introduces a new methodology for the complexity analysis of higher-order functional programs, which is based on three components: a powerful type system for size analysis and a sound type inference procedure for it, a ticking…

Logic in Computer Science · Computer Science 2017-04-20 Martin Avanzini , Ugo Dal Lago