PLDI 2025
Mon 16 - Fri 20 June 2025 Seoul, South Korea

The separation logic framework Iris has been built on the premise that all assertions are \emph{stable}, meaning they unconditionally enjoy the famous \emph{frame rule}. This gives Iris—and the numerous program logics that build on it—very modular reasoning principles. But stability also comes at a cost. It excludes a core feature of the Viper verifier family, \emph{heap-dependent expression assertions}, which lift program expressions to the assertion level in order to reduce redundancy between code and specifications and better facilitate SMT-based automation.

In this paper, we bring heap-dependent expression assertions to Iris with \textbf{Daenerys}. To do so, we must first revisit the very core of Iris, extending it with a new form of \emph{unstable resources} (and adapting the frame rule accordingly). On top, we then build a program logic with heap-dependent expression assertions and lay the foundations for connecting Iris to SMT solvers. We apply Daenerys to several case studies, including some that go beyond what Viper and Iris can do individually and others that benefit from the connection to SMT.