# Symmetries in reversible programming: from symmetric rig groupoids to reversible programming languages

@article{Choudhury2021SymmetriesIR, title={Symmetries in reversible programming: from symmetric rig groupoids to reversible programming languages}, author={Vikraman Choudhury and Jacek Karwowski and Amr Sabry}, journal={Proceedings of the ACM on Programming Languages}, year={2021}, volume={6}, pages={1 - 32} }

The Pi family of reversible programming languages for boolean circuits is presented as a syntax of combinators witnessing type isomorphisms of algebraic data types. In this paper, we give a denotational semantics for this language, using weak groupoids à la Homotopy Type Theory, and show how to derive an equational theory for it, presented by 2-combinators witnessing equivalences of type isomorphisms. We establish a correspondence between the syntactic groupoid of the language and a formally…

## One Citation

### Qunity: A Unified Language for Quantum and Classical Computing

- Computer ScienceArXiv
- 2022

Qunity is introduced, a new quantum programming language designed around the central goal of treating quantum computing as a natural generalization of classical computing, and its syntax, type system, and denotational semantics are presented, showing how it can cleanly express several quantum algorithms.

## References

SHOWING 1-10 OF 100 REFERENCES

### Computing with Semirings and Weak Rig Groupoids

- Computer ScienceESOP
- 2016

This work proposes a variant of the Curry---Howard correspondence which is inspired by conservation of information and recent homotopy theoretic approaches to type theory, and naturally relates semirings to reversible programming languages.

### Theseus : A High Level Language for Reversible Computing

- Computer Science
- 2014

A high level language for reversible programming, called Theseus, that meshes naturally with conventional programming language abstractions and has the look and feel of a conventional functional language while maintaining a close correspondence with the low-level family of languages Π based on type isomorphisms.

### Free Commutative Monoids in Homotopy Type Theory

- MathematicsArXiv
- 2021

We develop a constructive theory of finite multisets, defining them as free commutative monoids in Homotopy Type Theory. We formalise two algebraic presentations of this construction using 1-HITs,…

### Combinatorial species and labelled structures

- Computer Science
- 2014

This dissertation lays the theoretical groundwork for a precise—and, hopefully, useful—bridge bewteen the two theories of combinatorial species and algebraic data types.

### Internalizing representation independence with univalence

- Computer Science, MathematicsProc. ACM Program. Lang.
- 2021

This paper develops techniques for establishing internal relational representation independence results in dependent type theory, by using higher inductive types to simultaneously quotient two related implementation types by a heterogeneous correspondence between them.

### Coherence of Gray Categories via Rewriting

- MathematicsFSCD
- 2018

It is shown that a finite rewriting system admits a finite number of critical pairs and, as a variant of Newman's lemma in this context, that a convergent rewriting system is coherent, meaning that two parallel 3-cells are necessarily equal.

### Cubical agda: a dependently typed programming language with univalence and higher inductive types

- Computer ScienceJournal of Functional Programming
- 2021

This paper describes an extension of the dependently typed functional programming language Agda with cubical primitives, making it into a full-blown proof assistant with native support for univalence and a general schema of higher inductive types.

### Principles of a reversible programming language

- Computer ScienceCF '08
- 2008

The clean simulation of reversible Turing machines as a criterion for computing strength of reversible languages is suggested and demonstrated, and the results indicate that the reversible programming paradigm has fundamental properties that are relevant to many different areas of computer science.