2

A reversible circuit, if I understand it correctly, is a circuit where every gate in the circuit is invertible, i.e. can simply be “turned in the opposite direction”, so that the entire circuit can in a sense just be “turned in reverse” without changing the circuit architecture.

An invertible function is not defined in terms of computational models, but in terms of whether the function is injective.

How are these two concepts related? Does an invertible function always have a corresponding reversible circuit?

user56834
  • 4,244
  • 5
  • 21
  • 35

1 Answers1

1

There is quite a lot of work on the design of reversible programming languages that express total bijective functions operating on finite number of bits, by Amr Sabry and his collaborators.

  • Information Effects: This paper describes a language Theseus which is a first-order language that computes reversible functions using type isomorphisms of finite types. The language is presented as a calculus of combinators that express building blocks for reversible circuits, and their operational semantics.

  • Computing with Semirings and Weak Rig Groupoids: This paper suggests an equational theory for this language using 2-combinators expressing circuit equivalences.

  • Symmetries in Reversible Programming: This paper shows that this equational theory is indeed sound and complete, and every permutation can be expressed as a program in this language. The main result is that this language of finite types, 1-combinators for type isomorphisms, and 2-combinators for program equivalences, presents the free symmetric rig groupoid (on the empty signature), and establishes an equivalence with the groupoid of finite sets and bijections. Using this, the authors derive several meta-theoretic results about the language. The semantics uses the Coxeter presentation of symmetric groups and other techniques from coherence of symmetric monoidal categories.

  • Embracing the Laws of Physics: Three Reversible Models of Computation: This paper is a detailed survey of this line of work, and future work.

There are also other extensions to this reversible language by this group of authors and others.

vikraman
  • 173
  • 5