Quantum software engineering: Landscapes and horizons

J Zhao - arXiv preprint arXiv:2007.07047, 2020 - arxiv.org
Quantum software plays a critical role in exploiting the full potential of quantum computing
systems. As a result, it has been drawing increasing attention recently. This paper defines …

Refinement types: A tutorial

R Jhala, N Vazou - Foundations and Trends® in …, 2021 - nowpublishers.com
Refinement types enrich a language's type system with logical predicates that circumscribe
the set of values described by the type. These refinement predicates provide software …

Dependent types and multi-monadic effects in F

N Swamy, C Hriţcu, C Keller, A Rastogi… - Proceedings of the 43rd …, 2016 - dl.acm.org
We present a new, completely redesigned, version of F*, a language that works both as a
proof assistant as well as a general-purpose, verification-oriented, effectful programming …

State-dependent representation independence

A Ahmed, D Dreyer, A Rossberg - ACM SIGPLAN Notices, 2009 - dl.acm.org
Mitchell's notion of representation independence is a particularly useful application of
Reynolds' relational parametricity--two different implementations of an abstract data type can …

Verifying higher-order programs with the Dijkstra monad

N Swamy, J Weinberger, C Schlesinger, J Chen… - ACM SIGPLAN …, 2013 - dl.acm.org
Modern programming languages, ranging from Haskell and ML, to JavaScript, C# and Java,
all make extensive use of higher-order state. This paper advocates a new verification …

Programming and reasoning with algebraic effects and dependent types

E Brady - Proceedings of the 18th ACM SIGPLAN international …, 2013 - dl.acm.org
One often cited benefit of pure functional programming is that pure code is easier to test and
reason about, both formally and informally. However, real programs have side-effects …

Modular specification and verification of closures in Rust

F Wolff, A Bílý, C Matheja, P Müller… - Proceedings of the ACM …, 2021 - dl.acm.org
Closures are a language feature supported by many mainstream languages, combining the
ability to package up references to code blocks with the possibility of capturing state from the …

Dijkstra monads for all

K Maillard, D Ahman, R Atkey, G Martínez… - Proceedings of the …, 2019 - dl.acm.org
This paper proposes a general semantic framework for verifying programs with arbitrary
monadic side-effects using Dijkstra monads, which we define as monad-like structures …

Characteristic formulae for the verification of imperative programs

A Charguéraud - Proceedings of the 16th ACM SIGPLAN international …, 2011 - dl.acm.org
In previous work, we introduced an approach to program verification based on characteristic
formulae. The approach consists of generating a higher-order logic formula from the source …

Just do it: simple monadic equational reasoning

J Gibbons, R Hinze - ACM SIGPLAN Notices, 2011 - dl.acm.org
One of the appeals of pure functional programming is that it is so amenable to equational
reasoning. One of the problems of pure functional programming is that it rules out …