POPL 2024
Sun 14 - Sat 20 January 2024 London, United Kingdom
Mon 15 Jan 2024 09:00 - 10:30 at Mountbatten Exhibition - Morning Track 2
Mon 15 Jan 2024 11:00 - 12:30 at Mountbatten Exhibition - Morning Track 2

F⋆ is a dependently typed general-purpose programming language with support for user-defined effects. F⋆ supports Proof-oriented Programming, a paradigm in which programmers co-develop programs and proofs to provide mathematical guarantees about various aspects of program behavior (functional correctness, security properties, etc.). To reason about programs with concurrency and mutable state, a Concurrent Separation Logic (CSL) called Steel has been developed foundationally in F⋆, enabling the use of CSL to reason about dependently typed, effectful F⋆ programs. However, Steel requires the use of various tactics and combinators, making it somewhat difficult to program with.

Recently, leveraging a new framework in F⋆ for embedding domain-specific languages, we have built Pulse, a syntax extension coupled with a custom typechecker for Steel. Pulse enables programs to be developed in a direct, Rust-like imperative syntax. The Pulse typechecker provides extensible proof automation that is backed by a certified correct elaboration into core F⋆. Depending on the libraries they use, well-typed Pulse programs can be extracted to OCaml, to C, or to Rust.

This tutorial aims to provide a hands-on introduction to using Pulse. Attendees will learn Pulse by developing several examples, ranging from first-order sequential programs with mutable state, extracting to Rust and C, to higher-order programs with concurrency using libraries like OCaml 5’s domainslib.

The tutorial materials will be uploaded to https://github.com/FStarLang/pulse-tutorial-24 . The recommended way of running Pulse is using Github Codespaces, which only requires a Github account and a single click. It can also be run locally with a VS Code installation.

Mon 15 Jan

Displayed time zone: London change

09:00 - 10:30
09:00
90m
Tutorial
Pulse: Proof-oriented Programming in a Concurrent Separation Logic DSL in F*
TutorialFest
Thibault Dardinier ETH Zurich, Megan Frisella Brown University, Guido Martínez Microsoft Research, Tahina Ramananandro Microsoft Research, Aseem Rastogi Microsoft Research, Nikhil Swamy Microsoft Research
11:00 - 12:30
11:00
90m
Tutorial
Pulse: Proof-oriented Programming in a Concurrent Separation Logic DSL in F*
TutorialFest
Thibault Dardinier ETH Zurich, Megan Frisella Brown University, Guido Martínez Microsoft Research, Tahina Ramananandro Microsoft Research, Aseem Rastogi Microsoft Research, Nikhil Swamy Microsoft Research