English
Related papers

Related papers: A Practical Formalization of Monadic Equational Re…

200 papers

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

What provides the highest level of assurance for correctness of execution within a programming language? One answer, and our solution in particular, to this problem is to provide a formalization for, if it exists, the denotational semantics…

Category Theory · Mathematics 2023-03-17 Zachary Flores , Angelo Taranto , Eric Bond , Yakir Forman

Soundness and completeness with respect to equational theories for programming languages are fundamental properties in the study of categorical semantics. However, completeness results have not been established for programming languages…

Logic in Computer Science · Computer Science 2026-02-04 Satoshi Kura

There are several ways to formally represent families of data, such as lambda terms, in a type theory such as the dependent type theory of Coq. Mathematical representations are very compact ones and usually rely on the use of dependent…

Logic in Computer Science · Computer Science 2022-12-21 Catherine Dubois , Nicolas Magaud , Alain Giorgetti

Several approaches exist to data-mining big corpora of formal proofs. Some of these approaches are based on statistical machine learning, and some -- on theory exploration. However, most are developed for either untyped or simply-typed…

Programming Languages · Computer Science 2017-05-23 Ekaterina Komendantskaya , Jonathan Heras

Computational effects are commonly modelled by monads, but often a monad can be presented by an algebraic theory of operations and equations. This talk is about monads and algebraic theories for languages for inference, and their…

Logic in Computer Science · Computer Science 2023-12-29 Cristina Matache , Sean Moss , Sam Staton , Ariadne Si Suo

We study monads resulting from the combination of nondeterministic and probabilistic behaviour with the possibility of termination, which is essential in program semantics. Our main contributions are presentation results for the monads,…

Logic in Computer Science · Computer Science 2021-04-22 Matteo Mio , Ralph Sarkis , Valeria Vignudelli

As popularity of algebraic effects and handlers increases, so does a demand for their efficient execution. Eff, an ML-like language with native support for handlers, has a subtyping-based effect system on which an effect-aware optimizing…

Programming Languages · Computer Science 2020-06-10 Georgios Karachalias , Matija Pretnar , Amr Hany Saleh , Stien Vanderhallen , Tom Schrijvers

We discuss some aspects of our work on the mechanization of syntax and semantics in the UniMath library, based on the proof assistant Coq. We focus on experiences where Coq (as a type-theoretic proof assistant with decidable typechecking)…

Programming Languages · Computer Science 2023-10-10 Benedikt Ahrens , Ralph Matthes , Kobe Wullaert

Model-checking is one of the most powerful techniques for verifying systems and programs, which since the pioneering results by Knapik et al., Ong, and Kobayashi, is known to be applicable to functional programs with higher-order types…

Logic in Computer Science · Computer Science 2023-09-01 Ugo Dal Lago , Alexis Ghyselen

We describe a Martin-L\"of-style dependent type theory, called Cocon, that allows us to mix the intensional function space that is used to represent higher-order abstract syntax (HOAS) trees with the extensional function space that…

Logic in Computer Science · Computer Science 2019-05-13 Brigitte Pientka , David Thibodeau , Andreas Abel , Francisco Ferreira , Rebecca Zucchini

This paper studies the design of programming languages with handlers of higher-order effectful operations -- effectful operations that may take in computations as arguments or return computations as output. We present and analyse a core…

Programming Languages · Computer Science 2025-11-11 Zhixuan Yang , Nicolas Wu

Proof assistants are getting more widespread use in research and industry to provide certified and independently checkable guarantees about theories, designs, systems and implementations. However, proof assistant implementations themselves…

Programming Languages · Computer Science 2021-07-19 Matthieu Sozeau

In functional programming, datatypes a la carte provide a convenient modular representation of recursive datatypes, based on their initial algebra semantics. Unfortunately it is highly challenging to implement this technique in proof…

Logic in Computer Science · Computer Science 2015-09-11 Paolo Torrini , Tom Schrijvers

Equational reasoning is among the most important tools that functional programming provides us. Curiously, relatively less attention has been paid to reasoning about monadic programs. In this report we derive a backtracking algorithm for…

Programming Languages · Computer Science 2021-01-26 Shin-Cheng Mu

In this article we present a method for formally proving the correctness of the lazy algorithms for computing homographic and quadratic transformations -- of which field operations are special cases-- on a representation of real numbers by…

Logic in Computer Science · Computer Science 2015-07-01 Milad Niqui

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

Symmetric monoidal categories (SMCs) are a common framework for reasoning about computation, focusing on the parallel and sequential compositionality of operations. String diagrams are a ubiquitous and powerful tool for reasoning about…

Logic in Computer Science · Computer Science 2026-05-26 Benjamin Caldwell , William Spencer , Aleks Kissinger , Robert Rand

Formally reasoning about functional programs is supposed to be straightforward and elegant, however, it is not typically done as a matter of course. Reasoning in a proof assistant requires "reimplementing" the code in those tools, which is…

Logic in Computer Science · Computer Science 2021-07-19 Laila El-Beheiry , Giselle Reis , Ammar Karkour

We extend the constructive dependent type theory of the Logical Framework $\mathsf{LF}$ with monadic, dependent type constructors indexed with predicates over judgements, called Locks. These monads capture various possible proof attitudes…

Logic in Computer Science · Computer Science 2019-03-14 Furio Honsell , Luigi Liquori , Petar Maksimovic , Ivan Scagnetto