Reversible Computation in Term Rewriting
Naoki Nishida, Adri\'an Palacios, Germ\'an Vidal

TL;DR
This paper introduces a reversible extension to term rewriting, enabling backward computation, with transformations for injectivization and inversion, applicable in bidirectional program transformation.
Contribution
It proposes a conservative extension of term rewriting to achieve reversibility and defines transformations to make rewrite systems reversible.
Findings
Reversible term rewriting system developed
Injectivization and inversion transformations defined
Application demonstrated in bidirectional program transformation
Abstract
Essentially, in a reversible programming language, for each forward computation from state to state , there exists a constructive method to go backwards from state to state . Besides its theoretical interest, reversible computation is a fundamental concept which is relevant in many different areas like cellular automata, bidirectional program transformation, or quantum computing, to name a few. In this work, we focus on term rewriting, a computation model that underlies most rule-based programming languages. In general, term rewriting is not reversible, even for injective functions; namely, given a rewrite step , we do not always have a decidable method to get from . Here, we introduce a conservative extension of term rewriting that becomes reversible. Furthermore, we also define two transformations, injectivization and inversion, to…
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
TopicsCellular Automata and Applications · Computability, Logic, AI Algorithms · Quantum Computing Algorithms and Architecture
