Certifying algorithms and relevant properties of Reversible Primitive Permutations with Lean

01/25/2022
by   Giacomo Maletto, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/11/2021

Splitting recursion schemes into reversible and classical interacting threads

Given a simple recursive function, we show how to extract from it a reve...
research
03/14/2022

On the Skolem Problem for Reversible Sequences

Given an integer linear recurrence sequence ⟨ X_n ⟩_n, the Skolem Proble...
research
10/15/2020

A Reversible Dynamic Movement Primitive formulation

In this work, a novel Dynamic Movement Primitive (DMP) formulation is pr...
research
02/21/2019

A complete axiomatisation of reversible Kleene lattices

We consider algebras of languages over the signature of reversible Kleen...
research
02/10/2023

Mitigating Decentralized Finance Liquidations with Reversible Call Options

Liquidations in Decentralized Finance (DeFi) are both a blessing and a c...
research
02/23/2023

A Curry-Howard Correspondence for Linear, Reversible Computation

In this paper, we present a linear and reversible programming language w...
research
11/08/2018

Embracing the Laws of Physics: Three Reversible Models of Computation

Our main models of computation (the Turing Machine and the RAM) make fun...

Please sign up or login with your details

Forgot password? Click here to reset