I'm interested if there exist any good expository articles or surveys to which I can refer when I write about complexity class operators: operators which transform complexity classes by doing things such as adding quantifiers to them.

Examples of operators

The following can be interpreted as a bare minimum list of operators which an answer should be able to describe. Here, $\mathbf C$ is an arbitrary set of languages, over an arbitrary finite alphabet $\Sigma$.

$\exists \mathbf C := \left\{ L \subseteq \Sigma^\ast \,\left|\, \begin{array}{l} \exists A \in \mathbf C \;\exists f \in O(\mathrm{poly}(n))\;\forall x \in \Sigma^\ast: \\\quad \bigl[x \in L \iff \exists c \in \Sigma^{f(|x|)}: (x,c) \in A \bigr] \end{array} \right\}\right.$

  • The $\exists$ operator was apparently introduced by Wagner [1], albeit with the notation $\bigvee\! \mathbf C$ rather than $\exists \mathbf C$. The most famous example of a class constructed in this way is $\mathsf{NP} = \exists \mathsf P$. This operator comes with a complementary quantifier $\forall$, in which the $\exists c$ in the definition is replaced by $\forall c$, which allows one to easily define the entire polynomial hierarchy: for instance, $\mathsf{\Sigma_2^P P = \exists \forall P}$. This may possibly be the first operator which was defined.

