A common reformulation of NP states that a language is in NP if and only if a given answer can be verified by a deterministic machine in polynomial time. Similarly, a language is in UP if a given answer can be verified in polynomial time, and the verifier machine only accepts at most one answer for each problem instance. More formally, a language L belongs to UP if there exists a two input polynomial time algorithm A and a constant c such that
UP (and its complement co-UP) contain the integer factorization problem; because determined effort has yet to find a polynomial-time solution to this problem, it is suspected to be difficult to show P=UP, or even P=UP ∩ co-UP.