What does the notation co-
mean when prefixing co-NP
, co-RE
(recursively enumerable), or co-CE
(computably enumerable) ?
2 Answers
Often, in mathematical terminology, the prefix co- refers to a dual in some sense. For complexity and computability classes, the prefix co- has a fixed meaning: if X is a class of decision problems, then co-X is the class of problems whose complement is in X. That is, if the problem “does this object have the property $P$” is in X, then the problem “does this object have the property $\neg P$?” is in co-X.
For example, RE is the class of semi-decidable problems, that is, problems for which there is a Turing machine that can verify a positive answer. Co-RE is the class of problems for which there is a Turing machine that can verify a negative answer. A well-known problem that is in RE but not in co-RE is the halting problem (intuitively, you can verify that a Turing machine halts by running it to completion, but if the machine runs forever, you'll never be sure).
NP is the class of problems for which a solution can be verified in polynomial time; equivalently, NP is the class of problems that can be solved by a non-deterministic Turing machine in polynomial time. Co-NP is the class of problems for which the absence of a solution can be proved in polynomial time. It is not known whether $\text{NP} = \text{co-NP}$.

- 43,613
- 8
- 118
- 182
-
6+1. This is a very minor point, but it is a common source of confusion. In the last paragraph, NP is the set of problems that can be semi-decided by a non-deterministic machine in polynomial time. The class that can be solved (i.e. fully decided) in polynomial time by a nondeterministic Turing machine is $\text{NP}\cap\text{co-NP}$ – Carl Mummert Apr 20 '12 at 00:23
In the more algebraic side of theoretical computer science, co- means dual, as in Gilles' answer, but it has a very precise interpretation. If the concept of interest (let's say a product) is formalised in Category Theory, then the dual (a coproduct) is the same concepts with the arrows going in the opposite direction.
A simple example (yet abstract) is the idea of an algebra, which, for a functor $F$, is a pair $\langle S,\alpha:FS\to S\rangle$. Algebras are important in computer science for modelling data types. The dual of an algebra is a coalgebra, which is a pair $\langle S,\alpha:S\to FS\rangle$. Coalgebras are important for modelling systems.
What happened when we dualized? Well, the arrow $FS\to S$ was reversed, obtaining $S\to FS$.
One of the cool things about this idea is that all of the theory that works for one concept works for the dual concept, where all of the arrows are reversed.

- 20,205
- 4
- 68
- 113
-
Does complementation of decision problem spaces have a categorical model? – Gilles 'SO- stop being evil' Apr 20 '12 at 13:39
-
co-RE
, I didn't know what RE stood for, and googling didn't help much with that as you can imagine. When I was typing out the question on cstheoryco-CE
andco-NP
popped up as related questions; none of them told me what co- meant, but I knew whatCE
was, and thenRE
just clicked. At that point I should have tried googling again, but I guess I wasn't thinking straight. – Vanwaril Apr 20 '12 at 08:08