Sound and Complete Invariant-Based Heap Encodings (Technical Report)
By: Zafer Esen, Philipp Rümmer, Tjark Weber
Potential Business Impact:
Helps computers check programs with tricky memory.
Verification of programs operating on mutable, heap-allocated data structures poses significant challenges due to potentially unbounded structures like linked lists and trees. In this paper, we present a novel relational heap encoding leveraging uninterpreted predicates and prophecy variables, reducing heap verification tasks to satisfiability checks over integers in constrained Horn clauses (CHCs). To the best of our knowledge, our approach is the first invariant-based method that achieves both soundness and completeness for heap-manipulating programs. We provide formal proofs establishing the correctness of our encodings. Through an experimental evaluation we demonstrate that our method significantly extends the capability of existing CHC-based verification tools, allowing automatic verification of programs with heap previously unreachable by state-of-the-art tools.
Similar Papers
CHCVerif: A Portfolio-Based Solver for Constrained Horn Clauses
Software Engineering
Helps computers check if programs are safe.
Homomorphic Encryption of Intuitionistic Logic Proofs and Functional Programs: A Categorical Approach Inspired by Composite-Order Bilinear Groups
Logic in Computer Science
Lets computers run programs without seeing data.
Solvable Tuple Patterns and Their Applications to Program Verification
Programming Languages
Helps computers check code for mistakes automatically.