English
Related papers

Related papers: Dijkstra Monads for All

200 papers

Dynamically typed object-oriented languages enable programmers to write elegant, reusable and extensible programs. However, with the current methodology for program verification, the absence of static type information creates significant…

Programming Languages · Computer Science 2015-01-13 Björn Engelmann , Ernst-Rüdiger Olderog , Nils Erik Flick

Logical relations and their generalizations are a fundamental tool in proving properties of lambda-calculi, e.g., yielding sound principles for observational equivalence. We propose a natural notion of logical relations able to deal with…

Logic in Computer Science · Computer Science 2009-09-29 Jean Goubault-Larrecq , Slawomir Lasota , David Nowak

Probabilistic programming languages, which exist in abundance, are languages that allow users to calculate probability distributions defined by probabilistic programs, by using inference algorithms. However, the underlying inference…

Programming Languages · Computer Science 2026-01-15 Oliver Goldstein , Ohad Kammar

Functional logic languages are a high-level approach to programming by combining the most important declarative features. They abstract from small-step operational details so that programmers can concentrate on the logical aspects of an…

Programming Languages · Computer Science 2026-05-01 Michael Hanus , Kai-Oliver Prott , Finn Teegen

A Hopf monad, in the sense of Brugui\`eres, Lack, and Virelizier, is a special kind of monad that can be defined for any monoidal category. In this note, we study Hopf monads in the case of a category with finite biproducts, seen as a…

Category Theory · Mathematics 2023-09-13 Masahito Hasegawa , Jean-Simon Pacaud Lemay

We show that time complexity analysis of higher-order functional programs can be effectively reduced to an arguably simpler (although computationally equivalent) verification problem, namely checking first-order inequalities for validity.…

Logic in Computer Science · Computer Science 2012-10-26 Ugo Dal Lago , Barbara Petit

Describing systems in terms of choices and their resulting costs and rewards offers the promise of freeing algorithm designers and programmers from specifying how those choices should be made; in implementations, the choices can be realized…

Logic in Computer Science · Computer Science 2024-02-14 Martin Abadi , Gordon Plotkin

Initial semantics aims to capture inductive structures and their properties as initial objects in suitable categories. We focus on the initial semantics aiming to model the syntax and substitution structure of programming languages with…

Programming Languages · Computer Science 2025-02-18 Thomas Lamiaux , Benedikt Ahrens

Agda is a dependently-typed programming language and a proof assistant, pivotal in proof formalization and programming language theory. This paper extends the Agda ecosystem into machine learning territory, and, vice versa, makes…

Machine Learning · Computer Science 2024-10-31 Konstantinos Kogkalidis , Orestis Melkonian , Jean-Philippe Bernardy

In this paper we use pre existing language support for type modifiers and object capabilities to enable a system for sound runtime verification of invariants. Our system guarantees that class invariants hold for all objects involved in…

Programming Languages · Computer Science 2019-02-28 Isaac Oscar Gariano , Marco Servetto , Alex Potanin

In this paper, we present an Agda formalization of a normalizer for simply-typed lambda terms. The normalizer consists of two coinductively defined functions in the delay monad: One is a standard evaluator of lambda terms to closures, the…

Logic in Computer Science · Computer Science 2014-06-10 Andreas Abel , James Chapman

Applicative functors are a generalisation of monads. Both allow the expression of effectful computations into an otherwise pure language, like Haskell. Applicative functors are to be preferred to monads when the structure of a computation…

Programming Languages · Computer Science 2014-06-10 Paolo Capriotti , Ambrus Kaposi

When a new programming language appears, the syntax and intended behaviour of its programs need to be specified. The behaviour of each language construct can be concisely specified by translating it to fundamental constructs (funcons),…

Programming Languages · Computer Science 2023-08-22 Peter D. Mosses

One of the proposed solutions for improving the scalability of semantics of programming languages is Component-Based Semantics, introduced by Peter D. Mosses. It is expected that this framework can also be used effectively for modular meta…

Logic in Computer Science · Computer Science 2011-08-17 Ken Madlener , Sjaak Smetsers , Marko van Eekelen

Distributive laws of a monad T over a functor F are categorical tools for specifying algebra-coalgebra interaction. They proved to be important for solving systems of corecursive equations, for the specification of well-behaved structural…

Logic in Computer Science · Computer Science 2017-01-11 Marcello M. Bonsangue , Helle Hvid Hansen , Alexander Kurz , Jurriaan Rot

We introduce Refinement Reflection, a new framework for building SMT-based deductive verifiers. The key idea is to reflect the code implementing a user-defined function into the function's (output) refinement type. As a consequence, at uses…

Programming Languages · Computer Science 2019-07-16 Niki Vazou , Anish Tondwalkar , Vikraman Choudhury , Ryan G. Scott , Ryan R. Newton , Philip Wadler , Ranjit Jhala

This work utilizes the plethora of work on verification of sequential programs for the purpose of verifying concurrent programs. We reduce the verification of a concurrent program to a series of verification tasks of sequential programs.…

Programming Languages · Computer Science 2021-06-03 Dan Rasin , Orna Grumberg , Sharon Shoham

Type systems designed for information-flow control commonly use a program-counter label to track the sensitivity of the context and rule out data leakage arising from effectful computation in a sensitive context. Currently, type-system…

Programming Languages · Computer Science 2021-01-14 Andrew K. Hirsch , Ethan Cecchetti

In compositional model-theoretic semantics, researchers assemble truth-conditions or other kinds of denotations using the lambda calculus. It was previously observed that the lambda terms and/or the denotations studied tend to follow the…

Computation and Language · Computer Science 2016-07-11 Jirka Maršík , Maxime Amblard

Bidirectional transformations (bx) support principled consistency maintenance between data sources. Each data source corresponds to one perspective on a composite system, manifested by operations to 'get' and 'set' a view of the whole from…

Programming Languages · Computer Science 2017-09-12 Faris Abou-Saleh , James Cheney , Jeremy Gibbons , James McKinna , Perdita Stevens