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 …
systems. As a result, it has been drawing increasing attention recently. This paper defines …
Refinement types: A tutorial
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 …
the set of values described by the type. These refinement predicates provide software …
Dependent types and multi-monadic effects in F
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 …
proof assistant as well as a general-purpose, verification-oriented, effectful programming …
State-dependent representation independence
Mitchell's notion of representation independence is a particularly useful application of
Reynolds' relational parametricity--two different implementations of an abstract data type can …
Reynolds' relational parametricity--two different implementations of an abstract data type can …
Verifying higher-order programs with the Dijkstra monad
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 …
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 …
reason about, both formally and informally. However, real programs have side-effects …
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 …
formulae. The approach consists of generating a higher-order logic formula from the source …
Dijkstra monads for all
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 …
monadic side-effects using Dijkstra monads, which we define as monad-like structures …
Just do it: simple monadic equational reasoning
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 …
reasoning. One of the problems of pure functional programming is that it rules out …
Modular specification and verification of closures in Rust
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 …
ability to package up references to code blocks with the possibility of capturing state from the …