Reversible Computation Computational Group Theory and Circuit Synthesis Reversible Functions are Permutations A reversible function on n bits (which must have n output bits) can be seen as a permutation in SN , N=2n. For example, the “controlled not” operation on 2 bits is either the permutation (13) or (23) depending on which bit is the control. The “swap” operation on 2 bits is the permutation (12). Permutation Kronecker Products The Kronecker Product of two permutations a,b is defined as the permutation corresponding to the Kronecker Product of the matrices of a and b. Consider a 2 bit gate given by the permutation p in S4. Now suppose one wants the permutation in S16 that it would effect if placed on the 2nd and 3rd bits in a reversible circuit of 4 bits. To find it, one simply takes the Kronecker Product i # p # i (where i is the identity in S2) “wire permutations” One may apply a gate on any combination of wires. In group theoretic terms, this is equivalent to stating that one may “conjugate” a gate by any permutation of wires. Reversible Circuit Synthesis Using permutation Kronecker products and conjugation by wire permutations, one may easily construct the set of group elements corresponding to a given set of gates This allows the use of tools from computational group theory algorithms for reversible circuit synthesis Some Immediate Observations Taking the tensor product of a transposition with the identity in S2 gives a permutation that is the product of 2 disjoint transpositions. Therefore, no set of gates which each operate on only n-1 bits will suffice to synthesize every reversible function on n bits However, adding a “work bit” alleviates this problem.