English
Related papers

Related papers: Dijkstra Monads for All

200 papers

Dijkstra monads enable a dependent type theory to be enhanced with support for specifying and verifying effectful code via weakest preconditions. Together with their closely related counterparts, Hoare monads, they provide the basis on…

Programming Languages · Computer Science 2019-10-15 Danel Ahman , Catalin Hritcu , Kenji Maillard , Guido Martinez , Gordon Plotkin , Jonathan Protzenko , Aseem Rastogi , Nikhil Swamy

One can perform equational reasoning about computational effects with a purely functional programming language thanks to monads. Even though equational reasoning for effectful programs is desirable, it is not yet mainstream. This is partly…

Logic in Computer Science · Computer Science 2025-01-15 Reynald Affeldt , Jacques Garrigue , Takafumi Saikawa

Monads are a popular tool for the working functional programmer to structure effectful computations. This paper presents polymonads, a generalization of monads. Polymonads give the familiar monadic bind the more general type forall a,b. L a…

Programming Languages · Computer Science 2014-06-10 Michael Hicks , Gavin Bierman , Nataliya Guts , Daan Leijen , Nikhil Swamy

Relational properties describe multiple runs of one or more programs. They characterize many useful notions of security, program refinement, and equivalence for programs with diverse computational effects, and they have received much…

Graded monads refine traditional monads using effect annotations in order to describe quantitatively the computational effects that a program can generate. They have been successfully applied to a variety of formal systems for reasoning…

Logic in Computer Science · Computer Science 2026-01-22 Satoshi Kura , Marco Gaboardi , Taro Sekiyama , Hiroshi Unno

We present a framework for compositional program verification based on polynomial functors in dependent type theory. In this framework, polynomial functors serve as program interfaces, Kleisli morphisms for the free monad monad serve as…

Logic in Computer Science · Computer Science 2026-04-03 C. B. Aberlé

Monads are a useful tool for structuring effectful features of computation such as state, non-determinism, and continuations. In the last decade, several generalisations of monads have been suggested which provide a more fine-grained model…

Programming Languages · Computer Science 2020-05-04 Dominic Orchard , Philip Wadler , Harley Eades

Monads provide a simple and concise interface to user-defined computational effects in functional programming languages. This enables equational reasoning about effects, abstraction over monadic interfaces and the development of monad…

Programming Languages · Computer Science 2025-05-05 Yuchen Jiang , Runze Xue , Max S. New

Given a programming language, can we give a monadic denotational semantics that is stable under language extension? Models containing only a single monad are not stable. Models based on type-and-effect systems, in which there is a monad for…

Programming Languages · Computer Science 2017-07-24 Ohad Kammar , Dylan McDermott

In functional programming, monads are supposed to encapsulate computations, effectfully producing the final result, but keeping to themselves the means of acquiring it. For various reasons, we sometimes want to reveal the internals of a…

Programming Languages · Computer Science 2012-02-15 Maciej Piróg , Jeremy Gibbons

There is a recent interest for the verification of monadic programs using proof assistants. This line of research raises the question of the integration of monad transformers, a standard technique to combine monads. In this paper, we extend…

Logic in Computer Science · Computer Science 2021-07-20 Reynald Affeldt , David Nowak

Dependent types provide a lightweight and modular means to integrate programming and formal program verification. In particular, the types of programs written in dependently typed programming languages (Agda, Idris, F*, etc.) can be used to…

Logic in Computer Science · Computer Science 2017-10-10 Danel Ahman

This paper presents equational-based logics for proving first order properties of programming languages involving effects. We propose two dual inference system patterns that can be instanciated with monads or comonads in order to be used…

Logic in Computer Science · Computer Science 2013-10-15 Jean-Guillaume Dumas , Dominique Duval , Jean-Claude Reynaud

Notions of computation can be modelled by monads. Algebraic effects offer a characterization of monads in terms of algebraic operations and equational axioms, where operations are basic programming features, such as reading or updating the…

Programming Languages · Computer Science 2024-05-21 Cristina Matache , Sam Lindley , Sean Moss , Sam Staton , Nicolas Wu , Zhixuan Yang

The algebraic properties of the combination of probabilistic choice and nondeterministic choice have long been a research topic in program semantics. This paper explains a formalization in the Coq proof assistant of a monad equipped with…

Logic in Computer Science · Computer Science 2023-12-12 Reynald Affeldt , Jacques Garrigue , David Nowak , Takafumi Saikawa

Monads govern computational side-effects in programming semantics. They can be combined in a ''bottom-up'' way to handle several instances of such effects. Indexed monads and graded monads do this in a modular way. Here, instead, we equip…

Logic in Computer Science · Computer Science 2021-08-05 Carmen Constantin , Nuiok Dicaire , Chris Heunen

We introduce dicodensity monads: a generalisation of pointwise codensity monads generated by functors to monads generated by mixed-variant bifunctors. Our construction is based on the notion of strong dinaturality (also known as Barr…

Logic in Computer Science · Computer Science 2026-03-03 Maciej Piróg , Filip Sieczkowski

The delay monad provides a way to introduce general recursion in type theory. To write programs that use a wide range of computational effects directly in type theory, we need to combine the delay monad with the monads of these effects.…

Logic in Computer Science · Computer Science 2025-10-15 Rasmus Ejlers Møgelberg , Maaike Zwart

In this paper, a monad-based denotational model is introduced and shown adequate for the Proto-Quipper family of calculi, themselves being idealized versions of the Quipper programming language. The use of a monadic approach allows us to…

Programming Languages · Computer Science 2025-12-01 Ken Sakayori , Andrea Colledan , Ugo Dal Lago

Inference algorithms for probabilistic programming are complex imperative programs with many moving parts. Efficient inference often requires customising an algorithm to a particular probabilistic model or problem, sometimes called…

Programming Languages · Computer Science 2024-12-24 Minh Nguyen , Roly Perera , Meng Wang , Steven Ramsay
‹ Prev 1 2 3 10 Next ›