976 papers · page 5 of 49
Sven Keidel, Dominik Helm, Tobias Roth, Mira Mezini
Abstract Sound static analyses are an important ingredient for compiler optimizations and program verification tools. However, mathematically proving that a static analysis is sound is a difficult task due to two problems. First, soundness proofs relate two complicated program se…
Théo Laurent, Meven Lennon-Bertrand, Kenji Maillard
Abstract Dependently typed proof assistant rely crucially on definitional equality, which relates types and terms that are automatically identified in the underlying type theory. This paper extends type theory with definitional functor laws, equations satisfied propositionally by…
Théo Laurent, Meven Lennon-Bertrand, Kenji Maillard
Abstract This document describes the Coq formalisation accompanying the paper Definitional Functoriality for Dependent (Sub)Types, more specifically the content of section 4.
Pierre Lermusiaux, Benoît Montagu
Abstract Exception handling is a key feature in modern programming languages. Exceptions can be used to deal with errors, or as a means to control the flow of execution of a program. Since they might unexpectedly terminate a program, unhandled exceptions are a serious safety conc…
Elaine Li, Felix Stutz, Thomas Wies
Abstract Multiparty session types (MSTs) are a type-based approach to verifying communication protocols, represented as global types in the framework. We present a precise subtyping relation for asynchronous MSTs with communicating state machines (CSMs) as implementation model. W…
Sam Lindley, Cristina Matache, Sean K. Moss, Sam Staton, Nicolas Wu, Zhixuan Yang
Abstract 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 state, and axioms specify obser…
Daniel Lundén, Lars Hummelgren, Jan Kudlicka, Oscar Eriksson, David Broman
Abstract Universal probabilistic programming languages (PPLs) make it relatively easy to encode and automatically solve statistical inference problems. To solve inference problems, PPL implementations often apply Monte Carlo inference algorithms that rely on execution suspension.…
Raphaël Monat, Aymeric Fromherz, Denis Merigoux
Abstract Legal expert systems routinely rely on date computations to determine the eligibility of a citizen to social benefits or whether an application has been filed on time. Unfortunately, date arithmetic exhibits many corner cases, which are handled differently from one libra…
Sumanth Prabhu, Grigory Fedyukovich, Deepak D'Souza
Abstract Precondition inference is an important problem with many applications in verification and testing. Finding preconditions can be tricky as programs often have loops and arrays, which necessitates finding quantified inductive invariants. However, existing techniques have l…
Loïc Pujet, Nicolas Tabareau
Abstract Equality is at the heart of dependent type theory, as it plays a fundamental role in specifications and mathematical reasoning. The standard way to handle it in mainstream proof assistants such as Agda, Lean or Coq is based on Martin-Löf’s identity type, which comes stra…
Azalea Raad, Ori Lahav, John Wickerson, Piotr Balcer, Brijesh Dongol
Abstract Software Transactional Memory (STM) is an extensively studied paradigm that provides an easy-to-use mechanism for thread safety and concurrency control. With the recent advent of byte-addressable persistent memory, a natural question to ask is whether STM systems can be …
Azalea Raad, Ori Lahav, John Wickerson, Piotr Balcer, Brijesh Dongol
Abstract This report extends §6 of the main paper by providing further details of the mechanisation effort.
Léo Stefanesco, Azalea Raad, Viktor Vafeiadis
Abstract We present a general framework for specifying and verifying persistent libraries, that is, libraries of data structures that provide some persistency guarantees upon a failure of the machine they are executing on. Our framework enables modular reasoning about the correct…
Anders Ågren Thuné, Kazutaka Matsuda, Meng Wang
Abstract Invertible programming languages specify transformations to be run in two directions, such as compression/decompression or encryption/decryption. Two key concepts in invertible programming languages are partial invertibility and local invertibility. Partial invertibility…
Guillaume Allais
Abstract State of the art optimisation passes for dependently typed languages can help erase the redundant information typical of invariant-rich data structures and programs. These automated processes do not dramatically change the structure of the data, even though more efficien…
Flavio Ascari, Roberto Bruni, Roberta Gori
Abstract Abstract interpretation is a framework to design sound static analyses by over-approximating the set of program behaviours. While over-approximations can prove correctness, they cannot witness incorrectness because false alarms may arise. An ideal, but uncommon, situatio…
Matthew Alan Le Brun, Ornela Dardha
Abstract Multiparty Session Types(MPST) are a typing discipline for communication-centric systems, guaranteeing communication safety, deadlock freedom and protocol compliance. Several works have emerged which model failures and introduce fault-tolerance techniques. However, such …
Berk Çirisci, Constantin Enea, Suha Orhun Mutluergil
Abstract Distributed algorithms solving agreement problems like consensus or state machine replication are essential components of modern fault-tolerant distributed services. They are also notoriously hard to understand and reason about. Their complexity stems from the different …
Liliane-Joy Dandy, Emmanuel Jeandel, Vladimir Zamdzhiev
Abstract Variational Quantum Algorithms are hybrid classical-quantum algorithms where classical and quantum computation work in tandem to solve computational problems. These algorithms create interesting challenges for the design of suitable programming languages. In this paper w…
Farzaneh Derakhshan, Myra Dotzel, Milijana Surbatovich, Limin Jia
Abstract Intermittent computing is gaining traction in application domains such as Energy Harvesting Devices (EHDs) that experience arbitrary power failures during program execution. To make progress, programs require system support to checkpoint state and re-execute after power …