Precise Reasoning about Container-Internal Pointers with Logical Pinning (CPP 2026) - POPL 2026
POPL 2026
Sun 11 - Sat 17 January 2026
Rennes, France
Attending
Venue: le Couvent des Jacobins
Supporting POPL
Registration
Requesting a Visa
Code of Conduct
Accommodation
Information for Presenters
Information for Session Chairs
Information for Attendees
POPL Live Streams
Program
POPL Program
Your Program
Filter by Day
Sun 11 Jan
Mon 12 Jan
Tue 13 Jan
Wed 14 Jan
Thu 15 Jan
Fri 16 Jan
Sat 17 Jan
Tracks
POPL 2026
Artifact Evaluation
POPL
Student Research Competition
Student Volunteers
Tutorials
Workshops and Co-located Events
Co-hosted Conferences
CPP
Certified Programs and Proofs
VMCAI
Verification, Model Checking & Abstract Interpretation
Workshops
Dafny
Auto-Active Program Verification
GiacoFest
Roberto Giacobazzi Career Celebration
LAFI
Languages for Inference
PEPM
Partial Evaluation and Program Manipulation
PLanQC
Programming Quantum Computers
PLMW @ POPL
PL Mentoring Workshop
PriSC
Principles of Secure Compilation
RocqPL
Rocq for Programming Languages
RTFM
Read the Faculty Manual
TPSA
Theory and Practice of Static Analysis
WITS
Implementation of Type Systems
Co-hosted Symposia
PADL
Practical Aspects of Declarative Languages
Organization
POPL 2026 Committees
Organizing Committee
AV Committee
Student Volunteers
Track Committees
Artifact Evaluation
POPL
Student Research Competition
Contributors
People Index
Co-hosted Conferences
CPP
Certified Programs and Proofs
Organizing Committee
Program Committee
Steering Committee
VMCAI
Verification, Model Checking & Abstract Interpretation
Organizing Committee
Steering Committee
Program Committee
Artifact Evaluation Committee
Workshops
Dafny
Auto-Active Program Verification
Keynote Speaker
Program Committee
Program Committee Chairs
Steering Committee Chairs
GiacoFest
Roberto Giacobazzi Career Celebration
Organizing Committee
LAFI
Languages for Inference
Organizing Committee
Program Committee
Steering Committee
PEPM
Partial Evaluation and Program Manipulation
Organizing Committee
Program Committee
PLanQC
Programming Quantum Computers
Program Committee
Organizing Committee
PLMW @ POPL
PL Mentoring Workshop
Organizing Committee
Speakers
Panelists
PriSC
Principles of Secure Compilation
Program Committee
Steering Committee
RocqPL
Rocq for Programming Languages
Organizing Committee
Program Committee
RTFM
Read the Faculty Manual
Organizing Committee
Speakers
TPSA
Theory and Practice of Static Analysis
Organizing Committee
Program Committee
WITS
Implementation of Type Systems
Program Committee
Co-hosted Symposia
PADL
Practical Aspects of Declarative Languages
Programme Chairs
Program Committee
Series
Series
POPL 2027
POPL 2026
POPL 2025
POPL 2024
POPL 2023
POPL 2022
POPL 2021
POPL 2020
POPL 2019
POPL 2018
POPL 2017
POPL 2016
POPL 2026
series
) /
CPP 2026 (
series
) /
CPP 2026
Precise Reasoning about Container-Internal Pointers with Logical Pinning
distinguished paper
Who
Yawen Guan
Clément Pit-Claudel
Track
CPP 2026
Program Display Configuration
Close
When
Tue 13 Jan 2026 16:22 - 16:44 at
Belvédère
Separation logic
Chair(s):
Thibault Dardinier
Abstract
Most separation logics hide container-internal pointers for modularity. This makes it difficult to specify container APIs that temporarily expose those pointers to the outside, and to verify programs that use these APIs.
We present
logical pinning
, a lightweight borrowing model for sequential programs that allows users to selectively track container-internal pointers at the logical level. Our model generalizes the magic-wand operator for representing partial data structures, making it easy to write and prove precise specifications, including pointer-stability properties. Because it only changes the way representation predicates and specifications are written, our approach is compatible with most separation logic variants.
We demonstrate the practicality of logical pinning by verifying small but representative pointer-manipulating programs, and deriving more precise versions of common container specifications. In doing so, we show that our approach subsumes some well-known proof patterns, simplifies some complex proofs, and enables reasoning about program patterns not supported by traditional specifications. All of our results are mechanized in the Rocq proof assistant, using the CFML library.
Link to Preprint
DOI
Yawen Guan
EPFL
Switzerland
Clément Pit-Claudel
EPFL
Switzerland
Program Display Configuration
Close
Session Program
Tue 13 Jan
Displayed time zone:
Brussels, Copenhagen, Madrid, Paris
change
16:00 - 17:50
Separation logic
CPP
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 Pinning
distinguished paper
CPP
Yawen Guan
EPFL
Clément Pit-Claudel
EPFL
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
Sat 25 Apr 02:35