Formal Semantics and Program Logics for a Fragment of OCaml
This program is tentative and subject to change.
This paper makes a first step towards a formal definition of OCaml and a foundational program verification environment for OCaml. We present a formal definition of OLang, a nontrivial sequential fragment of OCaml, which includes first-class functions, ordinary and extensible algebraic data types, pattern matching, references, exceptions, and effect handlers. We define the dynamic semantics of OLang as a monadic interpreter. This interpreter runs atop a custom monad where computations are internally represented as trees of operations and equipped with a small-step semantics. We define two program logics for OLang. A stateless Hoare Logic allows reasoning about so-called "pure" programs; an Iris-based Separation Logic allows reasoning about arbitrary programs. We present the construction of the two logics as well as some examples of their use.
This program is tentative and subject to change.
Wed 15 OctDisplayed time zone: Perth change
13:40 - 15:20 | |||
13:40 25mTalk | Formal Semantics and Program Logics for a Fragment of OCaml ICFP Papers DOI | ||
14:05 25mTalk | Verified Interpreters for Dynamic Languages with Applications to the Nix Expression Language ICFP Papers DOI Pre-print | ||
14:30 25mTalk | Verifying Graph Algorithms in Separation Logic: A Case for an Algebraic Approach ICFP Papers Marcos Grandury IMDEA Software Institute; Universidad Politécnica de Madrid, Aleksandar Nanevski IMDEA Software Institute, Alexander Gryzlov IMDEA Software Institute DOI | ||
14:55 25mTalk | Reasoning about Weak Isolation Levels in Separation Logic ICFP Papers Anders Alnor Mathiasen Aarhus University, Léon Gondelman Aalborg University, Léon Ducruet Aarhus University, Amin Timany Aarhus University, Lars Birkedal Aarhus University DOI |