POPL 2025
Sun 19 - Sat 25 January 2025 Denver, Colorado, United States

This program is tentative and subject to change.

Sat 25 Jan 2025 09:50 - 10:10 at Peek-A-Boo - Session 1

Extraction is a good way to produce verified programs; the extracted code can be linked with hand-written OCaml to produce an executable. But this is not sufficient to implement (stateful, exception-throwing) OCaml APIs, whose types and behavior must be preserved exactly for client compatibility. We propose a lightweight design pattern for implementing such functions by carefully modifying extraction to provide support for features such as exceptions and mutable state. The resulting programs are executable both within Coq and in OCaml, exactly matching the expected OCaml interface. We provide a small library to enable programming with this pattern and demonstrate on 3 examples: a subset of OCaml’s List library, a mutable counter, and a stateful term API that generates unique variable names for α-conversion and safe substitution.

This program is tentative and subject to change.

Sat 25 Jan

Displayed time zone: Mountain Time (US & Canada) change