Article ID | Journal | Published Year | Pages | File Type |
---|---|---|---|---|
6874867 | Journal of Logical and Algebraic Methods in Programming | 2018 | 22 Pages |
Abstract
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 t1ât2, we do not always have a decidable method to get t1 from t2. Here, we introduce a conservative extension of term rewriting that becomes reversible. Furthermore, we also define two transformations, injectivization and inversion, to make a rewrite system reversible using standard term rewriting. We illustrate the usefulness of our transformations in the context of bidirectional program transformation.
Related Topics
Physical Sciences and Engineering
Computer Science
Computational Theory and Mathematics
Authors
Naoki Nishida, Adrián Palacios, Germán Vidal,