start 0 _ R q0
start 1 _ R q1
start _ _ R halt-reject<br>
q0 0 _ R q00
q0 1 _ R q01
q0 _ _ R halt-reject<br>
q1 0 _ R q10
q1 1 _ R q11
q1 _ _ R halt-reject<br>
q00 0 _ R q00
q00 1 _ R q01
q00 _ _ R halt-reject<br>
q01 0 _ R q10
q01 1 _ R q11
q01 _ _ R halt-reject<br>
q10 0 _ R q00
q10 1 _ R q01
q10 _ _ R halt-accept<br>
q11 0 _ R q10
q11 1 _ R q11
q11 _ _ R halt-accept
M = On input <S,n>,
0. Check to see if <S,n> is properly formatted; if not,
immediately REJECT
1. For each element x in S
a. Compare x to n
b. If they are the same, then immediately ACCEPT; otherwise
continue with the for-loop
2. If we checked all elements of S and still did not find n,
then REJECT
M = On input <p> where p is a polynomial over variables x1,...,xk,
1. For each possible integral assignment of x1,...,xk:
a. Evaluate the polynomial p with the current assignment
b. If p evaluates to zero, then immediately ACCEPT
2. If no assignment ever evaluates to zero, then REJECT
M = On input <B,w>
1. Simulate B on w
2. If B accepts, then ACCEPT
3. If B rejects, then REJECT
M = On input <A> where A is a DFA
1. Simulate the DFA A on all strings
2. If it rejects any string, then REJECT
3. If it accepts all strings, then ACCEPT
M = On input <A> where A is a DFA
1. Mark the starting state of A
2. Repeat until no more states can be marked this way:
a. Iterate over each marked state and mark the states that are
immediately adjacent to it
3. Check to see if every marked state is an accepting state,
if so, ACCEPT, if not, REJECT