I'm trying to wrap my head around relativization in non-Turing machine settings (for example, what is the "natural" relativized version of Graph Isomorphism to an oracle A?).
So I went to Wikipedia to look up relativization, and it gave me the standard oracle machine definition -- a Turing machine, with a work tape and an oracle tape containing the characteristic function of your oracle set A. Each timestep it will read a symbol off of each tape, write a symbol on the work tape, then move left/right on each tape separately (and change states). Then it starts talking about relativized versions of complexity classes, specifically mentioning P^{SAT}.
Here is my problem with their definition: You now pass your oracle Turing machine an instance of SAT of "size" n and ask it if it has a solution. The machine computes some canonical encoding of this instance as an integer M, and looks up M in the oracle tape. If the oracle tape has a 1 in space M, the instance is satisfiable. If not, it is not. However! The number of SAT instances of size n grows exponentially as a function of n, so M is of exponential size and getting to location M on the oracle tape takes exponential time.
So if one uses the naive algorithm for the SAT oracle machine, one finds that solving SAT takes exponential time, and SAT is not in P^{SAT}!!!
What am I missing?