English
Related papers

Related papers: The Functional Machine Calculus III: Control

200 papers

What is computable with limited resources? How can we verify the correctness of computations? How to measure computational power with precision? Despite the immense scientific and engineering progress in computing, we still have only…

Other Computer Science · Computer Science 2016-10-20 Attila Egri-Nagy

First-order model counting (FOMC) is a computational problem that asks to count the models of a sentence in finite-domain first-order logic. In this paper, we argue that the capabilities of FOMC algorithms to date are limited by their…

Logic in Computer Science · Computer Science 2023-06-08 Paulius Dilkas , Vaishak Belle

Existing formalisms for the algebraic specification and representation of networks of reversible agents suffer some shortcomings. Despite multiple attempts, reversible declensions of the Calculus of Communicating Systems (CCS) do not offer…

Logic in Computer Science · Computer Science 2021-03-30 Clément Aubert , Doriana Medić

Push/enter and eval/apply are two calling conventions used in implementations of functional languages. In this paper, we explore the following observation: when considering functions with multiple arguments, the stack under the push/enter…

Programming Languages · Computer Science 2016-06-22 Maciej Piróg , Jeremy Gibbons

Randomized higher-order computation can be seen as being captured by a lambda calculus endowed with a single algebraic operation, namely a construct for binary probabilistic choice. What matters about such computations is the probability of…

Logic in Computer Science · Computer Science 2020-12-24 Ugo Dal Lago , Claudia Faggian , Simona Ronchi Della Rocca

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

We formally verify an abstract machine for a call-by-value lambda-calculus with de Bruijn terms, simple substitution, and small-step semantics. We follow a stepwise refinement approach starting with a naive stack machine with substitution.…

Logic in Computer Science · Computer Science 2019-01-03 Fabian Kunze , Gert Smolka , Yannick Forster

Automated analysis of recursive derivations in logic programming is known to be a hard problem. Both termination and non-termination are undecidable problems in Turing-complete languages. However, some declarative languages offer a…

Programming Languages · Computer Science 2016-08-22 E. Komendantskaya , P. Johann , M. Schmidt

Capture calculus has recently been proposed as a solution to effect checking, achieved by tracking the captured references of terms in the types. Boxes, along with the box and unbox operations, are a crucial construct in capture calculus,…

Programming Languages · Computer Science 2023-06-13 Yichen Xu , Martin Odersky

Functional decomposition is the process of breaking down a function $f$ into a composition $f=g(f_1,\dots,f_k)$ of simpler functions $f_1,\dots,f_k$ belonging to some class $\mathcal{F}$. This fundamental notion can be used to model…

Computational Complexity · Computer Science 2026-01-14 Mateus de Oliveira Oliveira , Wim Van den Broeck

An efficient and flexible engine for computing fixed points is critical for many practical applications. In this paper, we firstly present a goal-directed fixed point computation strategy in the logic programming paradigm. The strategy…

Programming Languages · Computer Science 2007-05-23 Hai-Feng Guo , Gopal Gupta

Convolution admits a natural formulation as a functional operation on matrices. Motivated by the functional and entrywise calculi, this leads to a framework in which convolution defines a matrix transform that preserves positivity. Within…

Functional Analysis · Mathematics 2026-01-01 Javad Mashreghi , Mostafa Nasri , Prateek Kumar Vishwakarma

Call-by-Push-Value (CBPV) is a programming paradigm subsuming both Callby-Name (CBN) and Call-by-Value (CBV) semantics. The essence of this paradigm is captured by the Bang Calculus, a (concise) term language connecting CBPV and Linear…

Logic in Computer Science · Computer Science 2023-05-08 Antonio Bucciarelli , Delia Kesner , Alejandro Ríos , Andrés Viso

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

This work proposes a dependent type theory that combines functions and session-typed processes (with value dependencies) through a contextual monad, internalising typed processes in a dependently-typed lambda-calculus. The proposed…

Programming Languages · Computer Science 2018-01-25 Bernardo Toninho , Nobuko Yoshida

Bayesian inference involves the specification of a statistical model by a statistician or practitioner, with careful thought about what each parameter represents. This results in particularly interpretable models which can be used to…

Computation · Statistics 2019-08-07 Jonathan Law , Darren Wilkinson

We investigate cut-elimination and cut-simulation in impredicative (higher-order) logics. We illustrate that adding simple axioms such as Leibniz equations to a calculus for an impredicative logic -- in our case a sequent calculus for…

Logic in Computer Science · Computer Science 2019-03-14 Christoph Benzmueller , Chad E. Brown , Michael Kohlhase

Numerical algorithms and computational tools are instrumental in navigating and addressing complex simulation and data processing tasks. The exponential growth of metadata and parameter-driven simulations has led to an increasing demand for…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-05-02 Pavan L. Veluvali , Jan Heiland , Peter Benner

Recursive definitions of predicates are usually interpreted either inductively or coinductively. Recently, a more powerful approach has been proposed, called flexible coinduction, to express a variety of intermediate interpretations,…

Programming Languages · Computer Science 2020-09-23 Francesco Dagnino , Davide Ancona , Elena Zucca

Imperative session types provide an imperative interface to session-typed communication. In such an interface, channel references are first-class objects with operations that change the typestate of the channel. Compared to functional…

Programming Languages · Computer Science 2023-06-22 Hannes Saffrich , Peter Thiemann