Unfolding for CHR programs
Maurizio Gabbrielli, Maria Chiara Meo, Paolo Tacchella, Herbert, Wiklicky

TL;DR
This paper introduces an unfolding transformation system for CHR programs, ensuring correctness, confluence, and termination preservation, thus advancing program optimization techniques for concurrent languages.
Contribution
It defines a novel unfolding rule for CHR programs, proves its correctness, and establishes conditions for safe rule deletion and preservation of key properties.
Findings
Unfolding rule for CHR programs is correct.
Conditions for deleting unfolded rules while preserving semantics.
Confluence and termination are preserved under certain conditions.
Abstract
Program transformation is an appealing technique which allows to improve run-time efficiency, space-consumption, and more generally to optimize a given program. Essentially, it consists of a sequence of syntactic program manipulations which preserves some kind of semantic equivalence. Unfolding is one of the basic operations which is used by most program transformation systems and which consists in the replacement of a procedure call by its definition. While there is a large body of literature on transformation and unfolding of sequential programs, very few papers have addressed this issue for concurrent languages. This paper defines an unfolding system for CHR programs. We define an unfolding rule, show its correctness and discuss some conditions which can be used to delete an unfolded rule while preserving the program meaning. We also prove that, under some suitable conditions,…
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.
