arrow
Return

Precise Reasoning about Container-Internal Pointers with Logical Pinning

delete2026-01-01
delete0
PRE
AI
Y
Yawen Guan *
C
Clément Pit-Claudel
DOI:10.1145/3779031.3779096delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
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.
Keywords:
Representation predicates
Containers
Sharing

Journal

P
PROCEEDINGS OF THE 15TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON CERTIFIED PROGRAMS AND PROOFS, CPP 2026
IF:
0
Papers:
27
Citations:
0

Organization

S
swiss federal institutes of technology domain
Scholars:
9.0W
Papers: 8.0W
Citations: 163