A Non-repetitive Logic for Verification of Dynamic Memory with Explicit Heap Conjunction and Disjunction
Ren\'e Haberland, Kirill Krinkin

TL;DR
This paper introduces a new non-repetitive logic for verifying dynamic memory, featuring explicit heap conjunction and disjunction operations that improve reasoning about heap graphs and memory properties.
Contribution
It proposes two total, strict spatial heap operations for heap graphs, enabling better reasoning about dynamic memory and facilitating future extensions to object constraint languages.
Findings
Heap conjunction and disjunction are formalized with properties similar to logical conjuncts.
The logic can specify both expecting and superficial heaps effectively.
Linear canonization steps help detect and fix heap inconsistencies.
Abstract
In this paper, we review existing points-to Separation Logics for dynamic memory reasoning and we find that different usages of heap separation tend to be an obstacle. Hence, two total and strict spatial heap operations are proposed upon heap graphs, for conjunction and disjunction -- similar to logical conjuncts. Heap conjunction implies that there exists a free heap vertex to connect to or an explicit destination vertex is provided. Essentially, Burstall's properties do not change. By heap we refer to an arbitrary simple directed graph, which is finite and may contain composite vertices representing class objects. Arbitrary heap memory access is restricted, as well as type punning, late class binding and further restrictions. Properties of the new logic are investigated, and as a result group properties are shown. Both expecting and superficial heaps are specifiable. Equivalence…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Formal Methods in Verification · Logic, Reasoning, and Knowledge
