TY - JOUR
T1 - Zoo
T2 - A Framework for the Verification of Concurrent OCaml 5 Programs using Separation Logic
AU - Allain, Clément
AU - Scherer, Gabriel
N1 - Publisher Copyright:
© 2026 Owner/Author.
PY - 2026/1/8
Y1 - 2026/1/8
N2 - The release of Ocaml 5, which introduced parallelism in the OCaml runtime, drove the need for safe and efficient concurrent data structures. New libraries like Saturn address this need. This is an opportunity to apply and further state-of-the-art program verification techniques. We present Zoo, a framework for verifying fine-grained concurrent OCaml 5 algorithms. Following a pragmatic approach, we defined a limited but sufficient fragment of the language to faithfully express these algorithms: ZooLang. We formalized its semantics carefully via a deep embedding in the Rocq proof assistant, uncovering subtle aspects of physical equality. We provide a tool to translate source OCaml programs into ZooLang syntax embedded inside Rocq, where they can be specified and verified using the Iris concurrent separation logic. To illustrate the applicability of Zoo, we verified a subset of the standard library and a collection of fined-grained concurrent data structures from the Saturn and Eio libraries. In the process, we also extended OCaml to more efficiently express certain concurrent programs.
AB - The release of Ocaml 5, which introduced parallelism in the OCaml runtime, drove the need for safe and efficient concurrent data structures. New libraries like Saturn address this need. This is an opportunity to apply and further state-of-the-art program verification techniques. We present Zoo, a framework for verifying fine-grained concurrent OCaml 5 algorithms. Following a pragmatic approach, we defined a limited but sufficient fragment of the language to faithfully express these algorithms: ZooLang. We formalized its semantics carefully via a deep embedding in the Rocq proof assistant, uncovering subtle aspects of physical equality. We provide a tool to translate source OCaml programs into ZooLang syntax embedded inside Rocq, where they can be specified and verified using the Iris concurrent separation logic. To illustrate the applicability of Zoo, we verified a subset of the standard library and a collection of fined-grained concurrent data structures from the Saturn and Eio libraries. In the process, we also extended OCaml to more efficiently express certain concurrent programs.
KW - Concurrent Algorithms
KW - Iris
KW - OCaml 5
KW - Rocq
KW - Separation Logic
KW - Verification
UR - https://www.scopus.com/pages/publications/105027636699
U2 - 10.1145/3776701
DO - 10.1145/3776701
M3 - Article
AN - SCOPUS:105027636699
SN - 2475-1421
VL - 10
SP - 1702
EP - 1729
JO - Proceedings of the ACM on Programming Languages
JF - Proceedings of the ACM on Programming Languages
ER -