Symmetries in Reversible Programming: From Symmetric Rig Groupoids to Reversible Programming Languages

by   Vikraman Choudhury, et al.

The Π family of reversible programming languages for boolean circuits is presented as a syntax of combinators witnessing type isomorphisms of algebraic datatypes. In this paper, we give a denotational semantics for this language, using the language of weak groupoids à la Homotopy Type Theory, and show how to derive an equational theory for it, presented by 2-combinators witnessing equivalences of reversible circuits. We establish a correspondence between the syntactic groupoid of the language and a formally presented univalent subuniverse of finite types. The correspondence relates 1-combinators to 1-paths, and 2-combinators to 2-paths in the universe, which is shown to be sound and complete for both levels, establishing full abstraction and adequacy. We extend the already established Curry-Howard correspondence for Π to a Curry-Howard-Lambek correspondence between Reversible Logic, Reversible Programming Languages, and Symmetric Rig Groupoids, by showing that the syntax of Π is presented by the free symmetric rig groupoid, given by finite sets and permutations. Our proof uses techniques from the theory of group presentations and rewriting systems to solve the word problem for symmetric groups. Using the formalisation of our results, we show how to perform normalisation-by-evaluation, verification, and synthesis of reversible logic gates, motivated by examples from quantum computing.


page 1

page 2

page 3

page 4


From Reversible Programs to Univalent Universes and Back

We establish a close connection between a reversible programming languag...

A complete axiomatisation of reversible Kleene lattices

We consider algebras of languages over the signature of reversible Kleen...

A Theory of Reversibility for Erlang

In a reversible language, any forward computation can be undone by a fin...

Strict universes for Grothendieck topoi

Hofmann and Streicher famously showed how to lift Grothendieck universes...

Testable Designs of Toffoli Fredkin Reversible Circuits

Loss of every bit in traditional logic circuits involves dissipation of ...

Analyzing Trade-offs in Reversible Linear and Binary Search Algorithms

Reversible algorithms are algorithms in which each step represents a par...

Embracing the Laws of Physics: Three Reversible Models of Computation

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