$\oplus \mathbf C := \left\{ L \subseteq \Sigma^\ast \,\left|\, \begin{array}{l} \exists A \in \mathbf C \;\exists f \in O(\mathrm{poly}(n)) \;\forall x \in \Sigma^\ast: \\ \quad\bigl[x \in L \iff \#\{ c \in \Sigma^{f(|x|)}: (x,c) \in A \} \not\equiv 0 \pmod{2}\bigr]\end{array} \right\}\right.$

  • The $\oplus$ operator is similar to the $\exists$ operator in that $\oplus\mathbf C$ concerns the number of certificates which exist that are verifiable in the class $\mathbf C$, but instead counts the number of certficiates modulo $2$. This can be used to define the classes $\mathsf{\oplus P}$ and $\mathsf{\oplus L}$. Similar operators "$\mathsf{Mod_k \cdot}$" exist for other moduli $k$.

$\mathsf{co}\mathbf C := \Bigl\{ L \subseteq \Sigma^\ast \,\Big|\, \exists A \in \mathbf C \;\forall x \in \Sigma^\ast: \bigl[x \in L \iff x \notin A \bigr] \Bigr\}$

  • This is the complementary operator, and is tacitly used to define $\mathsf{ coNP}$, $\mathsf{coC_=P}$, $\mathsf{coMod_kL}$, and a host of other classes from ones which are not known to be closed under complements.

$\mathsf{BP}\cdot\mathbf C := \left\{ (\Pi_0, \Pi_1) \,\left|\, \begin{array}{l} \Pi_0, \Pi_1 \subseteq \Sigma^\ast \;\mathbin\&\; \exists A \in \mathbf C \; \exists f \in O(\mathrm{poly}(n))\;\forall x \in \Sigma^\ast: \\ \quad\left[\begin{array}{l} \bigl(x \in \Pi_0 \Leftrightarrow \#\{c \in \Sigma^{f(|x|)}: (x,c) \in A \} \leqslant \tfrac{1}{3} {|\Sigma^{f(|x|)}|} \bigr) \mathbin\& \\ \bigl(x \in \Pi_1 \Leftrightarrow \#\{c \in \Sigma^{f(|x|)}: (x,c) \in A \} \geqslant \tfrac{2}{3} {|\Sigma^{f(|x|)}|} \bigr) \end{array}\right]\end{array}\right\}\right.$

— with apologies for the spacing

  • The $\mathsf{BP}$ operator was apparently introduced by Schöning [2], albeit to define languages (i.e. he did not permit a probability gap) and without using the explicit constants $\tfrac{1}{3}$ or $\frac{2}{3}$. The definition here yields promise-problems instead, with YES-instances $\Pi_1$ and NO-instances in $\Pi_0$. Note that $\mathsf{BPP = BP\cdot P}$, and $\mathsf{AM = BP\cdot NP}$; this operator was used by Toda and Ogiwara [3] to show that $\mathsf{P^{\#P} \subseteq BP\cdot\oplus P}$.


Other important operators which one can abstract from the definitions of standard classes are $\mathsf{C_= \cdot\mathbf C}$ (from the classes $\mathsf{C_= P}$ and $\mathsf{C_= L}$) and $\mathsf C\cdot\mathbf C$ (from the classes $\mathsf{PP}$ and $\mathsf{PL}$). It is also implicit in most of the literature that $\mathsf{F\cdot}$ (yielding function problems from decision classes) and $\#\cdot$ (yielding counting classes from decision classes) are also complexity operators.

There is an article by Borchert and Silvestri [4] which propose to define an operator for each class, but which does not seem to be referred to much in the literature; I also worry that such a general approach may have subtle definitional issues. They in turn refer to a good presentation by Köbler, Schöning, and Torán [5], which however is now over 20 years old, and also seems to miss out $\oplus$.


What book or article is a good reference for complexity class operators?


[1]: K. Wagner, The complexity of combinatorial problems with succinct input representations, Acta Inform. 23 (1986) 325–356.

[2]: U. Schöning, Probabilistic complexity classes and lowness, in Proc. 2nd IEEE Conference on Structure in Complexity Theory, 1987, pp. 2-8; also in J. Comput. System Sci., 39 (1989), pp. 84-100.

[3]: S. Toda and M. Ogiwara, Counting classes are at least as hard as the polynomial-time hierarchy, SIAM J. Comput. 21 (1992) 316–328.

[4]: B. and Borchert, R. Silvestri, Dot operators, Theoretical Computer Science Volume 262 (2001), 501–523.

[5]: J. Köbler, U. Schöning, and J. Torán, The Graph Isomorphism Problem: Its Structural Complexity, Birkhäuser, Basel (1993).

  • $\begingroup$ A noteworthy predecessor to the notion of a complexity operator is the treatment of [6]: S. Zachos, Probabilistic Quantifiers, Adversaries, and Complexity Classes: An Overview, Proc. of the Conference on Structure in Complexity Theory (pp.383--400), Berkeley, California, 1986, which is cited by Schöning [2] above in connection with $\mathsf{BP\cdot NP}$. $\endgroup$ Commented Mar 18, 2014 at 14:09
  • 3
    $\begingroup$ Again by Zachos, this might help too: Combinatory Complexity: Operators on Complexity Classes $\endgroup$ Commented Mar 18, 2014 at 17:28
  • $\begingroup$ @NieldeBeaudrap Zachos is the one that first came up with the notion of complexity class operators. I recall from his lectures that he explicitly stated this. There is also one for overwhelming majority, ${\exists^+}$. $\endgroup$
    – Tayfun Pay
    Commented Mar 18, 2014 at 17:31
  • $\begingroup$ @TayfunPay: indeed, the quantifier $\exists^+$ is useful for describing $\mathsf{BP\cdot}$, albeit using the two-sided formalism described in [6] (in my comment above) rather than the way described by Schöning. $\endgroup$ Commented Mar 18, 2014 at 17:44
  • 1
    $\begingroup$ the field seems to be waiting for a std ref/handbook on this subj, unifying notation/formalism. also wouldnt you consider $A^B$ relativization and "augmented with advice" eg as in "P/poly" also as "operators"? the Aaronson complexity zoo does cover some of this. $\endgroup$
    – vzn
    Commented Mar 19, 2014 at 1:23

2 Answers 2


Here is a reference with many definitions of operators (not many details though):

S. Zachos and A. Pagourtzis, Combinatory Complexity: Operators on Complexity Classes, Proceedings of 4th Panhellenic Logic Symposium (PLS 2003), Thessaloniki, Jul 7-10 2003.

  • It defines an identity operator $\mathcal E$, as well as operators $\mathsf{co}$- , $\mathsf{N}$ (corresponding to $\exists$ above), $\mathsf{BP}$, $\mathsf{R}$ (corresponding to bounded one-sided error), $\oplus$, $\mathsf U$ (corresponding to non-determinism with a unique accepting transition), $\mathsf P$ (corresponding to unbounded two-sided error), and $\Delta$ (which for a class $\mathbf C$ forms $\mathbf C \cap \mathsf{co}\mathbf C$).

  • It shows that:

    1. $\mathcal E$ is an identity element with respect to composition [Definition 1];
    2. $\mathsf{co}$- is self-inverse [Definition 2];
    3. $\mathsf{N}$ is idempotent [Definition 3] — implicit is that $\mathsf{BP}$, $\mathsf{R}$, $\oplus$, $\mathsf U$, and $\mathsf{P}$ are also idempotent;
    4. $\mathsf{BP}$ and $\mathsf{P}$ commute with $\mathsf{co}$-  [Definitions 4 and 8], while $\oplus$ is invariant under right-composition with $\mathsf{co}$- [Definition 6];
    5. The above operators are all monotone (that is, ${\mathbf C_1 \subseteq \mathbf C_2} \implies {\mathcal O\cdot\mathbf C_1 \subseteq \mathcal O\cdot\mathbf C_2}$ for all operators $\mathcal O$ above):

Throughout, it also describes a handful of ways that these operators relate to traditional complexity classes, such as $\mathsf{\Sigma^p_2 P}$, $\mathsf{ZPP}$, $\mathsf{AM}$, $\mathsf{MA}$, etc.


As an introductory reference to the notion of a complexity operator (and demonstrating some applications of the idea), the best I have found so far is

D. Kozen, Theory of Computation (Springer 2006)

which is derived from lecture notes on computational complexity and related topics. On page 187 ("Supplementary Lecture G: Toda's Theorem"), he defines the operators

  • $\mathsf R$ (for random certificates with bounded one-sided error, as in the class $\mathsf{RP}$)
  • $\mathsf{BP}$ (for random certificates with bounded two-sided error, see above)
  • $\mathsf P$ (for random certificates with unbounded error, c.f. $\mathsf C$ in the remarks above)
  • $\oplus$ (for an odd number of certificates, see above)
  • $\Sigma^{\mathrm{p}}$ (for existence of polynomial-length certificates, c.f. $\exists$ above)
  • $\Sigma^{\mathrm{log}}$ (for existence of $O(\log n)$-length certificates, c.f. $\exists$ above)
  • $\Pi^{\mathrm{p}}$ and $\Pi^{\mathrm{log}}$ (complementary operators to $\Sigma^{\mathrm{p}}$ and $\Sigma^{\mathrm{log}}$: see remarks on $\forall$ above)
  • $\#$ (defining a counting class, c.f. remarks above)

and tacitly defines $\mathsf{co\text-}$ on page 12 in the usual way.

Kozen's treatment of these operators is enough to indicate how they are connected with the "usual" complexity classes, and to describe Toda's theorem, but does not much discuss their relationships and only mentions them for a total of 6 pages (in what is after all a book covering a much wider topic). Hopefully someone can provide a better reference than this.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.