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 …
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 …
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 …
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 …
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 …
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 …
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 …
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 …
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 …