Data-Structure Rewriting
Dominique Duval (LMC - IMAG), Rachid Echahed (Leibniz - IMAG),, Frederic Prost (Leibniz - IMAG)

TL;DR
This paper introduces a formal framework for data-structure rewriting using graph transformations, defining local and global redirection steps with a focus on pointer redirection and pattern-based modifications.
Contribution
It develops a novel approach to data-structure rewriting based on the double pushout method, accommodating non-unique inverse pushouts and ensuring rule applicability.
Findings
Defines a category of graphs suitable for rewriting
Introduces local and global redirection steps for pointers
Ensures rewrite rules can always be applied once matched
Abstract
We tackle the problem of data-structure rewriting including pointer redirections. We propose two basic rewrite steps: (i) Local Redirection and Replacement steps the aim of which is redirecting specific pointers determined by means of a pattern, as well as adding new information to an existing data ; and (ii) Global Redirection steps which are aimed to redirect all pointers targeting a node towards another one. We define these two rewriting steps following the double pushout approach. We define first the category of graphs we consider and then define rewrite rules as pairs of graph homomorphisms of the form "L <- K ->R". Unfortunately, inverse pushouts (complement pushouts) are not unique in our setting and pushouts do not always exist. Therefore, we define rewriting steps so that a rewrite rule can always be performed once a matching is found.
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 · Distributed systems and fault tolerance · Formal Methods in Verification
