On synthesis of reversible circuits consisting of NOT, CNOT, 2-CNOT gates with small number of additional inputs

Abstract Reversible circuits consisting of NOT, CNOT and 2-CNOT gates with small number of additional inputs are considered. For such a circuit implementing a map <m:math xmlns:m="http://www.w3.org/1998/Math/MathML"> <m:mi>f</m:mi> <m:mo>:</m:mo> <m:msubsup> <m:mrow> <m:mi mathvariant="double-struck">Z</m:mi> </m:mrow> <m:mn>2</m:mn> <m:mi>n</m:mi> </m:msubsup> <m:mo stretchy="false">→</m:mo> <m:msubsup> <m:mrow> <m:mi mathvariant="double-struck">Z</m:mi> </m:mrow> <m:mn>2</m:mn> <m:mi>n</m:mi> </m:msubsup> <m:mo>,</m:mo> </m:math> $f\colon \mathbb Z_2^n \to \mathbb Z_2^n,$ we study the Shannon complexity function L ( n , q ) under the condition that the number of additional inputs is q = O ( n 2 ). For this range of q , it is shown that <m:math xmlns:m="http://www.w3.org/1998/Math/MathML"> <m:mi>L</m:mi> <m:mo stretchy="false">(</m:mo> <m:mi>n</m:mi> <m:mo>,</m:mo> <m:mi>q</m:mi> <m:mo stretchy="false">)</m:mo> <m:mo>≍</m:mo> <m:mi>n</m:mi> <m:msup> <m:mn>2</m:mn> <m:mi>n</m:mi> </m:msup> <m:mrow> <m:mrow> <m:mo>/</m:mo> </m:mrow> </m:mrow> <m:mrow> <m:msub> <m:mo form="prefix">log</m:mo> <m:mn>2</m:mn> </m:msub> </m:mrow> <m:mi>n</m:mi> <m:mo>.</m:mo> </m:math> $L(n,q) \asymp n2^n \mathop / \log_2 n.$ We show that <m:math xmlns:m="http://www.w3.org/1998/Math/MathML"> <m:mi>L</m:mi> <m:mo stretchy="false">(</m:mo> <m:mi>n</m:mi> <m:mo>,</m:mo> <m:mi>q</m:mi> <m:mo stretchy="false">)</m:mo> <m:mo>≍</m:mo> <m:mi>n</m:mi> <m:msup> <m:mn>2</m:mn> <m:mi>n</m:mi> </m:msup> <m:mrow> <m:mrow> <m:mo>/</m:mo> </m:mrow> </m:mrow> <m:mrow> <m:msub> <m:mo form="prefix">log</m:mo> <m:mn>2</m:mn> </m:msub> </m:mrow> <m:mo stretchy="false">(</m:mo> <m:mi>n</m:mi> <m:mo>+</m:mo> <m:mi>q</m:mi> <m:mo stretchy="false">)</m:mo> </m:math> $L(n,q) \asymp n2^n \mathop / \log_2 (n+q)$ for all <m:math xmlns:m="http://www.w3.org/1998/Math/MathML"> <m:mi>q</m:mi> <m:mo>≲</m:mo> <m:mi>n</m:mi> <m:msup> <m:mn>2</m:mn> <m:mrow> <m:mi>n</m:mi> <m:mo>−</m:mo> <m:mo fence="false" stretchy="false">⌈</m:mo> <m:mi>n</m:mi> <m:mrow> <m:mrow> <m:mo>/</m:mo> </m:mrow> </m:mrow> <m:mi>ϕ</m:mi> <m:mo stretchy="false">(</m:mo> <m:mi>n</m:mi> <m:mo stretchy="false">)</m:mo> <m:mo fence="false" stretchy="false">⌉</m:mo> </m:mrow> </m:msup> <m:mo>,</m:mo> </m:math> $q \lesssim n2^{n-\lceil n \mathop / \phi(n)\rceil},$ where <m:math xmlns:m="http://www.w3.org/1998/Math/MathML"> <m:mi>ϕ</m:mi> <m:mo stretchy="false">(</m:mo> <m:mi>n</m:mi> <m:mo stretchy="false">)</m:mo> <m:mo stretchy="false">→</m:mo> <m:mi mathvariant="normal">∞</m:mi> <m:mrow> <m:mtext>and</m:mtext> </m:mrow> <m:mspace width="thinmathspace" /> <m:mi>n</m:mi> <m:mrow> <m:mrow> <m:mo>/</m:mo> </m:mrow> </m:mrow> <m:mi>ϕ</m:mi> <m:mo stretchy="false">(</m:mo> <m:mi>n</m:mi> <m:mo stretchy="false">)</m:mo> <m:mo>−</m:mo> <m:mrow> <m:msub> <m:mo form="prefix">log</m:mo> <m:mn>2</m:mn> </m:msub> </m:mrow> <m:mi>n</m:mi> <m:mo stretchy="false">→</m:mo> <m:mi mathvariant="normal">∞</m:mi> <m:mspace width="thinmathspace" /> <m:mrow> <m:mtext>as</m:mtext> </m:mrow> <m:mspace width="thinmathspace" /> <m:mi>n</m:mi> <m:mo stretchy="false">→</m:mo> <m:mi mathvariant="normal">∞</m:mi> <m:mo>.</m:mo> </m:math> $\phi(n) \to \infty {\text {and}} \,n \mathop / \phi(n) - \log_2 n \to \infty \,{\text {as}}\, n \to \infty.$