English
Related papers

Related papers: Modules over relative monads for syntax and semant…

200 papers

Polymorphic variants are a useful feature of the OCaml language whose current definition and implementation rely on kinding constraints to simulate a subtyping relation via unification. This yields an awkward formalization and results in a…

Programming Languages · Computer Science 2016-07-06 Giuseppe Castagna , Tommaso Petrucciani , Kim Nguyen

The problem of learning a minimal consistent model from a set of labeled sequences of symbols is addressed from a satisfiability modulo theories perspective. We present two encodings for deterministic finite automata and extend one of these…

Formal Languages and Automata Theory · Computer Science 2017-05-31 Rick Smetsers

We study Monadic Second-Order Logic (MSO) over finite words, extended with (non-uniform arbitrary) monadic predicates. We show that it defines a class of languages that has algebraic, automata-theoretic and machine-independent…

Logic in Computer Science · Computer Science 2017-09-12 Nathanaël Fijalkow , Charles Paperman

Existential types are reconstructed in terms of small reflective subuniverses and dependent sums. The folklore decomposition detailed here gives rise to a particularly simple account of first-class modules as a mode of use of traditional…

Programming Languages · Computer Science 2022-10-04 Jonathan Sterling

We introduce formal languages over infinite alphabets where words may contain binders. We define the notions of nominal language, nominal monoid, and nominal regular expressions. Moreover, we extend history-dependent automata (HD-automata)…

Formal Languages and Automata Theory · Computer Science 2011-02-17 Alexander Kurz , Tomoyuki Suzuki , Emilio Tuosto

Relative monads provide a controlled view of computation. We generalise the monadic metalanguage to a relative setting and give a complete semantics with strong relative monads. Adopting this perspective, we generalise two existing program…

Programming Languages · Computer Science 2025-12-15 Jack Liell-Cock , Zev Shirazi , Sam Staton

We present modular implicits, an extension to the OCaml language for ad-hoc polymorphism inspired by Scala implicits and modular type classes. Modular implicits are based on type-directed implicit module parameters, and elaborate…

Programming Languages · Computer Science 2015-12-08 Leo White , Frédéric Bour , Jeremy Yallop

While object diagrams (ODs) are widely used as a means to document object-oriented systems, they are expressively weak, as they are limited to describe specific possible snapshots of the system at hand. In this paper we introduce modal…

Software Engineering · Computer Science 2014-09-09 Shahar Maoz , Jan Oliver Ringert , Bernhard Rumpe

Logic has proved essential for formally modeling software based systems. Such formal descriptions, frequently called specifications, have served not only as requirements documentation and formalisation, but also for providing the…

Logic in Computer Science · Computer Science 2021-07-20 Carlos G. Lopez Pombo , Thomas S. E. Maibaum

Proof assistants are software-based tools that are used in the mechanization of proof construction and validation in mathematics and computer science, and also in certified program development. Different tools are being increasingly used in…

Formal Languages and Automata Theory · Computer Science 2015-05-04 Marcus Vinícius Midena Ramos , Ruy J. G. B. de Queiroz

In previous work ("From signatures to monads in UniMath"), we described a category-theoretic construction of abstract syntax from a signature, mechanized in the UniMath library based on the Coq proof assistant. In the present work, we…

Programming Languages · Computer Science 2021-12-15 Benedikt Ahrens , Ralph Matthes , Anders Mörtberg

The behaviour of limits of weak morphisms in 2-dimensional universal algebra is not 2-categorical in that, to fully express the behaviour that occurs, one needs to be able to quantify over strict morphisms amongst the weaker kinds.…

Category Theory · Mathematics 2022-01-31 John Bourke

Modular reasoning about class invariants is challenging in the presence of dependencies among collaborating objects that need to maintain global consistency. This paper presents semantic collaboration: a novel methodology to specify and…

Software Engineering · Computer Science 2014-05-08 Nadia Polikarpova , Julian Tschannen , Carlo A. Furia , Bertrand Meyer

In these lecture notes, we give a brief introduction to some elements of category theory. The choice of topics is guided by applications to functional programming. Firstly, we study initial algebras, which provide a mathematical…

Programming Languages · Computer Science 2026-03-09 Benedikt Ahrens , Kobe Wullaert

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

We study the meaning of "adding a constant to a language" for any doctrine, and "adding an axiom to a theory" for a primary doctrine, by showing how these are actually two instances of the same construction. We prove their universal…

Category Theory · Mathematics 2024-10-22 Francesca Guffanti

Modeling interoperability between programs in different languages is a key problem when modeling verified and secure compilation, which has been successfully addressed using multi-language semantics. Unfortunately, existing models of…

Programming Languages · Computer Science 2025-09-25 William J. Bowman

Reynold's parametricity theory captures the property that parametrically polymorphic functions behave uniformly: they produce related results on related instantiations. In dependently-typed programming languages, such relations and…

Logic in Computer Science · Computer Science 2017-07-13 Abhishek Anand , Greg Morrisett

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

This article tackles categorical coherence within a two-dimensional generalization of Lawvere's functorial semantics. 2-theories, a syntactical way of describing categories with structure, are presented. From the perspective here afforded,…

Category Theory · Mathematics 2007-05-23 Noson S. Yanofsky