A library for visualizing and animating separation-logic formulas as memory diagrams. This repo contains:
-
sepviz: The visualization library, written in TypeScript. It parses separation-logic formulas from Rocq goal strings, renders them using Graphviz, and animates them using d3.
-
sepviz-alectryon: Glue code to use Sepviz with Alectryon.
-
sepviz-vsrocq: A fork of the VSRocq IDE to visualize and animate separation logic proofs while writing them.
-
interop: Rocq notations allowing Sepviz to understand many CFML, SLF, and Iris formulae.
-
examples: Examples of integration with CFML, SLF, and Iris.
The main branch works with Coq 8.20.1, as not all of the separation-logic libraries that we target have been ported to Rocq 9):
- Use
make initto {OPAM,npm,pip} dependencies, thenmake allto build everything. - Use
make serveand browse tolocalhost:8080to view generated examples.
The framework-specific interoperability packages can be installed separately.
For Coq versions 8.20.1 or later, but earlier than Rocq 9.0, with Iris 4.3.0 or later, install from the main branch:
opam pin add -n rocq-sepviz-iris.dev https://github.com/epfl-systemf/sepviz.git --subpath=interop/sepviz-iris
opam install rocq-sepviz-iris.devFor Rocq 9.0.1 or later, install from the rocq-9.0.1 branch:
opam pin add -n rocq-sepviz-iris.dev https://github.com/epfl-systemf/sepviz.git\#rocq-9.0.1 --subpath=interop/sepviz-iris
opam install rocq-sepviz-iris.devFor Coq versions 8.20.1 or later, but earlier than Rocq 9.0, replace <framework> with either cfml or slf:
opam pin add -n rocq-sepviz-<framework>.dev https://github.com/epfl-systemf/sepviz.git --subpath=interop/sepviz-<framework>
opam install rocq-sepviz-<framework>.dev- Guan, Y., Chiplunkar, S., Pit-Claudel, C. (2026). Automatic Heap-Memory Diagrams for Separation-Logic Proofs. In: Darulova, E., Lin, A.W., Rümmer, P. (eds) Computer Aided Verification. CAV 2026. Lecture Notes in Computer Science, vol 16683. Springer, Cham. https://doi.org/10.1007/978-3-032-32526-6_12
