In this class, a certificate is defined to be a string which can be used to verify that a certain other string is in a certain language. In human terms, your passport certifies that you are a citizen of the United States, or some other country. If you don't have your passport with you, it may still be possible to determine that you are a citizen, but the process could take much longer. The general format of certificates is this. Suppose L is a language. A certifier for L is defined to be a machine M such that, given any string w, w is in L if and only if there is another string c (called a certificate for w) such that the string w#c is accepted by M. We assume that '#' is not in the alphabet of L. We would like M to execute quickly. A language L is in the class NP if and only if it has a certifier M such that every w in L has a certificate c such that M accepts w#c in time which is polynomial in the length of w. For example, boolean satisfiability is the class NP. The string (x1+~x2+x3)*(x2+x3)*(~x1+x2)*(~x1+~x2+~x3) has the certificate x1=1;x2=1;x3=0; Despite the fact that boolean satisfiability cannot be decided in polynomial time by any known algorithm, you could easily write a certifier for boolean satisfiablility that executes in polynomial time.