POPL 2026
Sun 11 - Sat 17 January 2026 Rennes, France
Tue 13 Jan 2026 17:28 - 17:50 at Belvédère - Separation logic Chair(s): Thibault Dardinier

Game trees are a fundamental mathematical abstraction for analyzing games, often implemented as rose trees in functional programming. We can construct rose trees by starting from an initial state and iteratively applying the function that provides the states one move away, an approach known as an anamorphism (or colloquially, an unfold).

In ML or Haskell, finite and infinite rose trees share the same type, but proof assistants typically distinguish them: finite trees as inductive, infinite ones as coinductive. With the inductive approach, defining the unfold function is tricky but we obtain a finite tree that is easy to compute with and easy to reason about. With the coinductive approach, defining the unfold function is easy but we obtain a potentially infinite tree, which is harder to reason about since we must resort to proof techniques like bisimulation. In this paper, we compare the inductive and coinductive approaches to game trees, implement unfold functions for both, and prove the soundness and completeness of both unfold functions (with respect to the game) in the Rocq Prover. We illustrate these techniques with implementations of a tic-tac-toe game and a simple SAT solver.

I am a researcher at Bloomberg’s CTO Infrastructure and Security Research team in New York City, applying formal methods in industry.

Tue 13 Jan

Displayed time zone: Brussels, Copenhagen, Madrid, Paris change

16:00 - 17:50
Separation logicCPP at Belvédère
Chair(s): Thibault Dardinier EPFL
16:00
22m
Talk
A Recipe for Modular Verification of Generic Tree Traversals
CPP
Laila Elbeheiry MPI-SWS, Michael Sammler Institute of Science and Technology Austria, Robbert Krebbers Radboud University Nijmegen, Derek Dreyer MPI-SWS, Deepak Garg MPI-SWS
16:22
22m
Talk
Precise Reasoning about Container-Internal Pointers with Logical Pinningdistinguished paper
CPP
DOI Pre-print
16:44
22m
Talk
Modular Specifications and Implementations of Random Samplers in Higher-Order Separation Logic
CPP
Virgil Marionneau ENS Rennes, Félix Sassus-Bourda ENS Paris Saclay, Alejandro Aguirre Aarhus University, Lars Birkedal Aarhus University
17:06
22m
Talk
Using Ghost Ownership to Verify Union-Find and Persistent Arrays in Rust
CPP
Arnaud Golfouse Université Paris-Saclay, CNRS, ENS Paris-Saclay, Inria, Laboratoire des méthodes formelles, 91190, Gif-sur-Yvette, France, Armaël Guéneau Université Paris-Saclay - CNRS - ENS Paris-Saclay - Inria, Jacques-Henri Jourdan LMF, CNRS, Université Paris-Saclay
17:28
22m
Talk
A Rose Tree is Blooming (Proof Pearl)
CPP
Joomy Korkut Bloomberg
DOI Pre-print