W Swierstra - International Conference on Theorem Proving in …, 2009 - Springer
This pearl examines how to verify functional programs written using the state monad. It uses Coq's Program framework to provide strong specifications for the standard operations that …
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 …
A Spector-Zabusky, J Breitner, C Rizkallah… - Proceedings of the 7th …, 2018 - dl.acm.org
We would like to use the Coq proof assistant to mechanically verify properties of Haskell programs. To that end, we present a tool, named hs-to-coq, that translates total Haskell …
L Silver, S Zdancewic - Proceedings of the ACM on Programming …, 2021 - dl.acm.org
This paper extends the Dijkstra monad framework, designed for writing specifications over effectful programs using monadic effects, to handle termination sensitive specifications over …
We provide a way to ease the verification of programs whose state evolves monotonically. The main idea is that a property witnessed in a prior state can be soundly recalled in the …
S Liang, P Hudak - European Symposium on Programming, 1996 - Springer
We show the benefits of applying modular monadic semantics to compiler construction. Modular monadic semantics allows us to define a language with a rich set of features from …
S Goncharov, L Schröder - … ACM/IEEE Symposium on Logic in …, 2013 - ieeexplore.ieee.org
Monads are the basis of a well-established method of encapsulating side-effects in semantics and programming. There have been a number of proposals for monadic program …
Many real programs are written in multiple different programming languages, and supporting this pattern creates challenges for formal compiler verification. We describe our Coq …
Modular monadic semantics is a high-level and modular form of denotational semantics. It is capable of capturing individual programming language features and their interactions. This …