TL;DR
This paper formalizes Reversible Primitive Permutations (RPP) in Lean, proving they can encode all Primitive Recursive Functions, and introduces a new reversible iteration scheme along with useful algorithm patterns.
Contribution
It provides a simplified, bug-fixed proof that RPP can encode all Primitive Recursive Functions and introduces a new primitive reversible iteration scheme.
Findings
RPP can encode all Primitive Recursive Functions
A new reversible iteration scheme is proposed
Lean formalization enables certified reversible algorithms
Abstract
Reversible Primitive Permutations (RPP) are recursively defined functions designed to model Reversible Computation. We illustrate a proof, fully developed with the proof-assistant Lean, certifying that: "RPP can encode every Primitive Recursive Function". Our reworking of the original proof of that statement is conceptually simpler, fixes some bugs, suggests a new more primitive reversible iteration scheme for RPP, and, in order to keep formalization and semi-automatic proofs simple, led us to identify a single pattern that can generate some useful reversible algorithms in RPP: Cantor Pairing, Quotient/Reminder of integer division, truncated Square Root. Our Lean source code is available for experiments on Reversible Computation whose properties can be certified.
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
